Merge "Update labels and template names to docs"
[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: 6.9.4
19     staging-server: spectrometer03.dfw.opendaylight.org
20
21 - job-template:
22     name: 'spectrometer-deploy-webapp-master'
23
24     project-type: freestyle
25     node: dynamic_verify
26     concurrent: false
27
28     properties:
29         - opendaylight-infra-properties:
30             build-days-to-keep: '{build-days-to-keep}'
31
32     wrappers:
33         - build-timeout
34         - ssh-agent-credentials:
35             users:
36                 - 'spectrometer-deploy-key'
37
38     triggers:
39         - gerrit-trigger-patch-merged:
40             server-name: '{server-name}'
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                 source venv-python34/bin/activate
61             else
62                 echo "---> virtualenv not found. Setting up new virtualenv."
63                 pyvenv venv-python34 --without-pip
64                 source venv-python34/bin/activate
65                 wget https://bootstrap.pypa.io/get-pip.py
66                 python get-pip.py
67                 pip install -e spectrometer/server
68             fi
69             pip install --upgrade -r spectrometer/server/requirements.txt
70             pip install --upgrade gunicorn gevent
71             pip install --upgrade nodeenv
72             pip freeze
73
74             echo "---> Setup NodeJS"
75             if [ -e venv-nodejs/bin/activate ]; then
76                 echo "---> Updating NodeJS dependencies"
77             else
78                 echo "---> nodeenv not found. Setting up new nodeenv"
79                 nodeenv --node={nodever} --prebuilt venv-nodejs
80             fi
81             source venv-nodejs/bin/activate
82             node -v
83             npm -v
84
85             echo "---> Restart spectrometer-api"
86             pkill gunicorn
87             sleep 5  # Sleep 5 seconds for cooldown
88             nohup gunicorn -b 0.0.0.0:5000 'spectrometer:run_app()' --timeout 600 -k gevent >> ~/gunicorn.out &
89             sleep 120  # Sleep 2 minutes to allow Spectrometer to initialize
90
91             echo "---> Restart spectrometer-web"
92             pkill node
93             sleep 5  # Sleep 5 seconds for cooldown
94             cd spectrometer/web
95             npm install
96             nohup npm start >> ~/node.out &
97
98             EOF