Merge "Replace pip freeze with pipdeptree"
[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       - timed: '@daily'
45
46     builders:
47       - shell: |
48           echo "Deploying spectrometer"
49           ssh -oStrictHostKeyChecking=no spectrometer@{staging-server} 'bash -s' << EOF
50
51           if [ -e spectrometer ]; then
52               cd spectrometer
53               git pull
54               cd ..
55           else
56               git clone https://git.opendaylight.org/gerrit/spectrometer
57           fi
58
59           echo "---> Setup Python"
60           if [ -e venv-python34/bin/activate ]; then
61               echo "---> Updating Python dependencies"
62               source venv-python34/bin/activate
63               PYTHON="venv-python34/bin/python"
64           else
65               echo "---> virtualenv not found. Setting up new virtualenv."
66               pyvenv venv-python34 --without-pip
67               source venv-python34/bin/activate
68               PYTHON="venv-python34/bin/python"
69               wget https://bootstrap.pypa.io/get-pip.py
70               python get-pip.py
71               $PYTHON -m pip install -e spectrometer/server
72           fi
73           $PYTHON -m pip install --upgrade -r spectrometer/server/requirements.txt
74           $PYTHON -m pip install --upgrade gunicorn gevent
75           $PYTHON -m pip install --upgrade nodeenv
76           $PYTHON -m pip install --upgrade pipdeptree
77           pipdeptree
78
79           echo "---> Setup NodeJS"
80           if [ -e venv-nodejs/bin/activate ]; then
81               echo "---> Updating NodeJS dependencies"
82           else
83               echo "---> nodeenv not found. Setting up new nodeenv"
84               nodeenv --node={nodever} --prebuilt venv-nodejs
85           fi
86           source venv-nodejs/bin/activate
87           node -v
88           npm -v
89
90           echo "---> Restart spectrometer-api"
91           pkill gunicorn
92           sleep 5  # Sleep 5 seconds for cooldown
93           spectrometer server sync
94           nohup gunicorn -b 0.0.0.0:5000 'spectrometer:run_app()' --timeout 600 -k gevent >> ~/gunicorn.out &
95           sleep 120  # Sleep 2 minutes to allow Spectrometer to initialize
96
97           echo "---> Restart spectrometer-web"
98           pkill node
99           sleep 5  # Sleep 5 seconds for cooldown
100           cd spectrometer/web
101           npm install
102           nohup npm start >> ~/node.out &
103
104           EOF