Update Pharos Dashboard Jobs 81/63881/2
authorTrevor Bramwell <tbramwell@linuxfoundation.org>
Thu, 19 Apr 2018 22:37:34 +0000 (15:37 -0700)
committerTrevor Bramwell <tbramwell@linuxfoundation.org>
Mon, 22 Oct 2018 17:12:06 +0000 (10:12 -0700)
Moves the pharos dashboard jobs to their own file sperate and deploys
the dashboard when changes are merged to master.

Note: this may need to be manually triggered due to the timing
      between the container being built and it being availble to be pulled.

Also includes the following changes to the job:
  - Uploads backups to Google Storage
  - Remove sudo usage as docker can be ran as the Jenkins user
  - Renames jobs to match general naming scheme

JIRA: PHAROS-394
Change-Id: I516c4414d7b0158f1f8478214c10f0aa7d176739
Signed-off-by: Trevor Bramwell <tbramwell@linuxfoundation.org>
jjb/global/slave-params.yaml
jjb/pharos/pharos-tools.yml [new file with mode: 0644]
jjb/pharos/pharos.yaml
jjb/pharos/shell/backup-dashboard.sh [new file with mode: 0644]
jjb/pharos/shell/deploy-dashboard.sh [new file with mode: 0644]

index 805673a..09a0d22 100644 (file)
     parameters:
       - label:
           name: SLAVE_LABEL
-          default: 'pharos-dashboard'
+          default: 'pharos-dashboard2'
           description: 'Slave label on Jenkins'
           all-nodes: false
           node-eligibility: 'ignore-offline'
diff --git a/jjb/pharos/pharos-tools.yml b/jjb/pharos/pharos-tools.yml
new file mode 100644 (file)
index 0000000..507e93e
--- /dev/null
@@ -0,0 +1,54 @@
+---
+- project:
+    name: pharos-dashboard-jobs
+
+    project: 'pharos-tools'
+
+    disabled: false
+
+    jobs:
+      - '{project}-verify-basic'
+      - 'pharos-dashboard-backup'
+      - 'pharos-dashboard-deploy'
+
+- job-template:
+    name: 'pharos-dashboard-backup'
+
+    disabled: '{obj:disabled}'
+
+    parameters:
+      - 'pharos-dashboard-defaults'
+
+    triggers:
+      - timed: '@daily'
+
+    builders:
+      - shell:
+          !include-raw: shell/backup-dashboard.sh
+
+- job-template:
+    name: 'pharos-dashboard-deploy'
+
+    disabled: '{obj:disabled}'
+
+    parameters:
+      - project-parameter:
+          project: '{project}'
+          branch: 'master'
+      - 'pharos-dashboard-defaults'
+
+    scm:
+      - git-scm-gerrit
+
+    triggers:
+      - gerrit-trigger-change-merged:
+          branch: 'master'
+          project: '{project}'
+          # In the future this should be switch to just the compose file
+          # for when tags are updated
+          #   files: 'dashboard/docker-compose.yml'
+          files: 'dashboard/**'
+
+    builders:
+      - shell:
+          !include-raw: shell/deploy-dashboard.sh
index c1bb1ba..0b51196 100644 (file)
@@ -4,85 +4,8 @@
 
     project:
       - '{name}'
-      - '{name}-tools'
 
     disabled: false
 
     jobs:
       - '{project}-verify-basic'
-      - 'backup-pharos-dashboard'
-      - 'deploy-pharos-dashboard':
-          disabled: true
-
-- job-template:
-    name: 'backup-pharos-dashboard'
-
-    disabled: '{obj:disabled}'
-
-    parameters:
-      - 'pharos-dashboard-defaults'
-
-    triggers:
-      - timed: '@daily'
-
-    builders:
-      - shell: |
-          BACKUP_DIR=$HOME/backups/
-          TMP_DIR=$HOME/tmp/
-          mkdir -p $BACKUP_DIR
-          echo "-- $(date +%Y%m%d) --"
-          echo "Backing up Pharos Dashboard data..."
-          sudo docker run --rm \
-            -v pharos-data:/pharos-data:ro \
-            -v $TMP_DIR:/backup \
-            alpine \
-            tar -czf /backup/pharos-dashboard-db-$(date +%Y%m%d).tar.gz -C /pharos-data ./
-          sudo mv $TMP_DIR/pharos-dashboard-db-$(date +%Y%m%d).tar.gz $BACKUP_DIR
-          sudo chown $USER:$USER $BACKUP_DIR/pharos-dashboard-db-$(date +%Y%m%d).tar.gz
-          echo "...complete"
-
-- job-template:
-    name: 'deploy-pharos-dashboard'
-
-    disabled: '{obj:disabled}'
-
-    parameters:
-      - project-parameter:
-          project: 'pharos-tools'
-          branch: 'master'
-      - 'pharos-dashboard-defaults'
-
-    scm:
-      - git:
-          choosing-strategy: 'gerrit'
-          refspec: '$GERRIT_REFSPEC'
-          branches:
-            - 'origin/$BRANCH'
-          timeout: 15
-          credentials-id: '$SSH_CREDENTIAL_ID'
-          url: '$GIT_BASE'
-          skip-tag: true
-          wipe-workspace: false
-
-    triggers:
-      - gerrit:
-          server-name: 'gerrit.opnfv.org'
-          trigger-on:
-            - ref-updated-event
-            - comment-added-contains-event:
-                comment-contains-value: '^redeploy$'
-          projects:
-            - project-compare-type: 'ANT'
-              project-pattern: 'pharos-tools'
-              branches:
-                - branch-compare-type: 'ANT'
-                  branch-pattern: '**/master'
-
-    builders:
-      - shell: |
-          cp $HOME/config.env $WORKSPACE/dashboard
-          cp $HOME/rsa.pub $WORKSPACE/dashboard
-          cp $HOME/rsa.pem $WORKSPACE/dashboard
-          cd $WORKSPACE/dashboard
-          sudo docker-compose build
-          sudo docker-compose up -d
diff --git a/jjb/pharos/shell/backup-dashboard.sh b/jjb/pharos/shell/backup-dashboard.sh
new file mode 100644 (file)
index 0000000..4c1c015
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/bash -eux
+##############################################################################
+# Copyright (c) 2018 Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+BACKUP_DIR=$HOME/backups
+DATE=$(date +%Y%m%d)
+TAR_FILE=pharos-dashboard-db-$DATE.tar.tz
+
+mkdir -p $BACKUP_DIR
+echo "-- $DATE --"
+echo "--> Backing up Pharos Dashboard"
+
+docker run --rm \
+  -v pharos-data:/pharos-data:ro \
+  -v $BACKUP_DIR:/backup \
+  alpine \
+  tar -czf /backup/$TAR_FILE -C /pharos-data ./
+
+/usr/local/bin/gsutil cp $BACKUP_DIR/$TAR_FILE \
+  gs://opnfv-backups/pharos-dashboard/ && rm $BACKUP_DIR/$TAR_FILE
+
+echo "--> Pharos dashboard backup complete"
diff --git a/jjb/pharos/shell/deploy-dashboard.sh b/jjb/pharos/shell/deploy-dashboard.sh
new file mode 100644 (file)
index 0000000..4ca41f4
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/bash -eux
+##############################################################################
+# Copyright (c) 2018 Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+cp $HOME/config.env $WORKSPACE/dashboard
+cp $HOME/rsa.pub $WORKSPACE/dashboard
+cp $HOME/rsa.pem $WORKSPACE/dashboard
+
+cd $WORKSPACE/dashboard
+docker-compose pull
+docker-compose up -d