Disable Lithium jobs
[releng/builder.git] / jjb / spectrometer / spectrometer-jobs.yaml
1 - project:
2     name: spectrometer
3     jobs:
4         - '{project-name}-merge-rtd-{stream}'
5         - '{project-name}-verify-node-{stream}'
6         - '{project-name}-verify-python-{stream}'
7         - 'spectrometer-deploy-webapp-master'
8
9     stream:
10         - master:
11             branch: 'master'
12
13     project: 'spectrometer'
14     project-name: 'spectrometer'
15     rtdproject: 'opendaylight-spectrometer'
16     toxdir: server
17     nodedir: web
18     nodever: 4.4.6
19     staging-server: spectrometer03.dfw.opendaylight.org
20
21 - job-template:
22     name: 'spectrometer-deploy-webapp-master'
23     disabled: {disabled}
24     node: dynamic_verify
25
26     project-type: freestyle
27     concurrent: false
28
29     logrotate:
30         daysToKeep: '{build-days-to-keep}'
31         numToKeep: '{build-num-to-keep}'
32
33     wrappers:
34         - build-timeout
35         - ssh-agent-credentials:
36             users:
37                 - 'spectrometer-deploy-key'
38
39     triggers:
40         - gerrit-trigger-patch-merged:
41             name: 'spectrometer'
42             branch: 'master'
43
44     builders:
45         - shell: |
46             echo "Deploying spectrometer"
47             ssh -oStrictHostKeyChecking=no spectrometer@{staging-server} 'bash -s' << EOF
48
49             if [ -e spectrometer ]; then
50                 cd spectrometer
51                 git pull
52                 cd ..
53             else
54                 git clone https://git.opendaylight.org/gerrit/spectrometer
55             fi
56
57             echo "---> Setup Python"
58             if [ -e venv-python34/bin/activate ]; then
59                 echo "---> Updating Python dependencies"
60             else
61                 echo "---> virtualenv not found. Setting up new virtualenv."
62                 pyvenv venv-python34
63                 pip install -e spectrometer/server
64             fi
65             source venv-python34/bin/activate
66             pip install --upgrade -r spectrometer/server/requirements.txt
67             pip install --upgrade nodeenv
68             pip freeze
69
70             echo "---> Setup NodeJS"
71             if [ -e venv-nodejs/bin/activate ]; then
72                 echo "---> Updating NodeJS dependencies"
73             else
74                 echo "---> nodeenv not found. Setting up new nodeenv"
75                 nodeenv --node={nodever} --prebuilt venv-nodejs
76             fi
77             source venv-nodejs/bin/activate
78             npm install -g spectrometer/web
79             node -v
80             npm -v
81
82             echo "---> Ensure mongo is running"
83             ps -A | grep -q '[m]ongod'
84             if [ ! "$?" -eq "0" ]; then
85                 echo "The mongod server DOWN", restarting...
86                 if [ ! -d mongo ]; then
87                     mkdir mongo
88                 fi
89                 echo "---> Starting mongo"
90                 mongod --dbpath ~/mongo &
91             fi
92
93             echo "---> Restart spectrometer-api"
94             pkill gunicorn
95             sleep 5  # Sleep 5 seconds for cooldown
96             nohup gunicorn -b 0.0.0.0:5000 'spectrometer:run_app()' --timeout 600 -k gevent >> ~/gunicorn.out &
97
98             echo "---> Restart spectrometer-web"
99             pkill node
100             sleep 5  # Sleep 5 seconds for cooldown
101             cd spectrometer/web
102             nohup npm start >> ~/node.out &
103
104             EOF