- project:
name: spectrometer
jobs:
- - 'spectrometer-merge-{stream}'
- - '{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'
project: 'spectrometer'
+ project-name: 'spectrometer'
+ rtdproject: 'opendaylight-spectrometer'
toxdir: server
+ nodedir: web
+ nodever: 6.9.4
+ staging-server: spectrometer03.dfw.opendaylight.org
- job-template:
- name: 'spectrometer-merge-{stream}'
+ name: 'spectrometer-deploy-webapp-master'
project-type: freestyle
node: dynamic_verify
- concurrent: true
+ concurrent: false
- parameters:
- - project-parameter:
- project: '{project}'
- - gerrit-parameter:
- branch: '{branch}'
- - gerrit-refspec-parameter:
- refspec: 'refs/heads/{branch}'
-
- scm:
- - gerrit-trigger-scm:
- credentials-id: '{ssh-credentials}'
- refspec: '$GERRIT_REFSPEC'
- choosing-strategy: 'gerrit'
+ properties:
+ - opendaylight-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
wrappers:
- build-timeout
- ssh-agent-credentials:
users:
- - '{ssh-credentials}'
+ - 'spectrometer-deploy-key'
triggers:
- - gerrit:
- server-name: 'OpenDaylight'
- trigger-on:
- - patchset-created-event:
- exclude-drafts: 'false'
- exclude-trivial-rebase: 'false'
- exclude-no-code-change: 'false'
- - draft-published-event
- - comment-added-contains-event:
- comment-contains-value: 'remerge'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: 'spectrometer'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
+ - gerrit-trigger-patch-merged:
+ server-name: '{server-name}'
+ name: 'spectrometer'
+ branch: 'master'
builders:
- shell: |
- wget --post-data=test -qO- https://readthedocs.org/build/opendaylight-spectrometer &> /dev/null
+ 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 &
- publishers:
- - email-notification:
- email-prefix: '[spectrometer]'
+ EOF