summaryrefslogtreecommitdiffstats
path: root/jjb/compass4nfv/compass4nfv.yml
diff options
context:
space:
mode:
Diffstat (limited to 'jjb/compass4nfv/compass4nfv.yml')
-rwxr-xr-xjjb/compass4nfv/compass4nfv.yml502
1 files changed, 502 insertions, 0 deletions
diff --git a/jjb/compass4nfv/compass4nfv.yml b/jjb/compass4nfv/compass4nfv.yml
new file mode 100755
index 000000000..9c9487169
--- /dev/null
+++ b/jjb/compass4nfv/compass4nfv.yml
@@ -0,0 +1,502 @@
+# this is the job configuration for bgs
+- project:
+
+ name: compass
+
+ installer: 'compass'
+
+ jobs:
+ - 'compass-verify'
+ - 'compass-upload-iso'
+ - 'compass-merge'
+ - 'compass-daily-{stream}'
+ - 'compass-build'
+ - 'compass-deploy-virtual-{flavor}'
+
+ # stream: branch with - in place of / (eg. stable-helium)
+ # branch: branch (eg. stable/helium)
+ stream:
+ - master:
+ branch: 'master'
+
+ flavor:
+ - five:
+ conf: 'five'
+ node: 'compass-build-deploy-02'
+ - cluster:
+ conf: 'cluster'
+ node: 'compass-build-deploy-03'
+
+
+
+ project: 'compass4nfv'
+
+########################
+# job templates
+########################
+- job-template:
+ name: 'compass-upload-iso'
+ project-type: freestyle
+ disabled: false
+
+ node: master
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - compass-parameter:
+ installer: '{installer}'
+
+ wrappers:
+ - ssh-agent-credentials:
+ user: '{ssh-credentials}'
+
+ builders:
+ - 'compass-copy-artifact'
+ - 'compass-upload-artifact'
+
+- job-template:
+ name: 'compass-verify'
+
+ project-type: freestyle
+
+ disabled: false
+
+ node: compass-build-deploy-03
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: 'master'
+ - compass-parameter:
+ installer: '{installer}'
+
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - ssh-agent-credentials:
+ user: '{ssh-credentials}'
+
+ triggers:
+ - gerrit:
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: 'false'
+ exclude-trivial-rebase: 'false'
+ exclude-no-code-change: 'false'
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: 'recheck'
+ - comment-added-contains-event:
+ comment-contains-value: 'reverify'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/master'
+
+ builders:
+ - 'compass-build'
+ #- 'compass-workspace-cleanup'
+
+- job-template:
+ name: 'compass-merge'
+
+ # builder-merge job to run JJB update
+ #
+ # This job's purpose is to update all the JJB
+
+ project-type: freestyle
+
+ node: compass-build-deploy-03
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 40
+ artifactDaysToKeep: -1
+ artifactNumToKeep: 5
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: 'master'
+ - compass-parameter:
+ installer: '{installer}'
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: ''
+ choosing-strategy: 'default'
+
+ wrappers:
+ - ssh-agent-credentials:
+ user: '{ssh-credentials}'
+
+ triggers:
+ - gerrit:
+ trigger-on:
+ - change-merged-event
+ - comment-added-contains-event:
+ comment-contains-value: 'remerge'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/master'
+ builders:
+ - 'compass-merge'
+
+- job-template:
+ name: 'compass-daily-{stream}'
+
+ project-type: freestyle
+
+ node: compass-build-deploy-03
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - compass-parameter:
+ installer: '{installer}'
+
+ scm:
+ - git-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: ''
+ branch: '{branch}'
+
+ triggers:
+ - pollscm: '@midnight'
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ builders:
+ #- 'compass-build'
+ #- 'compass-upload-artifact'
+ #- 'compass-workspace-cleanup'
+ - shell: |
+ echo "Hello world!"
+ echo "compass-deploy-virtual job will be triggered!"
+
+ publishers:
+ - trigger:
+ project: 'compass-deploy-virtual-five'
+ threshold: SUCCESS
+ - trigger:
+ project: 'compass-deploy-virtual-cluster'
+ threshold: SUCCESS
+
+- job-template:
+ name: 'compass-build'
+
+ project-type: freestyle
+
+ node: compass-build-deploy-03
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - compass-parameter:
+ installer: '{installer}'
+
+ scm:
+ - git-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: ''
+ branch: 'master'
+
+ builders:
+ - 'compass-build'
+ - 'compass-workspace-cleanup'
+
+ publishers:
+ - archive:
+ artifacts: '$BUILD_DIRECTORY/*.*'
+ allow-empty: 'true'
+ fingerprint: true
+ - trigger:
+ project: 'compass-upload-iso'
+ threshold: SUCCESS
+
+- job-template:
+ name: 'compass-deploy-virtual-{flavor}'
+
+ project-type: freestyle
+
+ disabled: false
+
+ node: '{node}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - compass-parameter:
+ installer: '{installer}'
+ - string:
+ name: FLAVOR_CONF
+ default: '{conf}'
+ description: ""
+
+ triggers:
+ - pollscm: "H/2 * * * *"
+
+ logrotate:
+ daysToKeep: 30
+ numToKeep: 10
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ builders:
+ - 'compass-ci-preclean-workspace'
+ - 'compass-deploy-virtual-flavor'
+
+########################
+# parameter macros
+########################
+- parameter:
+ name: compass-parameter
+ parameters:
+ - string:
+ name: INSTALLER
+ default: '{installer}'
+ description: "Installer to use."
+ - string:
+ name: BUILD_DIRECTORY
+ default: build_output
+ description: "Directory where the build artifact will be located upon the completion of the build."
+ - string:
+ name: CACHE_DIRECTORY
+ default: $HOME/opnfv/cache/$INSTALLER
+ description: "Directory where the cache to be used during the build is located."
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
+ - string:
+ name: GS_URL
+ default: artifacts.opnfv.org/$PROJECT/$INSTALLER
+ description: "URL to Google Storage."
+ - string:
+ name: INTERNAL_REPO
+ default: "root@192.168.127.11:~/xh/work/build/work"
+ description: "Artifact Repository"
+########################
+# builder macros
+########################
+- builder:
+ name: compass-copy-artifact
+ builders:
+ - copyartifact:
+ project: "compass-build"
+ filter: "$BUILD_DIRECTORY/compass.iso, $BUILD_DIRECTORY/opnfv.properties"
+ target: ./
+ which-build: upstream-build
+ optional: true
+ flatten: true
+ parameter-filters: PUBLISH=true
+
+
+- builder:
+ name: compass-merge
+ builders:
+ - shell: |
+ #!/bin/bash
+ echo "Hello World!"
+
+
+- builder:
+ name: 'compass-build'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ # log info to console
+ echo "Starting the build of $INSTALLER. This could take some time..."
+ echo "--------------------------------------------------------"
+ echo
+
+ # create the cache directory if it doesn't exist
+ [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
+
+ # set OPNFV_ARTIFACT_VERSION
+ export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
+
+ # start the build
+ cd $WORKSPACE/ci
+ ./build.sh
+ mkdir $WORKSPACE/$BUILD_DIRECTORY
+ mv $WORKSPACE/ci/work/compass.iso $WORKSPACE/$BUILD_DIRECTORY/
+
+ # list the build artifacts
+ ls -al $WORKSPACE/$BUILD_DIRECTORY
+
+ # save information regarding artifact into file
+ (
+ echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
+ echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
+ echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
+ echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
+ echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $WORKSPACE/$BUILD_DIRECTORY/compass.iso | cut -d' ' -f1)"
+ echo "OPNFV_BUILD_URL=$BUILD_URL"
+ ) > $WORKSPACE/$BUILD_DIRECTORY/opnfv.properties
+
+ echo
+ echo "--------------------------------------------------------"
+ echo "Done!"
+
+- builder:
+ name: 'compass-deploy'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ # log info to console
+ echo "Hello world!"
+
+- builder:
+ name: 'compass-deploy-virtual-flavor'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ # log info to console
+ echo "Starting the deployment on virtual environment using $INSTALLER. This could take some time..."
+ echo "--------------------------------------------------------"
+ echo
+
+ cd $WORKSPACE
+ ./ci/deploy.sh $FLAVOR_CONF
+ # ssh -o BatchMode=yes -o TCPKeepAlive=yes cideploy@10.118.34.205 ./cideploy.sh
+
+ echo
+ echo "--------------------------------------------------------"
+ echo "Done!"
+
+- builder:
+ name: 'compass-upload-artifact'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ # log info to console
+ echo "Uploading the $INSTALLER artifact. This could take some time..."
+ echo "--------------------------------------------------------"
+ echo
+
+ # source the opnfv.properties to get ARTIFACT_VERSION
+ source $WORKSPACE/opnfv.properties
+
+ scp $WORKSPACE/compass.iso $INTERNAL_REPO/
+ scp $WORKSPACE/opnfv.properties $INTERNAL_REPO/
+ scp $WORKSPACE/compass.iso $INTERNAL_REPO/opnfv-$OPNFV_ARTIFACT_VERSION.iso
+
+ # upload artifact and additional files to google storage
+ gsutil cp $WORKSPACE/compass.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1
+ gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
+ gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
+
+ echo
+ echo "--------------------------------------------------------"
+ echo "Done!"
+ echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
+
+- builder:
+ name: 'compass-download-artifact'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ # log info to console
+ echo "Downloading the $INSTALLER artifact. This could take some time..."
+ echo "--------------------------------------------------------"
+ echo
+
+ # get the latest.properties file in order to get info regarding latest artifact
+ curl -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties
+
+ # check if we got the file
+ [[ -f latest.properties ]] || exit 1
+
+ # source the file so we get OPNFV vars
+ source latest.properties
+
+ # download the file
+ curl -s -o $WORKSPACE/opnfv.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
+
+ # list the file
+ ls -al $WORKSPACE/opnfv.iso
+
+ echo
+ echo "--------------------------------------------------------"
+ echo "Done!"
+
+- builder:
+ name: 'compass-workspace-cleanup'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ # delete everything that is in $WORKSPACE
+ /bin/rm -rf $WORKSPACE
+
+- builder:
+ name: 'compass-ci-preclean-workspace'
+ builders:
+ - shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o nounset
+ set -o pipefail
+
+ cd $WORKSPACE/..
+ sudo rm $WORKSPACE -rf
+ git clone $GIT_BASE $WORKSPACE
+