X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fspectrometer%2Fspectrometer-jobs.yaml;h=a5532fbe7641520d7068f2ddd543e57c7de00a0b;hb=5e174f5369c8d24a081f37f8ea227c1fff8ebb0e;hp=25ab3402eec8fd04b14fbb28019fa0bedeecb9af;hpb=92be8239cf3dbd22807afacc841021a733283bb6;p=releng%2Fbuilder.git diff --git a/jjb/spectrometer/spectrometer-jobs.yaml b/jjb/spectrometer/spectrometer-jobs.yaml index 25ab3402e..a5532fbe7 100644 --- a/jjb/spectrometer/spectrometer-jobs.yaml +++ b/jjb/spectrometer/spectrometer-jobs.yaml @@ -1,17 +1,99 @@ +--- - project: name: spectrometer jobs: - - '{project-name}-merge-rtd-{stream}' - - '{project-name}-verify-node-{stream}' - - '{project-name}-verify-python-{stream}' + - '{project-name}-merge-rtd-{stream}' + - '{project-name}-verify-node-{stream}' + - '{project-name}-verify-python-{stream}' + - 'spectrometer-deploy-webapp-master' stream: - - master: - branch: 'master' + - master: + branch: 'master' project: 'spectrometer' project-name: 'spectrometer' 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