X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fspectrometer%2Fspectrometer-jobs.yaml;h=752779e5f769450783d35bd0fd5b13b4fb4c3cdb;hb=80f1c7fe40cc0b4cc727dc57bf7f98ef4be6d464;hp=25ab3402eec8fd04b14fbb28019fa0bedeecb9af;hpb=a214d88a9c46b5647f624ff6b3ef60d03d16567a;p=releng%2Fbuilder.git diff --git a/jjb/spectrometer/spectrometer-jobs.yaml b/jjb/spectrometer/spectrometer-jobs.yaml index 25ab3402e..752779e5f 100644 --- a/jjb/spectrometer/spectrometer-jobs.yaml +++ b/jjb/spectrometer/spectrometer-jobs.yaml @@ -1,17 +1,105 @@ +--- - project: name: spectrometer jobs: - - '{project-name}-merge-rtd-{stream}' - - '{project-name}-verify-node-{stream}' - - '{project-name}-verify-python-{stream}' + - '{project-name}-node-jobs' + - '{project-name}-python-jobs' + - '{project-name}-rtd-jobs': + project-pattern: spectrometer + - spectrometer-deploy-webapp-master stream: - - master: - branch: 'master' - - project: 'spectrometer' - project-name: 'spectrometer' - rtdproject: 'opendaylight-spectrometer' - toxdir: server - nodedir: web - nodever: 4.4.5 + - master: + branch: 'master' + + project: spectrometer + project-name: spectrometer + rtd-project: opendaylight-spectrometer + tox-dir: server + node-dir: web + node-version: 6.11.4 + staging-server: spectrometer03.dfw.opendaylight.org + +- job-template: + name: 'spectrometer-deploy-webapp-master' + + project-type: freestyle + node: centos7-java-builder-2c-4g + concurrent: false + + properties: + - opendaylight-infra-properties: + build-days-to-keep: '{build-days-to-keep}' + + wrappers: + - build-timeout + - ssh-agent-credentials: + users: + - 'spectrometer-deploy-key' + + triggers: + - gerrit-trigger-patch-merged: + server-name: '{server-name}' + name: 'spectrometer' + branch: 'master' + - timed: '@daily' + + builders: + - shell: | + echo "Deploying spectrometer" + ssh -oStrictHostKeyChecking=no spectrometer@{staging-server} 'bash -s' << EOF + + if [ -e spectrometer ]; then + cd spectrometer + git pull + cd .. + else + git clone https://git.opendaylight.org/gerrit/spectrometer + fi + + echo "---> Setup Python" + if [ -e venv-python34/bin/activate ]; then + echo "---> Updating Python dependencies" + source venv-python34/bin/activate + PYTHON="venv-python34/bin/python" + else + echo "---> virtualenv not found. Setting up new virtualenv." + pyvenv venv-python34 --without-pip + source venv-python34/bin/activate + PYTHON="venv-python34/bin/python" + wget https://bootstrap.pypa.io/get-pip.py + python get-pip.py + $PYTHON -m pip install -e spectrometer/server + fi + $PYTHON -m pip install --upgrade -r spectrometer/server/requirements.txt + $PYTHON -m pip install --upgrade gunicorn gevent + $PYTHON -m pip install --upgrade nodeenv + $PYTHON -m pip install --upgrade pipdeptree + pipdeptree + + echo "---> Setup NodeJS" + if [ -e venv-nodejs/bin/activate ]; then + echo "---> Updating NodeJS dependencies" + else + echo "---> nodeenv not found. Setting up new nodeenv" + nodeenv --node={node-version} --prebuilt venv-nodejs + fi + source venv-nodejs/bin/activate + node -v + npm -v + + echo "---> Restart spectrometer-api" + pkill gunicorn + sleep 5 # Sleep 5 seconds for cooldown + spectrometer server sync + nohup gunicorn -b 0.0.0.0:5000 'spectrometer:run_app()' --timeout 600 -k gevent >> ~/gunicorn.out & + sleep 120 # Sleep 2 minutes to allow Spectrometer to initialize + + echo "---> Restart spectrometer-web" + pkill node + sleep 5 # Sleep 5 seconds for cooldown + cd spectrometer/web + npm install + nohup npm start >> ~/node.out & + + EOF