diff options
author | Trevor Bramwell <tbramwell@linuxfoundation.org> | 2018-04-19 15:37:34 -0700 |
---|---|---|
committer | Trevor Bramwell <tbramwell@linuxfoundation.org> | 2018-10-22 10:12:06 -0700 |
commit | bbafa00756c3c742d31caa33da98ac0731a6c0a9 (patch) | |
tree | 191e472c0ba812adc361edabc37b2d86ff5aae5c /jjb | |
parent | 9b164628deaf8bc495d4eabdb6458add7175cd32 (diff) |
Update Pharos Dashboard Jobs
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>
Diffstat (limited to 'jjb')
-rw-r--r-- | jjb/global/slave-params.yaml | 2 | ||||
-rw-r--r-- | jjb/pharos/pharos-tools.yml | 54 | ||||
-rw-r--r-- | jjb/pharos/pharos.yaml | 77 | ||||
-rw-r--r-- | jjb/pharos/shell/backup-dashboard.sh | 28 | ||||
-rw-r--r-- | jjb/pharos/shell/deploy-dashboard.sh | 17 |
5 files changed, 100 insertions, 78 deletions
diff --git a/jjb/global/slave-params.yaml b/jjb/global/slave-params.yaml index 805673a0a..09a0d2287 100644 --- a/jjb/global/slave-params.yaml +++ b/jjb/global/slave-params.yaml @@ -572,7 +572,7 @@ 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 index 000000000..507e93eb3 --- /dev/null +++ b/jjb/pharos/pharos-tools.yml @@ -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 diff --git a/jjb/pharos/pharos.yaml b/jjb/pharos/pharos.yaml index c1bb1ba0e..0b5119657 100644 --- a/jjb/pharos/pharos.yaml +++ b/jjb/pharos/pharos.yaml @@ -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 index 000000000..4c1c01500 --- /dev/null +++ b/jjb/pharos/shell/backup-dashboard.sh @@ -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 index 000000000..4ca41f48c --- /dev/null +++ b/jjb/pharos/shell/deploy-dashboard.sh @@ -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 |