---
- project:
name: 'opnfv-xci-merge'
project: releng-xci
# -------------------------------
# branches
# -------------------------------
stream:
- master:
branch: '{stream}'
disabled: true
# -------------------------------
# distros
# -------------------------------
distro:
- ubuntu:
disabled: true
kill-phase-on: FAILURE
abort-all-job: true
- centos:
disabled: true
kill-phase-on: NEVER
abort-all-job: false
- opensuse:
disabled: true
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'
all-nodes: false
node-eligibility: 'ignore-offline'
- 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}-.*'
- 'xci-os.*'
- 'xci-k8.*'
- 'openstack-bifrost-verify-{distro}-.*'
- 'xci-osa-verify-{distro}-.*'
- 'xci-osa-periodic-{distro}-.*'
blocking-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'
all-nodes: false
node-eligibility: 'ignore-offline'
- string:
name: CI_LOOP
default: 'merge'
- string:
name: FUNCTEST_VERSION
default: 'hunter'
- 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
FUNCTEST_VERSION=$FUNCTEST_VERSION
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}'
- 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_VERSION=$FUNCTEST_VERSION
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-.*'
blocking-level: 'NODE'
parameters:
- string:
name: PROJECT
default: $GERRIT_PROJECT
- string:
name: DISTRO
default: 'ubuntu'
- string:
name: CI_LOOP
default: 'merge'
- string:
name: FUNCTEST_VERSION
default: 'hunter'
- 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