X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fgenesis%2Fgenesis-foreman.yml;h=d8abe61568abe5c5ec6824472c69637b63241d71;hb=605a32598b14c6069b8021ebe2df29d13869e3e5;hp=c13b50c5b7376c8ae51cf2bf3657a18d6064844e;hpb=75e78f35bbdcbe028eec12975ab19a897cf30dc9;p=releng.git diff --git a/jjb/genesis/genesis-foreman.yml b/jjb/genesis/genesis-foreman.yml index c13b50c5b..d8abe6156 100644 --- a/jjb/genesis/genesis-foreman.yml +++ b/jjb/genesis/genesis-foreman.yml @@ -10,22 +10,30 @@ installer: 'foreman' jobs: - - 'genesis-foreman-verify' - - 'genesis-foreman-merge' + - 'genesis-foreman-verify-{stream}' + - 'genesis-foreman-merge-{stream}' - 'genesis-foreman-daily-{stream}' - - 'genesis-foreman-build' - - 'genesis-foreman-deploy' - + - 'genesis-foreman-build-{stream}' + - 'genesis-foreman-deploy-{stream}' + - 'genesis-foreman-lab-reconfig-{stream}' + - 'genesis-foreman-deploy-runner-{stream}' + - 'genesis-foreman-deploy-virtual-{stream}' + + # stream: branch with - in place of / (eg. stable-arno) + # branch: branch (eg. stable/arno) stream: - master: branch: 'master' - + gs-pathname: '' + - stable-arno: + branch: 'stable/arno' + gs-pathname: '/arno' ######################## # job templates ######################## - job-template: - name: 'genesis-foreman-verify' + name: 'genesis-foreman-verify-{stream}' project-type: freestyle @@ -36,7 +44,7 @@ properties: - throttle: enabled: true - max-total: 2 + max-total: 1 logrotate: daysToKeep: 30 @@ -48,10 +56,10 @@ - project-parameter: project: '{project}' - gerrit-parameter: - branch: 'master' + branch: '{branch}' - foreman-parameter: installer: '{installer}' - + gs-pathname: '{gs-pathname}' scm: - gerrit-trigger-scm: credentials-id: '{ssh-credentials}' @@ -79,7 +87,7 @@ project-pattern: 'genesis' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' file-paths: - compare-type: ANT pattern: 'common/**' @@ -91,7 +99,7 @@ - 'foreman-workspace-cleanup' - job-template: - name: 'genesis-foreman-merge' + name: 'genesis-foreman-merge-{stream}' project-type: freestyle @@ -114,10 +122,10 @@ - project-parameter: project: '{project}' - gerrit-parameter: - branch: 'master' + branch: '{branch}' - foreman-parameter: installer: '{installer}' - + gs-pathname: '' scm: - gerrit-trigger-scm: credentials-id: '{ssh-credentials}' @@ -139,7 +147,7 @@ project-pattern: 'genesis' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/master' + branch-pattern: '**/{branch}' file-paths: - compare-type: ANT pattern: 'common/**' @@ -148,7 +156,7 @@ builders: - 'foreman-build' - - 'foreman-workspace-cleanup' + - 'fuel-workspace-cleanup' - job-template: name: 'genesis-foreman-daily-{stream}' @@ -157,22 +165,23 @@ node: ericsson-build - disabled: true + disabled: false + + triggers: + - 'foreman-{stream}' parameters: - project-parameter: project: '{project}' - foreman-parameter: installer: '{installer}' + gs-pathname: '{gs-pathname}' scm: - git-scm: credentials-id: '{ssh-credentials}' refspec: '' - branch: master - - triggers: - - timed: 'H */6 * * *' + branch: '{branch}' logrotate: daysToKeep: 30 @@ -182,23 +191,32 @@ builders: - trigger-builds: - - project: 'genesis-foreman-build' + - project: 'genesis-foreman-build-{stream}' + git-revision: true + block: true + - trigger-builds: + - project: 'genesis-foreman-lab-reconfig-{stream}' git-revision: true block: true - trigger-builds: - - project: 'genesis-foreman-deploy' + - project: 'genesis-foreman-deploy-{stream}' git-revision: true block: true - trigger-builds: - project: 'functest-opnfv-jump-2' block: true + - trigger-builds: + - project: 'yardstick-opnfv-jump-2' + block: true - job-template: - name: 'genesis-foreman-build' + name: 'genesis-foreman-deploy-runner-{stream}' project-type: freestyle - node: ericsson-build + disabled: false + + node: master logrotate: daysToKeep: 30 @@ -211,19 +229,65 @@ project: '{project}' - foreman-parameter: installer: '{installer}' + gs-pathname: '{gs-pathname}' + - string: + name: GIT_BASE + default: ssh://gerrit.opnfv.org:29418/$PROJECT + description: "Used for overriding the GIT URL coming from parameters macro." + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + properties: + - build-blocker: + use-build-blocker: true + blocking-jobs: + - "genesis-fuel-daily.*" + - "genesis-fuel-deploy-runner-{stream}" + - "genesis-foreman-daily.*" + + builders: + - 'foreman-lab-reconfig' + - trigger-builds: + - project: 'genesis-foreman-deploy-{stream}' + git-revision: true + block: true + +- job-template: + name: 'genesis-foreman-build-{stream}' + + project-type: freestyle + + node: ericsson-build + + logrotate: + daysToKeep: 30 + numToKeep: 10 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + parameters: + - project-parameter: + project: '{project}' + - foreman-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' scm: - git-scm: credentials-id: '{ssh-credentials}' refspec: '' - branch: master + branch: '{branch}' builders: - 'foreman-build' - 'foreman-upload-artifact' + - 'fuel-workspace-cleanup' - job-template: - name: 'genesis-foreman-deploy' + name: 'genesis-foreman-deploy-{stream}' project-type: freestyle @@ -242,16 +306,126 @@ project: '{project}' - foreman-parameter: installer: '{installer}' + gs-pathname: '{gs-pathname}' + - string: + name: GIT_BASE + default: ssh://gerrit.opnfv.org:29418/$PROJECT + description: "Used for overriding the GIT URL coming from parameters macro." scm: - git-scm: credentials-id: '{ssh-credentials}' refspec: '' - branch: master + branch: '{branch}' builders: - 'foreman-deploy' +- job-template: + name: 'genesis-foreman-lab-reconfig-{stream}' + + project-type: freestyle + + disabled: false + + node: master + + logrotate: + daysToKeep: 30 + numToKeep: 10 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + + parameters: + - project-parameter: + project: '{project}' + - foreman-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' + - string: + name: GIT_BASE + default: ssh://gerrit.opnfv.org:29418/$PROJECT + description: "Used for overriding the GIT URL coming from parameters macro." + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + properties: + - build-blocker: + use-build-blocker: true + blocking-jobs: + - "genesis-fuel-daily.*" + + builders: + - 'foreman-lab-reconfig' + +- job-template: + name: 'genesis-foreman-deploy-virtual-{stream}' + + project-type: freestyle + + node: opnfv-jump-1 + + logrotate: + daysToKeep: 30 + numToKeep: 10 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - foreman-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' + - string: + name: GIT_BASE + default: ssh://gerrit.opnfv.org:29418/$PROJECT + description: "Used for overriding the GIT URL coming from parameters macro." + 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: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'common/**' + - compare-type: ANT + pattern: '{installer}/**' + dependency-jobs: 'genesis-foreman-verify-{stream}' + + + builders: + - 'foreman-deploy-virtual' + ######################## # parameter macros ######################## @@ -268,7 +442,7 @@ description: "Directory where the build artifact will be located upon the completion of the build." - string: name: CACHE_DIRECTORY - default: $HOME/opnfv/cache/genesis-$INSTALLER + default: $HOME/opnfv/cache/genesis-$INSTALLER{gs-pathname} description: "Directory where the cache to be used during the build is located." - string: name: GIT_BASE @@ -276,12 +450,89 @@ 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 + default: artifacts.opnfv.org/$PROJECT/$INSTALLER{gs-pathname} description: "URL to Google Storage." ######################## # builder macros ######################## +- builder: + name: 'foreman-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/foreman.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 90 seconds for services to start" + sleep 90 + 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!" + - builder: name: 'foreman-build' builders: @@ -338,7 +589,7 @@ echo # cleanup first - sudo $WORKSPACE/$INSTALLER/ci/clean.sh -base_config $WORKSPACE/$INSTALLER/ci/inventory/lf_pod2_ksgen_settings.yml + sudo $WORKSPACE/common/ci/clean.sh -base_config $WORKSPACE/$INSTALLER/ci/inventory/lf_pod2_ksgen_settings.yml # and then initiate deployment sudo $WORKSPACE/$INSTALLER/ci/deploy.sh -base_config $WORKSPACE/$INSTALLER/ci/inventory/lf_pod2_ksgen_settings.yml @@ -347,6 +598,30 @@ echo "--------------------------------------------------------" echo "Done!" +- builder: + name: 'foreman-deploy-virtual' + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + + # log info to console + echo "Starting the virtual deployment using $INSTALLER. This could take some time..." + echo "--------------------------------------------------------" + echo + + # cleanup baremetal first (in case baremetal was being used on pod2, remove when moved to isolated Virtual pod) + sudo $WORKSPACE/common/ci/clean.sh + + # initiate virtual deployment + sudo $WORKSPACE/$INSTALLER/ci/deploy.sh -virtual + + echo + echo "--------------------------------------------------------" + echo "Done!" + - builder: name: 'foreman-upload-artifact' builders: @@ -372,6 +647,7 @@ echo echo "--------------------------------------------------------" echo "Done!" + echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso" - builder: name: 'foreman-workspace-cleanup' @@ -385,3 +661,15 @@ # delete everything that is in $WORKSPACE /bin/rm -rf $WORKSPACE +######################## +# trigger macros +######################## +- trigger: + name: 'foreman-master' + triggers: + - pollscm: '0 21 * * *' + +- trigger: + name: 'foreman-stable-arno' + triggers: + - pollscm: '0 1 * * *'