1 ########################
2 # Job configuration for genesis/foreman
3 ########################
13 - 'genesis-foreman-verify-build-{stream}'
14 - 'genesis-foreman-merge-{stream}'
15 - 'genesis-foreman-daily-{stream}'
16 - 'genesis-foreman-build-{stream}'
17 - 'genesis-foreman-deploy-{stream}'
18 - 'genesis-foreman-lab-reconfig-{stream}'
19 - 'genesis-foreman-deploy-runner-{stream}'
20 - 'genesis-foreman-verify-deploy-virtual-{stream}'
22 # stream: branch with - in place of / (eg. stable-arno)
23 # branch: branch (eg. stable/arno)
33 ########################
35 ########################
38 name: 'genesis-foreman-verify-build-{stream}'
52 artifactDaysToKeep: -1
61 installer: '{installer}'
62 gs-pathname: '{gs-pathname}'
65 credentials-id: '{ssh-credentials}'
66 refspec: '$GERRIT_REFSPEC'
67 choosing-strategy: 'gerrit'
72 - patchset-created-event:
73 exclude-drafts: 'false'
74 exclude-trivial-rebase: 'false'
75 exclude-no-code-change: 'false'
76 - draft-published-event
77 - comment-added-contains-event:
78 comment-contains-value: 'recheck'
79 - comment-added-contains-event:
80 comment-contains-value: 'reverify'
82 - project-compare-type: 'ANT'
83 project-pattern: 'genesis'
85 - branch-compare-type: 'ANT'
86 branch-pattern: '**/{branch}'
89 pattern: 'common/ci/**'
91 pattern: 'common/manifests/**'
93 pattern: 'common/puppet-opnfv/**'
95 pattern: 'common/tools/**'
97 pattern: '{installer}/build/**'
99 pattern: '{installer}/ci/**'
101 pattern: '{installer}/include/**'
102 forbidden-file-paths:
104 pattern: 'common/docs/**'
106 pattern: '{installer}/docs/**'
110 - 'foreman-workspace-cleanup'
113 name: 'genesis-foreman-merge-{stream}'
130 installer: '{installer}'
133 - gerrit-trigger-scm:
134 credentials-id: '{ssh-credentials}'
136 choosing-strategy: 'default'
141 - change-merged-event
142 - comment-added-contains-event:
143 comment-contains-value: 'remerge'
145 - project-compare-type: 'ANT'
146 project-pattern: 'genesis'
148 - branch-compare-type: 'ANT'
149 branch-pattern: '**/{branch}'
152 pattern: 'common/ci/**'
154 pattern: 'common/manifests/**'
156 pattern: 'common/puppet-opnfv/**'
158 pattern: 'common/tools/**'
160 pattern: '{installer}/build/**'
162 pattern: '{installer}/ci/**'
164 pattern: '{installer}/include/**'
165 forbidden-file-paths:
167 pattern: 'common/docs/**'
169 pattern: '{installer}/docs/**'
173 - 'foreman-workspace-cleanup'
176 name: 'genesis-foreman-daily-{stream}'
180 disabled: '{obj:disabled}'
189 installer: '{installer}'
190 gs-pathname: '{gs-pathname}'
194 credentials-id: '{ssh-credentials}'
201 artifactDaysToKeep: -1
202 artifactNumToKeep: -1
206 - project: 'genesis-foreman-build-{stream}'
210 - project: 'genesis-foreman-lab-reconfig-{stream}'
214 - project: 'genesis-foreman-deploy-{stream}'
218 - project: 'functest-foreman-{stream}'
221 build-step-failure-threshold: 'never'
222 failure-threshold: 'never'
223 unstable-threshold: 'FAILURE'
225 # - project: 'yardstick-foreman-{stream}'
228 # build-step-failure-threshold: 'never'
229 # failure-threshold: 'never'
230 # unstable-threshold: 'FAILURE'
233 - trigger-parameterized-builds:
234 - project: 'genesis-fuel-daily-{stream}'
235 trigger-with-no-params: true
238 name: 'genesis-foreman-deploy-runner-{stream}'
245 artifactDaysToKeep: -1
246 artifactNumToKeep: -1
252 installer: '{installer}'
253 gs-pathname: '{gs-pathname}'
256 default: ssh://gerrit.opnfv.org:29418/$PROJECT
257 description: "Used for overriding the GIT URL coming from parameters macro."
261 credentials-id: '{ssh-credentials}'
267 use-build-blocker: true
269 - "genesis-fuel-daily.*"
270 - "genesis-fuel-deploy-runner-{stream}"
271 - "genesis-foreman-daily.*"
274 - 'foreman-lab-reconfig'
276 - project: 'genesis-foreman-deploy-{stream}'
281 name: 'genesis-foreman-build-{stream}'
288 artifactDaysToKeep: -1
289 artifactNumToKeep: -1
295 installer: '{installer}'
296 gs-pathname: '{gs-pathname}'
299 credentials-id: '{ssh-credentials}'
305 - 'foreman-upload-artifact'
306 - 'foreman-workspace-cleanup'
309 name: 'genesis-foreman-deploy-{stream}'
318 artifactDaysToKeep: -1
319 artifactNumToKeep: -1
325 installer: '{installer}'
326 gs-pathname: '{gs-pathname}'
329 default: ssh://gerrit.opnfv.org:29418/$PROJECT
330 description: "Used for overriding the GIT URL coming from parameters macro."
334 credentials-id: '{ssh-credentials}'
342 name: 'genesis-foreman-lab-reconfig-{stream}'
349 artifactDaysToKeep: -1
350 artifactNumToKeep: -1
356 installer: '{installer}'
357 gs-pathname: '{gs-pathname}'
360 default: ssh://gerrit.opnfv.org:29418/$PROJECT
361 description: "Used for overriding the GIT URL coming from parameters macro."
365 credentials-id: '{ssh-credentials}'
371 use-build-blocker: true
373 - "genesis-fuel-daily.*"
376 - 'foreman-lab-reconfig'
379 name: 'genesis-foreman-verify-deploy-virtual-{stream}'
388 artifactDaysToKeep: -1
389 artifactNumToKeep: -1
397 installer: '{installer}'
398 gs-pathname: '{gs-pathname}'
401 default: ssh://gerrit.opnfv.org:29418/$PROJECT
402 description: "Used for overriding the GIT URL coming from parameters macro."
404 - gerrit-trigger-scm:
405 credentials-id: '{ssh-credentials}'
406 refspec: '$GERRIT_REFSPEC'
407 choosing-strategy: 'gerrit'
412 - patchset-created-event:
413 exclude-drafts: 'false'
414 exclude-trivial-rebase: 'false'
415 exclude-no-code-change: 'false'
416 - draft-published-event
417 - comment-added-contains-event:
418 comment-contains-value: 'recheck'
419 - comment-added-contains-event:
420 comment-contains-value: 'reverify'
422 - project-compare-type: 'ANT'
423 project-pattern: 'genesis'
425 - branch-compare-type: 'ANT'
426 branch-pattern: '**/{branch}'
429 pattern: 'common/ci/**'
431 pattern: 'common/manifests/**'
433 pattern: 'common/puppet-opnfv/**'
435 pattern: 'common/tools/**'
437 pattern: '{installer}/build/**'
439 pattern: '{installer}/ci/**'
441 pattern: '{installer}/include/**'
442 forbidden-file-paths:
444 pattern: 'common/docs/**'
446 pattern: '{installer}/docs/**'
447 dependency-jobs: 'genesis-foreman-verify-build-{stream}'
450 - 'foreman-deploy-virtual'
452 ########################
454 ########################
456 name: foreman-parameter
460 default: '{installer}'
461 description: "Installer to use."
463 name: BUILD_DIRECTORY
464 default: $WORKSPACE/build_output
465 description: "Directory where the build artifact will be located upon the completion of the build."
467 name: CACHE_DIRECTORY
468 default: $HOME/opnfv/cache/genesis-$INSTALLER{gs-pathname}
469 description: "Directory where the cache to be used during the build is located."
472 default: https://gerrit.opnfv.org/gerrit/$PROJECT
473 description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
476 default: artifacts.opnfv.org/$PROJECT/$INSTALLER{gs-pathname}
477 description: "URL to Google Storage."
479 ########################
481 ########################
483 name: 'foreman-lab-reconfig'
491 # check to see if ucs login info file exists
492 if [ -e ~/.ssh/ucs_creds ];then
493 source ~/.ssh/ucs_creds
495 echo "Unable to find UCS credentials for LF lab reconfiguration...Exiting"
500 echo "Cloning releng repo..."
501 if ! GIT_SSL_NO_VERIFY=true git clone https://gerrit.opnfv.org/gerrit/releng; then
502 echo "Unable to clone releng repo...Exiting"
506 # log info to console
507 echo "Starting the lab reconfiguration for $INSTALLER..."
508 echo "--------------------------------------------------------"
512 $WORKSPACE/releng/utils/lab-reconfiguration/create_venv.sh
514 # disable nounset because 'activate' script contains unbound variable(s)
517 source $WORKSPACE/releng/utils/lab-reconfiguration/venv/bin/activate
518 # set nounset back again
521 # verify we are in venv
522 if [[ ! $(which python | grep venv) ]]; then
523 echo "Unable to activate venv...Exiting"
527 python $WORKSPACE/releng/utils/lab-reconfiguration/reconfigUcsNet.py -i $ucs_host -u $ucs_user -p $ucs_password -f $WORKSPACE/releng/utils/lab-reconfiguration/foreman.yaml
529 # while undergoing reboot
532 # check to see if slave is back up
535 while [ "$ping_counter" -lt 20 ]; do
536 if [[ $(ping -c 5 172.30.10.72) ]]; then
544 if [ "$ping_flag" -eq 1 ]; then
545 echo "Slave is pingable, now wait 180 seconds for services to start"
548 echo "Slave did not come back up after reboot: please check opnfv-jump-2"
556 echo "--------------------------------------------------------"
560 name: 'foreman-build'
568 # log info to console
569 echo "Starting the build of $INSTALLER. This could take some time..."
570 echo "--------------------------------------------------------"
573 # create the cache directory if it doesn't exist
574 [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY
576 # set OPNFV_ARTIFACT_VERSION
577 export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
580 cd $WORKSPACE/$INSTALLER/ci
581 ./build.sh -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY
583 # list the contents of BUILD_OUTPUT directory
584 ls -al $BUILD_DIRECTORY
586 # save information regarding artifact into file
588 echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
589 echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
590 echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
591 echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
592 echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)"
593 echo "OPNFV_BUILD_URL=$BUILD_URL"
594 ) > $WORKSPACE/opnfv.properties
597 echo "--------------------------------------------------------"
601 name: 'foreman-deploy'
609 # log info to console
610 echo "Starting the deployment using $INSTALLER. This could take some time..."
611 echo "--------------------------------------------------------"
615 sudo $WORKSPACE/common/ci/clean.sh -base_config $WORKSPACE/$INSTALLER/ci/inventory/lf_pod2_ksgen_settings.yml
617 echo "Sleeping for 60 seconds between clean and deploy to allow nodes to power off"
620 # and then initiate deployment
621 sudo $WORKSPACE/$INSTALLER/ci/deploy.sh -base_config $WORKSPACE/$INSTALLER/ci/inventory/lf_pod2_ksgen_settings.yml
624 echo "--------------------------------------------------------"
628 name: 'foreman-deploy-virtual'
636 # log info to console
637 echo "Starting the virtual deployment using $INSTALLER. This could take some time..."
638 echo "--------------------------------------------------------"
641 # cleanup baremetal first (in case baremetal was being used on pod2, remove when moved to isolated Virtual pod)
642 sudo $WORKSPACE/common/ci/clean.sh
644 # initiate virtual deployment
645 sudo $WORKSPACE/$INSTALLER/ci/deploy.sh -virtual
648 echo "--------------------------------------------------------"
652 name: 'foreman-upload-artifact'
660 # log info to console
661 echo "Uploading the $INSTALLER artifact. This could take some time..."
662 echo "--------------------------------------------------------"
665 # source the opnfv.properties to get ARTIFACT_VERSION
666 source $WORKSPACE/opnfv.properties
668 # upload artifact and additional files to google storage
669 gsutil cp $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1
670 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
671 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
674 echo "--------------------------------------------------------"
676 echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
679 name: 'foreman-workspace-cleanup'
687 # delete everything that is in $WORKSPACE
688 /bin/rm -rf $WORKSPACE
690 ########################
692 ########################
694 name: 'foreman-master'
696 - timed: '0 11 * * *'
699 name: 'foreman-stable-arno'
701 - timed: '0 12 * * *'