Merge "Add job to automatically cleanup old images"
[releng/builder.git] / jjb / spectrometer / spectrometer-jobs.yaml
1 ---
2 - project:
3     name: spectrometer
4     jobs:
5       - '{project-name}-merge-rtd-{stream}'
6       - '{project-name}-verify-node-{stream}'
7       - '{project-name}-verify-python-{stream}'
8       - 'spectrometer-deploy-webapp-master'
9
10     stream:
11       - master:
12           branch: 'master'
13
14     project: 'spectrometer'
15     project-name: 'spectrometer'
16     rtdproject: 'opendaylight-spectrometer'
17     toxdir: server
18     nodedir: web
19     nodever: 6.9.4
20     staging-server: spectrometer03.dfw.opendaylight.org
21
22 - job-template:
23     name: 'spectrometer-deploy-webapp-master'
24
25     project-type: freestyle
26     node: centos7-java-builder-2c-4g
27     concurrent: false
28
29     properties:
30       - opendaylight-infra-properties:
31           build-days-to-keep: '{build-days-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           server-name: '{server-name}'
42           name: 'spectrometer'
43           branch: 'master'
44
45     builders:
46       - shell: |
47           echo "Deploying spectrometer"
48           ssh -oStrictHostKeyChecking=no spectrometer@{staging-server} 'bash -s' << EOF
49
50           if [ -e spectrometer ]; then
51               cd spectrometer
52               git pull
53               cd ..
54           else
55               git clone https://git.opendaylight.org/gerrit/spectrometer
56           fi
57
58           echo "---> Setup Python"
59           if [ -e venv-python34/bin/activate ]; then
60               echo "---> Updating Python dependencies"
61               source venv-python34/bin/activate
62           else
63               echo "---> virtualenv not found. Setting up new virtualenv."
64               pyvenv venv-python34 --without-pip
65               source venv-python34/bin/activate
66               wget https://bootstrap.pypa.io/get-pip.py
67               python get-pip.py
68               pip install -e spectrometer/server
69           fi
70           pip install --upgrade -r spectrometer/server/requirements.txt
71           pip install --upgrade gunicorn gevent
72           pip install --upgrade nodeenv
73           pip freeze
74
75           echo "---> Setup NodeJS"
76           if [ -e venv-nodejs/bin/activate ]; then
77               echo "---> Updating NodeJS dependencies"
78           else
79               echo "---> nodeenv not found. Setting up new nodeenv"
80               nodeenv --node={nodever} --prebuilt venv-nodejs
81           fi
82           source venv-nodejs/bin/activate
83           node -v
84           npm -v
85
86           echo "---> Restart spectrometer-api"
87           pkill gunicorn
88           sleep 5  # Sleep 5 seconds for cooldown
89           spectrometer server sync
90           nohup gunicorn -b 0.0.0.0:5000 'spectrometer:run_app()' --timeout 600 -k gevent >> ~/gunicorn.out &
91           sleep 120  # Sleep 2 minutes to allow Spectrometer to initialize
92
93           echo "---> Restart spectrometer-web"
94           pkill node
95           sleep 5  # Sleep 5 seconds for cooldown
96           cd spectrometer/web
97           npm install
98           nohup npm start >> ~/node.out &
99
100           EOF