diff options
-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 |