yaml file for bundle-based-reconciliaion script
[releng/builder.git] / jjb / spectrometer / spectrometer-jobs.yaml
1 ---
2 - project:
3     name: spectrometer
4     jobs:
5       - '{project-name}-node-jobs'
6       - '{project-name}-python-jobs'
7       - '{project-name}-rtd-jobs':
8           project-pattern: spectrometer
9       - spectrometer-deploy-webapp-master
10
11     stream:
12       - master:
13           branch: 'master'
14
15     project: spectrometer
16     project-name: spectrometer
17     rtd-project: opendaylight-spectrometer
18     tox-dir: server
19     node-dir: web
20     node-version: 6.11.4
21     staging-server: spectrometer03.dfw.opendaylight.org
22
23 - job-template:
24     name: 'spectrometer-deploy-webapp-master'
25
26     project-type: freestyle
27     node: centos7-builder-2c-8g
28     concurrent: false
29
30     properties:
31       - opendaylight-infra-properties:
32           build-days-to-keep: '{build-days-to-keep}'
33
34     wrappers:
35       - build-timeout
36       - ssh-agent-credentials:
37           users:
38             - 'spectrometer-deploy-key'
39
40     triggers:
41       - gerrit-trigger-patch-merged:
42           gerrit-server-name: '{gerrit-server-name}'
43           name: 'spectrometer'
44           branch: 'master'
45       - timed: '@daily'
46
47     builders:
48       - shell: |
49           echo "Deploying spectrometer"
50           ssh -oStrictHostKeyChecking=no spectrometer@{staging-server} 'bash -s' << EOF
51
52           if [ -e spectrometer ]; then
53               cd spectrometer
54               git pull
55               cd ..
56           else
57               git clone https://git.opendaylight.org/gerrit/spectrometer
58           fi
59
60           echo "---> Setup Python"
61           if [ -e venv-python34/bin/activate ]; then
62               echo "---> Updating Python dependencies"
63               source venv-python34/bin/activate
64               PYTHON="venv-python34/bin/python"
65           else
66               echo "---> virtualenv not found. Setting up new virtualenv."
67               pyvenv venv-python34 --without-pip
68               source venv-python34/bin/activate
69               PYTHON="venv-python34/bin/python"
70               wget https://bootstrap.pypa.io/get-pip.py
71               python get-pip.py
72               $PYTHON -m pip install -e spectrometer/server
73           fi
74           $PYTHON -m pip install --upgrade -r spectrometer/server/requirements.txt
75           $PYTHON -m pip install --upgrade gunicorn gevent
76           $PYTHON -m pip install --upgrade nodeenv
77           $PYTHON -m pip install --upgrade pipdeptree
78           pipdeptree
79
80           echo "---> Setup NodeJS"
81           if [ -e venv-nodejs/bin/activate ]; then
82               echo "---> Updating NodeJS dependencies"
83           else
84               echo "---> nodeenv not found. Setting up new nodeenv"
85               nodeenv --node={node-version} --prebuilt venv-nodejs
86           fi
87           source venv-nodejs/bin/activate
88           node -v
89           npm -v
90
91           echo "---> Restart spectrometer-api"
92           pkill gunicorn
93           sleep 5  # Sleep 5 seconds for cooldown
94           spectrometer server sync
95           nohup gunicorn -b 0.0.0.0:5000 'spectrometer:run_app()' --timeout 600 -k gevent >> ~/gunicorn.out &
96           sleep 120  # Sleep 2 minutes to allow Spectrometer to initialize
97
98           echo "---> Restart spectrometer-web"
99           pkill node
100           sleep 5  # Sleep 5 seconds for cooldown
101           cd spectrometer/web
102           npm install
103           nohup npm start >> ~/node.out &
104
105           EOF