summaryrefslogtreecommitdiffstats
path: root/jjb/xci
diff options
context:
space:
mode:
authorFatih Degirmenci <fdegir@gmail.com>2017-12-19 13:43:01 +0100
committerFatih Degirmenci <fdegir@gmail.com>2018-01-10 09:31:32 +0000
commit3574240dc0f144cf43a7dd6cf923c6885d0f62aa (patch)
treec1c5e1da4d4bb8df766f47ebbeabfb5c3d02ee7e /jjb/xci
parent887a414ea4c37137f051e2be1eb5698af7b63486 (diff)
RFC: Set the basic structure for post merge jobs
This change proposes structure for post-merge jobs for the scenarios that are onboarded to XCI. The idea with these jobs is to verify the sanity of impacted scenario to find out if the version that is tested should be promoted to the next level in XCI; daily on baremetal. If it succeeds, the metadata regarding the scenario needs to be stored somewhere (artifact repo, etc.) so daily jobs can poll that location to see if there is any scenario that is worth testing on baremetal. If it fails, the scenario could be demoted instead which still requires further discussion and thinking. We might perhaps leave the metadata of the version of the scenario with previous sha as the candidate for testing instead of demoting it since we need to have working version of the scenarios at all times. Change-Id: I85d7176b16d0d6da45cd2462b0cdb990485b6b0d Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
Diffstat (limited to 'jjb/xci')
-rw-r--r--jjb/xci/xci-merge-jobs.yml252
1 files changed, 252 insertions, 0 deletions
diff --git a/jjb/xci/xci-merge-jobs.yml b/jjb/xci/xci-merge-jobs.yml
new file mode 100644
index 000000000..d96956e4a
--- /dev/null
+++ b/jjb/xci/xci-merge-jobs.yml
@@ -0,0 +1,252 @@
+---
+- project:
+ name: 'opnfv-xci-merge'
+
+ # -------------------------------
+ # branches
+ # -------------------------------
+ stream:
+ - master:
+ branch: '{stream}'
+ # -------------------------------
+ # distros
+ # -------------------------------
+ distro:
+ - ubuntu:
+ disabled: false
+ - centos:
+ disabled: false
+ - opensuse:
+ disabled: false
+ # -------------------------------
+ # type
+ # -------------------------------
+ type:
+ - virtual
+ # -------------------------------
+ # patch verification phases
+ # -------------------------------
+ phase:
+ - 'deploy'
+ - 'healthcheck'
+ - 'promote'
+ # -------------------------------
+ # scenarios
+ # -------------------------------
+ scenario:
+ - 'os-odl-sfc':
+ project: sfc
+ # -------------------------------
+ # jobs
+ # -------------------------------
+ jobs:
+ - 'xci-{scenario}-{type}-{distro}-merge-{stream}'
+ - 'xci-{phase}-{type}-{distro}-merge-{stream}'
+# -------------------------------
+# job templates
+# -------------------------------
+- job-template:
+ name: 'xci-{scenario}-{type}-{distro}-merge-{stream}'
+
+ project-type: multijob
+
+ disabled: '{obj:disabled}'
+
+ concurrent: true
+
+ properties:
+ - logrotate-default
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'xci-verify-{distro}-.*'
+ - 'bifrost-verify-{distro}-.*'
+ - 'bifrost-periodic-{distro}-.*'
+ - 'xci-osa-verify-{distro}-.*'
+ - 'xci-osa-periodic-{distro}-.*'
+ - 'xci-(os|k8s).*?-virtual-{distro}-.*'
+ block-level: 'NODE'
+ - throttle:
+ max-per-node: 2
+ max-total: 10
+ categories:
+ - xci-verify-virtual
+ option: category
+
+ wrappers:
+ - ssh-agent-wrapper
+ - build-timeout:
+ timeout: 240
+ - fix-workspace-permissions
+
+ scm:
+ - git-scm
+
+ 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: '{obj:project}'
+ 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: '{obj:project}'
+ branch: '{branch}'
+ - label:
+ name: SLAVE_LABEL
+ default: 'xci-virtual'
+ - 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:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: deploy
+ condition: SUCCESSFUL
+ projects:
+ - name: 'xci-deploy-{type}-{distro}-merge-{stream}'
+ current-parameters: true
+ predefined-parameters: |
+ PROJECT=$PROJECT
+ DISTRO={distro}
+ DEPLOY_SCENARIO={scenario}
+ CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
+ 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: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: healthcheck
+ condition: SUCCESSFUL
+ projects:
+ - name: 'xci-healthcheck-{type}-{distro}-merge-{stream}'
+ current-parameters: true
+ predefined-parameters: |
+ PROJECT=$PROJECT
+ DISTRO={distro}
+ DEPLOY_SCENARIO={scenario}
+ CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
+ FUNCTEST_MODE=tier
+ FUNCTEST_TIER=healthcheck
+ 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: NEVER
+ abort-all-job: true
+
+- job-template:
+ name: 'xci-{phase}-{type}-{distro}-merge-{stream}'
+
+ disabled: false
+
+ concurrent: true
+
+ 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: 'releng-xci'
+ - string:
+ name: DISTRO
+ default: 'ubuntu'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-nosdn-nofeature-noha'
+ - 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: INSTALLER_TYPE
+ default: 'osa'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+
+ wrappers:
+ - ssh-agent-wrapper
+ - build-timeout:
+ timeout: 240
+ - fix-workspace-permissions
+
+ scm:
+ - git-scm
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - 'xci-merge-{phase}-macro'
+
+# -------------------------------
+# builder macros
+# -------------------------------
+- builder:
+ name: 'xci-merge-deploy-macro'
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ echo "Hello World!"
+
+- builder:
+ name: 'xci-merge-healthcheck-macro'
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ echo "Hello World!"
+
+- builder:
+ name: 'xci-merge-promote-macro'
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ echo "Hello World!"