--- - project: name: 'opnfv-xci-merge' project: releng-xci # ------------------------------- # branches # ------------------------------- stream: - master: branch: '{stream}' disabled: false # ------------------------------- # distros # ------------------------------- distro: - ubuntu: disabled: false kill-phase-on: FAILURE abort-all-job: true - centos: disabled: true kill-phase-on: NEVER abort-all-job: false - opensuse: disabled: false kill-phase-on: FAILURE abort-all-job: true # ------------------------------- # postmerge promotion phases # ------------------------------- phase: - 'deploy' - 'healthcheck' # ------------------------------- # jobs # ------------------------------- jobs: - 'xci-merge-virtual-{stream}' - 'xci-merge-promote-virtual-{stream}' - 'xci-merge-{distro}-virtual-{stream}' - 'xci-merge-{distro}-{phase}-virtual-{stream}' # ------------------------------- # job templates # ------------------------------- - job-template: name: 'xci-merge-virtual-{stream}' project-type: multijob disabled: '{obj:disabled}' concurrent: false properties: - logrotate-default wrappers: - ssh-agent-wrapper - build-timeout: timeout: 240 - fix-workspace-permissions scm: - git-scm-gerrit triggers: - gerrit: server-name: 'gerrit.opnfv.org' trigger-on: - change-merged-event - comment-added-contains-event: comment-contains-value: 'remerge' projects: - project-compare-type: 'ANT' project-pattern: 'releng-xci' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' disable-strict-forbidden-file-verification: 'false' forbidden-file-paths: - compare-type: ANT pattern: 'xci/scripts/vm/**' - compare-type: ANT pattern: 'docs/**' - compare-type: ANT pattern: 'prototypes/**' - compare-type: ANT pattern: 'upstream/**' - compare-type: ANT pattern: 'INFO.yaml' - project-compare-type: 'REG_EXP' project-pattern: 'sfc|sdnvpn|releng-xci-scenarios' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' disable-strict-forbidden-file-verification: 'true' file-paths: - compare-type: ANT pattern: 'scenarios/**' readable-message: true custom-url: '* $JOB_NAME $BUILD_URL' parameters: - project-parameter: project: $GERRIT_PROJECT branch: '{branch}' - label: name: SLAVE_LABEL default: 'xci-virtual' - string: name: CI_LOOP default: 'merge' - string: name: FUNCTEST_MODE default: 'tier' - string: name: FUNCTEST_SUITE_NAME default: 'healthcheck' - string: name: DISTRO default: 'all' - string: name: CLEAN_DIB_IMAGES default: 'true' - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' builders: - 'xci-merge-set-scenario-macro' - inject: properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - description-setter: description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - multijob: name: deploy and test condition: SUCCESSFUL projects: - name: 'xci-merge-opensuse-virtual-{stream}' current-parameters: false predefined-parameters: | DISTRO=opensuse CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES GERRIT_PROJECT=$GERRIT_PROJECT GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE CI_LOOP=$CI_LOOP FUNCTEST_MODE=$FUNCTEST_MODE FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME node-parameters: false kill-phase-on: FAILURE abort-all-job: true - name: 'xci-merge-ubuntu-virtual-{stream}' current-parameters: false predefined-parameters: | DISTRO=ubuntu CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES GERRIT_PROJECT=$GERRIT_PROJECT GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE CI_LOOP=$CI_LOOP FUNCTEST_MODE=$FUNCTEST_MODE FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME node-parameters: false kill-phase-on: FAILURE abort-all-job: true - name: 'xci-merge-centos-virtual-{stream}' current-parameters: false predefined-parameters: | DISTRO=centos CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES GERRIT_PROJECT=$GERRIT_PROJECT GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE CI_LOOP=$CI_LOOP FUNCTEST_MODE=$FUNCTEST_MODE FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME node-parameters: false kill-phase-on: NEVER abort-all-job: false - inject: properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - multijob: name: promote condition: SUCCESSFUL projects: - name: 'xci-merge-promote-virtual-{stream}' current-parameters: true predefined-parameters: | GERRIT_PROJECT=$GERRIT_PROJECT GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE CI_LOOP=$CI_LOOP FUNCTEST_MODE=$FUNCTEST_MODE FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME node-parameters: true kill-phase-on: NEVER abort-all-job: true - job-template: name: 'xci-merge-{distro}-virtual-{stream}' project-type: multijob disabled: '{obj:disabled}' concurrent: false properties: - logrotate-default - build-blocker: use-build-blocker: true blocking-jobs: - 'xci-verify-{distro}-.*' - 'xci-merge-{distro}-.*' - 'openstack-bifrost-verify-{distro}-.*' - 'xci-osa-verify-{distro}-.*' - 'xci-osa-periodic-{distro}-.*' block-level: 'NODE' - throttle: max-per-node: 1 max-total: 3 categories: - xci-verify-virtual option: category wrappers: - ssh-agent-wrapper - build-timeout: timeout: 240 - fix-workspace-permissions scm: - git-scm-gerrit parameters: - project-parameter: project: $GERRIT_PROJECT branch: '{branch}' - label: name: SLAVE_LABEL default: 'xci-virtual' - string: name: CI_LOOP default: 'merge' - string: name: FUNCTEST_MODE default: 'tier' - string: name: FUNCTEST_SUITE_NAME default: 'healthcheck' - string: name: DISTRO default: '{distro}' - string: name: CLEAN_DIB_IMAGES default: 'true' - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' builders: - 'xci-merge-set-scenario-macro' - inject: properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - description-setter: description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - multijob: name: deploy condition: SUCCESSFUL projects: - name: 'xci-merge-{distro}-deploy-virtual-{stream}' current-parameters: true predefined-parameters: | DISTRO={distro} CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES GERRIT_PROJECT=$GERRIT_PROJECT GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE node-parameters: true kill-phase-on: '{kill-phase-on}' abort-all-job: '{abort-all-job}' - multijob: name: healthcheck condition: SUCCESSFUL projects: - name: 'xci-merge-{distro}-healthcheck-virtual-{stream}' current-parameters: true predefined-parameters: | DISTRO={distro} CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES GERRIT_PROJECT=$GERRIT_PROJECT GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE CI_LOOP=$CI_LOOP FUNCTEST_MODE=$FUNCTEST_MODE FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME node-parameters: true kill-phase-on: '{kill-phase-on}' abort-all-job: '{abort-all-job}' publishers: - postbuildscript: builders: - role: BOTH build-on: - ABORTED - FAILURE - NOT_BUILT - SUCCESS - UNSTABLE build-steps: - shell: !include-raw: ./xci-cleanup.sh mark-unstable-if-failed: true - job-template: name: 'xci-merge-{distro}-{phase}-virtual-{stream}' disabled: false concurrent: false properties: - logrotate-default - build-blocker: use-build-blocker: true blocking-jobs: - '.*-bifrost-verify-.*' - '.*-bifrost-periodic-.*' - 'osa-verify-.*' - 'osa-periodic-.*' block-level: 'NODE' parameters: - string: name: PROJECT default: $GERRIT_PROJECT - string: name: DISTRO default: 'ubuntu' - string: name: CI_LOOP default: 'merge' - string: name: FUNCTEST_MODE default: 'tier' - string: name: FUNCTEST_SUITE_NAME default: 'healthcheck' - string: name: XCI_FLAVOR default: 'mini' - string: name: CLEAN_DIB_IMAGES default: 'true' - string: name: OPNFV_RELENG_DEV_PATH default: $WORKSPACE/ - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' wrappers: - inject: properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - ssh-agent-wrapper - build-timeout: timeout: 240 - fix-workspace-permissions scm: - git-scm-gerrit builders: - description-setter: description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - 'xci-merge-{phase}-macro' - job-template: name: 'xci-merge-promote-virtual-{stream}' disabled: false concurrent: false properties: - logrotate-default parameters: - string: name: PROJECT default: $GERRIT_PROJECT - string: name: CI_LOOP default: 'merge' - string: name: FUNCTEST_MODE default: 'tier' - string: name: FUNCTEST_SUITE_NAME default: 'healthcheck' - string: name: DISTRO default: 'all' - string: name: OPNFV_RELENG_DEV_PATH default: $WORKSPACE/ - string: name: LOCAL_PROMOTION_METADATA_FILE default: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - string: name: REMOTE_PROMOTION_METADATA_FILE default: "gs://artifacts.opnfv.org/xci/pipeline/merge/$DEPLOY_SCENARIO.properties" - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' wrappers: - inject: properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - ssh-agent-wrapper - build-timeout: timeout: 240 - fix-workspace-permissions builders: - description-setter: description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - 'xci-merge-promote-macro' # ------------------------------- # builder macros # ------------------------------- - builder: name: 'xci-merge-set-scenario-macro' builders: - shell: !include-raw: ./xci-set-scenario.sh - builder: name: 'xci-merge-deploy-macro' builders: - shell: !include-raw: ./xci-start-new-vm.sh - shell: !include-raw: ./xci-start-deployment.sh - builder: name: 'xci-merge-healthcheck-macro' builders: - shell: !include-raw: ./xci-run-functest.sh - builder: name: 'xci-merge-promote-macro' builders: - shell: !include-raw: ./xci-promote.sh