From 151cfc32953ec4106f2ee5811d9f989302069b50 Mon Sep 17 00:00:00 2001 From: Aric Gardner Date: Mon, 13 Apr 2015 09:41:47 -0400 Subject: Split up genesis.yml into its component installers so that we can specify nodes Change-Id: I97fecab46df84687e73d5e98bed96cacc2e8cb0a JIRA:0000 Signed-off-by: Aric Gardner --- jjb/genesis/genesis-foreman.yml | 342 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 342 insertions(+) create mode 100644 jjb/genesis/genesis-foreman.yml (limited to 'jjb/genesis/genesis-foreman.yml') diff --git a/jjb/genesis/genesis-foreman.yml b/jjb/genesis/genesis-foreman.yml new file mode 100644 index 000000000..c63b42396 --- /dev/null +++ b/jjb/genesis/genesis-foreman.yml @@ -0,0 +1,342 @@ +# this is the job configuration for bgs +- project: + + name: genesis-foreman + + installer: + - foreman + jobs: + - 'genesis-foreman-verify' + - 'genesis-foreman-merge' + - 'genesis-foreman-daily-{stream}' + + # stream: branch with - in place of / (eg. stable-helium) + # branch: branch (eg. stable/helium) + stream: + - master: + branch: 'master' + + project: 'genesis' + +######################## +# job templates +######################## + +- job-template: + name: 'genesis-foreman-verify' + + project-type: freestyle + + node: ericsson-build + + logrotate: + daysToKeep: 30 + numToKeep: 10 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + + parameters: + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/genesis + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: 'master' + + 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: 'genesis' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/master' + file-paths: + - compare-type: ANT + pattern: 'common/**' + - compare-type: ANT + pattern: 'foreman/**' + + + builders: + - 'foreman-verify' + +- job-template: + name: 'genesis-foreman-merge' + + # builder-merge job to run JJB update + # + # This job's purpose is to update all the JJB + + project-type: freestyle + + node: ericsson-build + + logrotate: + daysToKeep: 30 + numToKeep: 40 + artifactDaysToKeep: -1 + artifactNumToKeep: 5 + + parameters: + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/genesis + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: 'master' + + 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: 'genesis' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/master' + file-paths: + - compare-type: ANT + pattern: 'common/**' + - compare-type: ANT + pattern: 'foreman/**' + + builders: + - 'foreman-merge' + +- job-template: + name: 'genesis-foreman-daily-{stream}' + + project-type: freestyle + + node: ericsson-build + + parameters: + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: GS_URL + default: 'artifacts.opnfv.org/genesis/foreman' + description: "URL to Google Storage." + - string: + name: INSTALLER + default: 'foreman' + description: "Installer to use." + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/genesis + - string: + name: GERRIT_BRANCH + default: origin/master + description: "Branch to build, deploy and test." + - string: + name: GERRIT_REFSPEC + default: refs/heads/master + description: "Refspec to retrieve." + + scm: + - git: + skip-tag: true + url: $GIT_BASE + branches: + - $GERRIT_BRANCH + refspec: $GERRIT_REFSPEC + + triggers: + - pollscm: '@midnight' + + logrotate: + daysToKeep: 30 + numToKeep: 10 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + + builders: + - 'foreman-daily-master' + + +######################## +# builder macros +######################## +- builder: + name: foreman-verify + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + set -x + + # get the dependencies - temporary fix for RC0 + [[ -d $WORKSPACE/foreman/build ]] || mkdir -p $WORKSPACE/foreman/build + cp /home/jenkins/Downloads/opnfv_iso/* $WORKSPACE/foreman/build/ + + # below lines perhaps need to be enabled in order to fetch images from internet + # as we are having disk space issues on ericsson-build slave + #wget http://ftp.riken.jp/Linux/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-Minimal.iso + #wget http://download.virtualbox.org/virtualbox/rpm/fedora/20/x86_64/VirtualBox-4.3-4.3.26_98988_fedora18-1.x86_64.rpm + #wget http://repos.duss-janser.ch/vagrant/vagrant_1.7.2_x86_64.rpm + + # do the build + cd $WORKSPACE/foreman/ci + ./build.sh $BUILD_DIRECTORY + + # list the build artifacts + ls -al $BUILD_DIRECTORY + + # remove the BUILD_DIRECTORY to reclaim some space + /bin/rm -rf $BUILD_DIRECTORY + +- builder: + name: foreman-merge + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + set -x + + # get the dependencies - temporary fix for RC0 + [[ -d $WORKSPACE/foreman/build ]] || mkdir -p $WORKSPACE/foreman/build + cp /home/jenkins/Downloads/opnfv_iso/* $WORKSPACE/foreman/build/ + + # below lines perhaps need to be enabled in order to fetch images from internet + # as we are having disk space issues on ericsson-build slave + #wget http://ftp.riken.jp/Linux/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-Minimal.iso + #wget http://download.virtualbox.org/virtualbox/rpm/fedora/20/x86_64/VirtualBox-4.3-4.3.26_98988_fedora18-1.x86_64.rpm + #wget http://repos.duss-janser.ch/vagrant/vagrant_1.7.2_x86_64.rpm + + # do the build + cd $WORKSPACE/foreman/ci + ./build.sh $BUILD_DIRECTORY + + # list the build artifacts + ls -al $BUILD_DIRECTORY + + # remove the BUILD_DIRECTORY to reclaim some space + /bin/rm -rf $BUILD_DIRECTORY + +- builder: + name: foreman-daily-master + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + set -x + + # get the dependencies - temporary fix for RC0 + [[ -d $WORKSPACE/foreman/build ]] || mkdir -p $WORKSPACE/foreman/build + cp /home/jenkins/Downloads/opnfv_iso/* $WORKSPACE/foreman/build/ + + # below lines perhaps need to be enabled in order to fetch images from internet + # as we are having disk space issues on ericsson-build slave + #wget http://ftp.riken.jp/Linux/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-Minimal.iso + #wget http://download.virtualbox.org/virtualbox/rpm/fedora/20/x86_64/VirtualBox-4.3-4.3.26_98988_fedora18-1.x86_64.rpm + #wget http://repos.duss-janser.ch/vagrant/vagrant_1.7.2_x86_64.rpm + + # do the build + cd $WORKSPACE/foreman/ci + ./build.sh -v $BUILD_ID $BUILD_DIRECTORY + + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + set -x + + # list the build artifacts + ls -al $BUILD_DIRECTORY + + cd $BUILD_DIRECTORY + + # save information regarding artifact into file + ( + 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-$BUILD_ID.iso" + echo "OPNFV_BUILD_URL=$BUILD_URL" + echo "OPNFV_BUILD=OK" + ) > opnfv-$BUILD_ID.properties + + # copy artifact property file as latest.properties + # so we can directly get info regarding latest artifact + /bin/cp -f opnfv-$BUILD_ID.properties latest.properties + + # upload artifact and additional files to google storage + gsutil cp OPNFV-CentOS-7-x86_64-$BUILD_ID.iso gs://$GS_URL/opnfv-$BUILD_ID.iso + gsutil cp opnfv-$BUILD_ID.properties gs://$GS_URL/opnfv-$BUILD_ID.properties + gsutil cp latest.properties gs://$GS_URL/latest.properties + + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + set -x + + # get the latest.properties file in order to get info regarding latest artifact + gsutil cp gs://$GS_URL/latest.properties 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 + gsutil cp gs://$OPNFV_ARTIFACT_URL $WORKSPACE/opnfv.iso + + # list the file + ls -al $WORKSPACE/opnfv.iso + + # remove the BUILD_DIRECTORY and downlaoded artifact to reclaim some space + /bin/rm -rf $BUILD_DIRECTORY + /bin/rm -rf $WORKSPACE/opnfv.iso -- cgit 1.2.3-korg