X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fspectrometer%2Fspectrometer-jobs.yaml;h=e3c9584dbb6e287b2531657c07ab82749f4c7881;hb=f332c661bc3a230f26003af2d9c32eb8268698e2;hp=25ab3402eec8fd04b14fbb28019fa0bedeecb9af;hpb=6b4cc20fa5c48e706201a902c70c63f9e0520603;p=releng%2Fbuilder.git diff --git a/jjb/spectrometer/spectrometer-jobs.yaml b/jjb/spectrometer/spectrometer-jobs.yaml index 25ab3402e..e3c9584db 100644 --- a/jjb/spectrometer/spectrometer-jobs.yaml +++ b/jjb/spectrometer/spectrometer-jobs.yaml @@ -4,6 +4,7 @@ - '{project-name}-merge-rtd-{stream}' - '{project-name}-verify-node-{stream}' - '{project-name}-verify-python-{stream}' + - 'spectrometer-deploy-webapp-master' stream: - master: @@ -14,4 +15,84 @@ rtdproject: 'opendaylight-spectrometer' toxdir: server nodedir: web - nodever: 4.4.5 + nodever: 6.9.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' + + 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 + else + echo "---> virtualenv not found. Setting up new virtualenv." + pyvenv venv-python34 --without-pip + source venv-python34/bin/activate + wget https://bootstrap.pypa.io/get-pip.py + python get-pip.py + pip install -e spectrometer/server + fi + pip install --upgrade -r spectrometer/server/requirements.txt + pip install --upgrade gunicorn gevent + pip install --upgrade nodeenv + pip freeze + + 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={nodever} --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 + 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