Merge "yaml file for bundle-based-reconciliaion script"
[releng/builder.git] / jjb / spectrometer / spectrometer-jobs.yaml
1 ---
2 - project:
3     name: spectrometer
4     jobs:
5       - '{project-name}-node-jobs'
6       - '{project-name}-python-jobs'
7       - '{project-name}-rtd-jobs':
8           project-pattern: spectrometer
9           rtd-build-url: https://readthedocs.org/api/v2/webhook/opendaylight-spectrometer/32925/
10           rtd-token: 383146c345ca41b9e36859b6dcd57ffca38f21c7
11       - spectrometer-deploy-webapp-master
12
13     stream:
14       - master:
15           branch: 'master'
16
17     project: spectrometer
18     project-name: spectrometer
19     tox-dir: server
20     node-dir: web
21     node-version: 6.11.4
22     staging-server: spectrometer03.dfw.opendaylight.org
23
24 - job-template:
25     name: 'spectrometer-deploy-webapp-master'
26
27     project-type: freestyle
28     node: centos7-builder-2c-8g
29     concurrent: false
30
31     properties:
32       - opendaylight-infra-properties:
33           build-days-to-keep: '{build-days-to-keep}'
34
35     wrappers:
36       - build-timeout
37       - ssh-agent-credentials:
38           users:
39             - 'spectrometer-deploy-key'
40
41     triggers:
42       - gerrit-trigger-patch-merged:
43           gerrit-server-name: '{gerrit-server-name}'
44           name: 'spectrometer'
45           branch: 'master'
46       - timed: '@daily'
47
48     builders:
49       - shell: |
50           echo "Deploying spectrometer"
51           ssh -oStrictHostKeyChecking=no spectrometer@{staging-server} 'bash -s' << EOF
52
53           if [ -e spectrometer ]; then
54               cd spectrometer
55               git pull
56               cd ..
57           else
58               git clone https://git.opendaylight.org/gerrit/spectrometer
59           fi
60
61           echo "---> Setup Python"
62           if [ -e venv-python34/bin/activate ]; then
63               echo "---> Updating Python dependencies"
64               source venv-python34/bin/activate
65               PYTHON="venv-python34/bin/python"
66           else
67               echo "---> virtualenv not found. Setting up new virtualenv."
68               pyvenv venv-python34 --without-pip
69               source venv-python34/bin/activate
70               PYTHON="venv-python34/bin/python"
71               wget https://bootstrap.pypa.io/get-pip.py
72               python get-pip.py
73               $PYTHON -m pip install -e spectrometer/server
74           fi
75           $PYTHON -m pip install --upgrade -r spectrometer/server/requirements.txt
76           $PYTHON -m pip install --upgrade gunicorn gevent
77           $PYTHON -m pip install --upgrade nodeenv
78           $PYTHON -m pip install --upgrade pipdeptree
79           pipdeptree
80
81           echo "---> Setup NodeJS"
82           if [ -e venv-nodejs/bin/activate ]; then
83               echo "---> Updating NodeJS dependencies"
84           else
85               echo "---> nodeenv not found. Setting up new nodeenv"
86               nodeenv --node={node-version} --prebuilt venv-nodejs
87           fi
88           source venv-nodejs/bin/activate
89           node -v
90           npm -v
91
92           echo "---> Restart spectrometer-api"
93           pkill gunicorn
94           sleep 5  # Sleep 5 seconds for cooldown
95           spectrometer server sync
96           nohup gunicorn -b 0.0.0.0:5000 'spectrometer:run_app()' --timeout 600 -k gevent >> ~/gunicorn.out &
97           sleep 120  # Sleep 2 minutes to allow Spectrometer to initialize
98
99           echo "---> Restart spectrometer-web"
100           pkill node
101           sleep 5  # Sleep 5 seconds for cooldown
102           cd spectrometer/web
103           npm install
104           nohup npm start >> ~/node.out &
105
106           EOF