X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fgenesis%2Fgenesis-fuel.yml;h=ea628a6269e3ec96229d5d98632913ee2c8130f3;hb=1263b76fdb0642130ece84029f98989c5bdb3a7d;hp=6662c7d19a926ce309e7042935a86bdf5b21ff65;hpb=47e3d99cae21388e919d390ad27331a66af5a463;p=releng.git diff --git a/jjb/genesis/genesis-fuel.yml b/jjb/genesis/genesis-fuel.yml index 6662c7d19..ea628a626 100644 --- a/jjb/genesis/genesis-fuel.yml +++ b/jjb/genesis/genesis-fuel.yml @@ -1,37 +1,47 @@ -# this is the job configuration for bgs +######################## +# Job configuration for genesis/fuel +######################## - project: name: genesis-fuel - installer: - - fuel + project: 'genesis' + + installer: 'fuel' + jobs: - - 'genesis-fuel-verify' - - 'genesis-fuel-merge' + - 'genesis-fuel-verify-build-{stream}' + - 'genesis-fuel-merge-{stream}' - 'genesis-fuel-daily-{stream}' - - 'genesis-fuel-build' - - 'genesis-fuel-deploy' - - 'genesis-fuel-test' - - # stream: branch with - in place of / (eg. stable-helium) - # branch: branch (eg. stable/helium) + - 'genesis-fuel-build-{stream}' + - 'genesis-fuel-deploy-{stream}' + - 'genesis-fuel-deploy-runner-{stream}' + - 'genesis-fuel-lab-reconfig-{stream}' + - 'genesis-fuel-verify-deploy-virtual-{stream}' + + # stream: branch with - in place of / (eg. stable-arno) + # branch: branch (eg. stable/arno) stream: - master: branch: 'master' - - project: 'genesis' + gs-pathname: '' + disabled: true + - stable-arno: + branch: 'stable/arno' + gs-pathname: '/arno' + disabled: true ######################## # job templates ######################## - job-template: - name: 'genesis-fuel-verify' - - project-type: freestyle + name: 'genesis-fuel-verify-build-{stream}' node: ericsson-build + disabled: true + concurrent: true properties: @@ -39,35 +49,14 @@ enabled: true max-total: 3 - logrotate: - daysToKeep: 30 - numToKeep: 10 - artifactDaysToKeep: -1 - artifactNumToKeep: -1 - parameters: - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/genesis - 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/genesis/fuel' - description: "URL to Google Storage." - - 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: CACHE_DIRECTORY - default: $HOME/opnfv/cache/genesis-fuel - description: "Cache location that is where the cache is populated and used during builds to reduce the build time." - - string: - name: ARTIFACT_VERSION - default: $BUILD_ID - description: "Version number to append to resulting ISO." + - project-parameter: + project: '{project}' - gerrit-parameter: - branch: 'master' + branch: '{branch}' + - genesis-fuel-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' scm: - gerrit-trigger-scm: @@ -75,10 +64,6 @@ refspec: '$GERRIT_REFSPEC' choosing-strategy: 'gerrit' - wrappers: - - ssh-agent-credentials: - user: '{ssh-credentials}' - triggers: - gerrit: trigger-on: @@ -96,29 +81,43 @@ project-pattern: 'genesis' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' file-paths: - compare-type: ANT - pattern: 'common/**' + pattern: 'common/ci/**' - compare-type: ANT - pattern: 'fuel/**' - + pattern: 'common/manifests/**' + - compare-type: ANT + pattern: 'common/puppet-opnfv/**' + - compare-type: ANT + pattern: 'common/tools/**' + - compare-type: ANT + pattern: '{installer}/build/**' + - compare-type: ANT + pattern: '{installer}/ci/**' + - compare-type: ANT + pattern: '{installer}/deploy/**' + - compare-type: ANT + pattern: '{installer}/include/**' + - compare-type: ANT + pattern: '{installer}/prototypes/**' + forbidden-file-paths: + - compare-type: ANT + pattern: 'common/docs/**' + - compare-type: ANT + pattern: '{installer}/docs/**' builders: - - 'installer-build' - - 'installer-cleanup' + - 'fuel-build' + - 'fuel-workspace-cleanup' - job-template: - name: 'genesis-fuel-merge' - - # builder-merge job to run JJB update - # - # This job's purpose is to update all the JJB - - project-type: freestyle + name: 'genesis-fuel-merge-{stream}' node: ericsson-build + disabled: true + concurrent: true properties: @@ -126,35 +125,14 @@ enabled: true max-total: 2 - logrotate: - daysToKeep: 30 - numToKeep: 40 - artifactDaysToKeep: -1 - artifactNumToKeep: 5 - parameters: - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/genesis - 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/genesis/fuel' - description: "URL to Google Storage." - - 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: CACHE_DIRECTORY - default: $HOME/opnfv/cache/genesis-fuel - description: "Cache location that is where the cache is populated and used during builds to reduce the build time." - - string: - name: ARTIFACT_VERSION - default: $BUILD_ID - description: "Version number to append to resulting ISO." + - project-parameter: + project: '{project}' - gerrit-parameter: - branch: 'master' + branch: '{branch}' + - genesis-fuel-parameter: + installer: '{installer}' + gs-pathname: '' scm: - gerrit-trigger-scm: @@ -162,10 +140,6 @@ refspec: '' choosing-strategy: 'default' - wrappers: - - ssh-agent-credentials: - user: '{ssh-credentials}' - triggers: - gerrit: trigger-on: @@ -176,382 +150,421 @@ - project-compare-type: 'ANT' project-pattern: 'genesis' branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/master' + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' file-paths: - compare-type: ANT - pattern: 'common/**' + pattern: 'common/ci/**' + - compare-type: ANT + pattern: 'common/manifests/**' + - compare-type: ANT + pattern: 'common/puppet-opnfv/**' + - compare-type: ANT + pattern: 'common/tools/**' + - compare-type: ANT + pattern: '{installer}/build/**' + - compare-type: ANT + pattern: '{installer}/ci/**' + - compare-type: ANT + pattern: '{installer}/deploy/**' + - compare-type: ANT + pattern: '{installer}/include/**' + - compare-type: ANT + pattern: '{installer}/prototypes/**' + forbidden-file-paths: - compare-type: ANT - pattern: 'fuel/**' + pattern: 'common/docs/**' + - compare-type: ANT + pattern: '{installer}/docs/**' builders: - - 'installer-build' - - 'installer-cleanup' + - 'fuel-build' + - 'fuel-workspace-cleanup' - job-template: name: 'genesis-fuel-daily-{stream}' - project-type: freestyle - node: ericsson-build + disabled: true + + triggers: + - 'genesis-fuel-{stream}-trigger' + parameters: + - project-parameter: + project: '{project}' + - genesis-fuel-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + builders: + - trigger-builds: + - project: 'genesis-fuel-build-{stream}' + git-revision: true + block: true + - trigger-builds: + - project: 'genesis-fuel-lab-reconfig-{stream}' + git-revision: true + block: true + - trigger-builds: + - project: 'genesis-fuel-deploy-{stream}' + git-revision: true + block: true + - trigger-builds: + - project: 'functest-fuel-{stream}' + block: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' + # - trigger-builds: + # - project: 'yardstick-fuel-{stream}' + # block: true + # block-thresholds: + # build-step-failure-threshold: 'never' + # failure-threshold: 'never' + # unstable-threshold: 'FAILURE' + + publishers: + - trigger-parameterized-builds: + - project: 'genesis-foreman-daily-{stream}' + trigger-with-no-params: true + +- job-template: + name: 'genesis-fuel-deploy-runner-{stream}' + + disabled: true + + parameters: + - project-parameter: + project: '{project}' + - genesis-fuel-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' - string: name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/genesis - 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: GERRIT_BRANCH - default: origin/master - description: "Branch to build, deploy and test." - - string: - name: GERRIT_REFSPEC - default: refs/heads/master - description: "Refspec to retrieve." - - string: - name: GS_URL - default: 'artifacts.opnfv.org/genesis/fuel' - description: "URL to Google Storage." - - 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: CACHE_DIRECTORY - default: $HOME/opnfv/cache/genesis-fuel - description: "Cache location that is where the cache is populated and used during builds to reduce the build time." - - string: - name: ARTIFACT_VERSION - default: $BUILD_ID - description: "Version number to append to resulting ISO." - - string: - name: SKIP_BUILD - default: 0 - description: "Temporary parameter for deployment testing to skip the build and run deployment only." + default: ssh://gerrit.opnfv.org:29418/$PROJECT + description: "Used for overriding the GIT URL coming from parameters macro." scm: - - git: - skip-tag: true - url: $GIT_BASE - branches: - - $GERRIT_BRANCH - refspec: $GERRIT_REFSPEC - - triggers: - - pollscm: '@midnight' + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' - logrotate: - daysToKeep: 30 - numToKeep: 10 - artifactDaysToKeep: -1 - artifactNumToKeep: -1 + properties: + - build-blocker: + use-build-blocker: true + blocking-jobs: + - "genesis-foreman-daily.*" + - "genesis-foreman-deploy-runner-{stream}" + - "genesis-fuel-daily.*" builders: - - 'installer-build' - - 'installer-upload-artifact' - - 'installer-deploy-quick-fix' + - 'fuel-lab-reconfig' + - trigger-builds: + - project: 'genesis-fuel-deploy-{stream}' + git-revision: true + block: true - job-template: - name: 'genesis-fuel-build' + name: 'genesis-fuel-build-{stream}' - project-type: freestyle + node: ericsson-build disabled: true - node: ericsson-build + parameters: + - project-parameter: + project: '{project}' + - genesis-fuel-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + builders: + - 'fuel-build' + - 'fuel-upload-artifact' + - 'fuel-workspace-cleanup' + + publishers: + - email: + recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com + +- job-template: + name: 'genesis-fuel-deploy-{stream}' + + disabled: true + + node: opnfv-jump-2 parameters: + - project-parameter: + project: '{project}' + - genesis-fuel-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' - string: name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/genesis - 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: GERRIT_BRANCH - default: origin/master - description: "Branch to build, deploy and test." - - string: - name: GERRIT_REFSPEC - default: refs/heads/master - description: "Refspec to retrieve." - - string: - name: GS_URL - default: 'artifacts.opnfv.org/genesis/fuel' - description: "URL to Google Storage." - - 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: CACHE_DIRECTORY - default: $HOME/opnfv/cache/genesis-fuel - description: "Cache location that is where the cache is populated and used during builds to reduce the build time." - - string: - name: ARTIFACT_VERSION - default: $BUILD_ID - description: "Version number to append to resulting ISO." - - string: - name: SKIP_BUILD - default: 0 - description: "Temporary parameter for deployment testing to skip the build and run deployment only." + default: ssh://gerrit.opnfv.org:29418/$PROJECT + description: "POD2 has some issues with cloning using https so that's why GIT_BASE is overriden here again." scm: - - git: - skip-tag: true - url: $GIT_BASE - branches: - - $GERRIT_BRANCH - refspec: $GERRIT_REFSPEC - - logrotate: - daysToKeep: 30 - numToKeep: 10 - artifactDaysToKeep: -1 - artifactNumToKeep: -1 + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' builders: - - shell: | - #!/bin/bash - set -o errexit - set -o nounset - set -o pipefail - set -x + - 'fuel-download-artifact' + - 'fuel-deploy' - echo "Hello World!" + publishers: + - email: + recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com - job-template: - name: 'genesis-fuel-deploy' - - project-type: freestyle + name: 'genesis-fuel-lab-reconfig-{stream}' disabled: true - node: opnfv-jump-1 - parameters: + - project-parameter: + project: '{project}' + - genesis-fuel-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' - string: name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/genesis - 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: GERRIT_BRANCH - default: origin/master - description: "Branch to build, deploy and test." - - string: - name: GERRIT_REFSPEC - default: refs/heads/master - description: "Refspec to retrieve." - - string: - name: GS_URL - default: 'artifacts.opnfv.org/genesis/fuel' - description: "URL to Google Storage." - - 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: CACHE_DIRECTORY - default: $HOME/opnfv/cache/genesis-fuel - description: "Cache location that is where the cache is populated and used during builds to reduce the build time." - - string: - name: ARTIFACT_VERSION - default: $BUILD_ID - description: "Version number to append to resulting ISO." - - string: - name: SKIP_BUILD - default: 0 - description: "Temporary parameter for deployment testing to skip the build and run deployment only." + default: ssh://gerrit.opnfv.org:29418/$PROJECT + description: "Used for overriding the GIT URL coming from parameters macro." scm: - - git: - skip-tag: true - url: $GIT_BASE - branches: - - $GERRIT_BRANCH - refspec: $GERRIT_REFSPEC - - logrotate: - daysToKeep: 30 - numToKeep: 10 - artifactDaysToKeep: -1 - artifactNumToKeep: -1 + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' - builders: - - shell: | - #!/bin/bash - set -o errexit - set -o nounset - set -o pipefail - set -x + properties: + - build-blocker: + use-build-blocker: true + blocking-jobs: + - "genesis-foreman-daily.*" - echo "Hello World!" + builders: + - 'fuel-lab-reconfig' - job-template: - name: 'genesis-fuel-test' + name: 'genesis-fuel-verify-deploy-virtual-{stream}' - project-type: freestyle + disabled: true - disabled: false + node: ericsson-build - node: ericsson-test + parameters: + - project-parameter: + project: '{project}' + - genesis-fuel-parameter: + installer: '{installer}' + gs-pathname: '' + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: 'master' + + builders: + - 'fuel-deploy-virtual' + +######################## +# parameter macros +######################## +- parameter: + name: genesis-fuel-parameter parameters: - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/genesis - 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: GERRIT_BRANCH - default: origin/master - description: "Branch to build, deploy and test." - - string: - name: GERRIT_REFSPEC - default: refs/heads/master - description: "Refspec to retrieve." - - string: - name: GS_URL - default: 'artifacts.opnfv.org/genesis/fuel' - description: "URL to Google Storage." + name: INSTALLER + default: '{installer}' + description: "Installer to use." - 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: CACHE_DIRECTORY - default: $HOME/opnfv/cache/genesis-fuel - description: "Cache location that is where the cache is populated and used during builds to reduce the build time." + default: $HOME/opnfv/cache/genesis-$INSTALLER + description: "Directory where the cache to be used during the build is located." - string: - name: ARTIFACT_VERSION - default: $BUILD_ID - description: "Version number to append to resulting ISO." + 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: SKIP_BUILD - default: 0 - description: "Temporary parameter for deployment testing to skip the build and run deployment only." - - scm: - - git: - skip-tag: true - url: $GIT_BASE - branches: - - $GERRIT_BRANCH - refspec: $GERRIT_REFSPEC - - logrotate: - daysToKeep: 30 - numToKeep: 10 - artifactDaysToKeep: -1 - artifactNumToKeep: -1 - - builders: - - shell: | - #!/bin/bash - set -o errexit - set -o nounset - set -o pipefail - set -x - - echo "Hello World!" + name: GS_URL + default: artifacts.opnfv.org/$PROJECT/$INSTALLER{gs-pathname} + description: "URL to Google Storage." +######################## +# builder macros +######################## - builder: - name: installer-build + name: 'fuel-build' builders: - shell: | #!/bin/bash set -o errexit set -o nounset set -o pipefail - set -x - # this is here for quick tries with deployment - SKIP_BUILD=${SKIP_BUILD-0} - if [ "$SKIP_BUILD" == "1" ]; then - echo "Skipping build for deployment testing!" - exit 0 - else - echo "Proceeding with build first!" - fi + # log info to console + echo "Starting the build of $INSTALLER. This could take some time..." + echo "--------------------------------------------------------" + echo - # set/create the cache location + # create the cache directory if it doesn't exist [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY - # do the build - cd $WORKSPACE/fuel/ci - ./build.sh -v $ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY + # set OPNFV_ARTIFACT_VERSION + export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S") + + # start the build + cd $WORKSPACE/$INSTALLER/ci + ./build.sh -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY # list the build artifacts ls -al $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 $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)" + echo "OPNFV_BUILD_URL=$BUILD_URL" + ) > $WORKSPACE/opnfv.properties + + echo + echo "--------------------------------------------------------" + echo "Done!" + - builder: - name: installer-deploy-quick-fix + name: 'fuel-deploy' builders: - shell: | #!/bin/bash set -o errexit set -o nounset set -o pipefail - set -x - # this is just a quick fix to execute the deployment in a messy way - # will be fixed later on - ssh -o BatchMode=yes -o TCPKeepAlive=yes cideploy@10.118.34.205 ./cideploy.sh + # source the file so we get OPNFV vars + source latest.properties + + # echo the info about artifact that is used during the deployment + echo "Using $(echo $OPNFV_ARTIFACT_URL | cut -d'/' -f4) for deployment" + + # create TMPDIR if it doesn't exist + export TMPDIR=$HOME/tmpdir + [[ -d $TMPDIR ]] || mkdir -p $TMPDIR + + # change permissions down to TMPDIR + chmod a+x $HOME + chmod a+x $TMPDIR + + # set CONFDIR, BRIDGE + export CONFDIR=$WORKSPACE/fuel/deploy/templates/hardware_environment/conf/linux_foundation_lab/pod2 + export BRIDGE=pxebr + + # cleanup first + sudo $WORKSPACE/common/ci/clean.sh -base_config $WORKSPACE/foreman/ci/inventory/lf_pod2_ksgen_settings.yml + + # prepare for Fuel Deployment + sudo $WORKSPACE/common/ci/setup.sh + + # log info to console + echo "Starting the deployment using $INSTALLER. This could take some time..." + echo "--------------------------------------------------------" + echo + + # start the deployment + echo "Issuing command" + echo "sudo $WORKSPACE/fuel/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh" + sudo $WORKSPACE/fuel/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh + + echo + echo "--------------------------------------------------------" + echo "Done!" - builder: - name: installer-test + name: 'fuel-deploy-virtual' builders: - shell: | #!/bin/bash set -o errexit set -o nounset set -o pipefail - set -x - # run FuncTest - echo "Here is where we are supposed to run FuncTest" + # log info to console + echo "Starting the deployment on virtual environment using $INSTALLER. This could take some time..." + echo "--------------------------------------------------------" + echo + + ssh -o BatchMode=yes -o TCPKeepAlive=yes cideploy@10.118.34.205 ./cideploy.sh + + echo + echo "--------------------------------------------------------" + echo "Done!" - builder: - name: installer-upload-artifact + name: 'fuel-upload-artifact' builders: - shell: | #!/bin/bash set -o errexit set -o nounset set -o pipefail - set -x - # change the build directory where ISO is created - 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-$ARTIFACT_VERSION.iso" - echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum opnfv-$ARTIFACT_VERSION.iso | cut -d' ' -f1)" - echo "OPNFV_BUILD_URL=$BUILD_URL" - echo "OPNFV_BUILD=OK" - ) > opnfv-$ARTIFACT_VERSION.properties + # log info to console + echo "Uploading the $INSTALLER artifact. This could take some time..." + echo "--------------------------------------------------------" + echo - # copy artifact property file as latest.properties - # so we can directly get info regarding latest artifact - /bin/cp -f opnfv-$ARTIFACT_VERSION.properties latest.properties + # source the opnfv.properties to get ARTIFACT_VERSION + source $WORKSPACE/opnfv.properties # upload artifact and additional files to google storage - gsutil cp opnfv-$ARTIFACT_VERSION.iso gs://$GS_URL/opnfv-$ARTIFACT_VERSION.iso - gsutil cp opnfv-$ARTIFACT_VERSION.properties gs://$GS_URL/opnfv-$ARTIFACT_VERSION.properties - gsutil cp latest.properties gs://$GS_URL/latest.properties + gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.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: installer-download-artifact + name: 'fuel-download-artifact' builders: - 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 $WORKSPACE/latest.properties + curl -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties # check if we got the file [[ -f latest.properties ]] || exit 1 @@ -559,21 +572,120 @@ # source the file so we get OPNFV vars source latest.properties + # log info to console + echo "Downloading the $INSTALLER artifact using URL http://$OPNFV_ARTIFACT_URL" + echo "This could take some time..." + echo "--------------------------------------------------------" + echo + # download the file - gsutil cp gs://$OPNFV_ARTIFACT_URL $WORKSPACE/opnfv.iso + 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: installer-cleanup + name: 'fuel-workspace-cleanup' builders: - shell: | #!/bin/bash set -o errexit set -o nounset set -o pipefail - set -x # delete everything that is in $WORKSPACE /bin/rm -rf $WORKSPACE + +- builder: + name: 'fuel-lab-reconfig' + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + + # check to see if ucs login info file exists + if [ -e ~/.ssh/ucs_creds ];then + source ~/.ssh/ucs_creds + else + echo "Unable to find UCS credentials for LF lab reconfiguration...Exiting" + exit 1 + fi + + # clone releng + echo "Cloning releng repo..." + if ! GIT_SSL_NO_VERIFY=true git clone https://gerrit.opnfv.org/gerrit/releng; then + echo "Unable to clone releng repo...Exiting" + exit 1 + fi + + # log info to console + echo "Starting the lab reconfiguration for $INSTALLER..." + echo "--------------------------------------------------------" + echo + + # create venv + $WORKSPACE/releng/utils/lab-reconfiguration/create_venv.sh + + # disable nounset because 'activate' script contains unbound variable(s) + set +o nounset + # enter venv + source $WORKSPACE/releng/utils/lab-reconfiguration/venv/bin/activate + # set nounset back again + set -o nounset + + # verify we are in venv + if [[ ! $(which python | grep venv) ]]; then + echo "Unable to activate venv...Exiting" + exit 1 + fi + + python $WORKSPACE/releng/utils/lab-reconfiguration/reconfigUcsNet.py -i $ucs_host -u $ucs_user -p $ucs_password -f $WORKSPACE/releng/utils/lab-reconfiguration/fuel.yaml + + # while undergoing reboot + sleep 30 + + # check to see if slave is back up + ping_counter=0 + ping_flag=0 + while [ "$ping_counter" -lt 20 ]; do + if [[ $(ping -c 5 172.30.10.72) ]]; then + ping_flag=1 + break + fi + ((ping_counter++)) + sleep 10 + done + + if [ "$ping_flag" -eq 1 ]; then + echo "Slave is pingable, now wait 180 seconds for services to start" + sleep 180 + else + echo "Slave did not come back up after reboot: please check opnfv-jump-2" + exit 1 + fi + + set +o nounset + deactivate + + echo + echo "--------------------------------------------------------" + echo "Done!" + +######################## +# trigger macros +######################## +- trigger: + name: 'genesis-fuel-master-trigger' + triggers: + - timed: '0 5 * * *' + +- trigger: + name: 'genesis-fuel-stable-arno-trigger' + triggers: + - timed: '0 7 * * *'