Merge "Bug 8771: Allow multipatch use not released change"
[releng/builder.git] / jjb / spectrometer / spectrometer-jobs.yaml
index b88a2564360aa5571f5e60f2f57c940ce56ad90a..3851b864ae7fba7555048c60b5725a4dd7db4a8b 100644 (file)
+---
 - project:
     name: spectrometer
     jobs:
-        - 'spectrometer-merge-{stream}'
-        - '{name}-verify-python-{stream}'
+      - '{project-name}-merge-rtd-{stream}'
+      - '{project-name}-verify-node-{stream}'
+      - '{project-name}-verify-python-{stream}'
+      - 'spectrometer-deploy-webapp-master'
 
     stream:
-        - master:
-            branch: 'master'
+      - master:
+          branch: 'master'
 
     project: 'spectrometer'
+    project-name: 'spectrometer'
+    rtdproject: 'opendaylight-spectrometer'
     toxdir: server
+    nodedir: web
+    nodever: 6.9.4
+    staging-server: spectrometer03.dfw.opendaylight.org
 
 - job-template:
-    name: 'spectrometer-merge-{stream}'
+    name: 'spectrometer-deploy-webapp-master'
 
     project-type: freestyle
-    node: dynamic_verify
-    concurrent: true
-
-    parameters:
-        - project-parameter:
-            project: '{project}'
-        - gerrit-parameter:
-            branch: '{branch}'
-        - gerrit-refspec-parameter:
-            refspec: 'refs/heads/{branch}'
-
-    scm:
-        - gerrit-trigger-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: '$GERRIT_REFSPEC'
-            choosing-strategy: 'gerrit'
+    node: centos7-java-builder-2c-4g
+    concurrent: false
+
+    properties:
+      - opendaylight-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
 
     wrappers:
-        - build-timeout
-        - ssh-agent-credentials:
-            users:
-                - '{ssh-credentials}'
+      - build-timeout
+      - ssh-agent-credentials:
+          users:
+            - 'spectrometer-deploy-key'
 
     triggers:
-        - gerrit-trigger-patch-merged:
-            name: 'spectrometer'
-            branch: '{branch}'
+      - gerrit-trigger-patch-merged:
+          server-name: '{server-name}'
+          name: 'spectrometer'
+          branch: 'master'
+      - timed: 'H H * * 1'
 
     builders:
-        - shell: |
-            wget --post-data=test -qO- https://readthedocs.org/build/opendaylight-spectrometer &> /dev/null
+      - shell: |
+          echo "Deploying spectrometer"
+          ssh -oStrictHostKeyChecking=no spectrometer@{staging-server} 'bash -s' << EOF
+
+          if [ -e spectrometer ]; then
+              cd spectrometer
+              git pull
+              cd ..
+          else
+              git clone https://git.opendaylight.org/gerrit/spectrometer
+          fi
+
+          echo "---> Setup Python"
+          if [ -e venv-python34/bin/activate ]; then
+              echo "---> Updating Python dependencies"
+              source venv-python34/bin/activate
+              PYTHON="venv-python34/bin/python"
+          else
+              echo "---> virtualenv not found. Setting up new virtualenv."
+              pyvenv venv-python34 --without-pip
+              source venv-python34/bin/activate
+              PYTHON="venv-python34/bin/python"
+              wget https://bootstrap.pypa.io/get-pip.py
+              python get-pip.py
+              $PYTHON -m pip install -e spectrometer/server
+          fi
+          $PYTHON -m pip install --upgrade -r spectrometer/server/requirements.txt
+          $PYTHON -m pip install --upgrade gunicorn gevent
+          $PYTHON -m pip install --upgrade nodeenv
+          $PYTHON -m pip freeze
+
+          echo "---> Setup NodeJS"
+          if [ -e venv-nodejs/bin/activate ]; then
+              echo "---> Updating NodeJS dependencies"
+          else
+              echo "---> nodeenv not found. Setting up new nodeenv"
+              nodeenv --node={nodever} --prebuilt venv-nodejs
+          fi
+          source venv-nodejs/bin/activate
+          node -v
+          npm -v
+
+          echo "---> Restart spectrometer-api"
+          pkill gunicorn
+          sleep 5  # Sleep 5 seconds for cooldown
+          spectrometer server sync
+          nohup gunicorn -b 0.0.0.0:5000 'spectrometer:run_app()' --timeout 600 -k gevent >> ~/gunicorn.out &
+          sleep 120  # Sleep 2 minutes to allow Spectrometer to initialize
+
+          echo "---> Restart spectrometer-web"
+          pkill node
+          sleep 5  # Sleep 5 seconds for cooldown
+          cd spectrometer/web
+          npm install
+          nohup npm start >> ~/node.out &
 
-    publishers:
-        - email-notification:
-            email-prefix: '[spectrometer]'
+          EOF