Merge "Update default RPM snap build version to Nitrogen"
[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               PYTHON="venv-python34/bin/python"
63           else
64               echo "---> virtualenv not found. Setting up new virtualenv."
65               pyvenv venv-python34 --without-pip
66               source venv-python34/bin/activate
67               PYTHON="venv-python34/bin/python"
68               wget https://bootstrap.pypa.io/get-pip.py
69               python get-pip.py
70               $PYTHON -m pip install -e spectrometer/server
71           fi
72           $PYTHON -m pip install --upgrade -r spectrometer/server/requirements.txt
73           $PYTHON -m pip install --upgrade gunicorn gevent
74           $PYTHON -m pip install --upgrade nodeenv
75           $PYTHON -m pip freeze
76
77           echo "---> Setup NodeJS"
78           if [ -e venv-nodejs/bin/activate ]; then
79               echo "---> Updating NodeJS dependencies"
80           else
81               echo "---> nodeenv not found. Setting up new nodeenv"
82               nodeenv --node={nodever} --prebuilt venv-nodejs
83           fi
84           source venv-nodejs/bin/activate
85           node -v
86           npm -v
87
88           echo "---> Restart spectrometer-api"
89           pkill gunicorn
90           sleep 5  # Sleep 5 seconds for cooldown
91           spectrometer server sync
92           nohup gunicorn -b 0.0.0.0:5000 'spectrometer:run_app()' --timeout 600 -k gevent >> ~/gunicorn.out &
93           sleep 120  # Sleep 2 minutes to allow Spectrometer to initialize
94
95           echo "---> Restart spectrometer-web"
96           pkill node
97           sleep 5  # Sleep 5 seconds for cooldown
98           cd spectrometer/web
99           npm install
100           nohup npm start >> ~/node.out &
101
102           EOF