--- - project: name: spectrometer jobs: - '{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 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-builder-2c-8g 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: gerrit-server-name: '{gerrit-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