summaryrefslogtreecommitdiffstats
path: root/jjb/doctor/doctor.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'jjb/doctor/doctor.yaml')
-rw-r--r--jjb/doctor/doctor.yaml267
1 files changed, 267 insertions, 0 deletions
diff --git a/jjb/doctor/doctor.yaml b/jjb/doctor/doctor.yaml
new file mode 100644
index 000000000..3985356c1
--- /dev/null
+++ b/jjb/doctor/doctor.yaml
@@ -0,0 +1,267 @@
+---
+- project:
+ name: doctor
+
+ project: '{name}'
+
+ stream:
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ docker-tag: 'latest'
+ disabled: false
+ - fraser: &fraser
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ docker-tag: 'stable'
+ disabled: false
+
+ # feature projects' tests are not triggered by functest
+ # doctor verify Pods need to deploy with these scenario
+ installer:
+ - 'apex':
+ scenario: 'os-nosdn-kvm-ha'
+ - 'fuel':
+ scenario: 'os-nosdn-ovs-ha'
+ - 'daisy':
+ scenario: 'os-nosdn-ovs_dpdk-noha'
+
+ arch:
+ - 'x86_64'
+ - 'aarch64'
+
+ inspector:
+ - 'sample'
+ - 'congress'
+
+ exclude:
+ - installer: 'apex'
+ arch: 'aarch64'
+ - installer: 'daisy'
+ arch: 'aarch64'
+
+ jobs:
+ - 'doctor-verify-{inspector}-{stream}'
+ - 'doctor-verify-{installer}-{inspector}-{arch}-{stream}'
+
+- job-template:
+ name: 'doctor-verify-{inspector}-{stream}'
+ disabled: '{obj:disabled}'
+ project-type: 'multijob'
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'doctor-slave-parameter'
+ scm:
+ - git-scm-gerrit
+ triggers:
+ - 'doctor-verify':
+ project: '{project}'
+ branch: '{branch}'
+ files: 'doctor_tests/**'
+
+ builders:
+ - shell: |
+ #!/bin/bash
+ # we do nothing here as the main stuff will be done
+ # in phase jobs
+ echo "Triggering phase jobs!"
+ - multijob:
+ name: 'doctor-verify'
+ execution-type: PARALLEL
+ projects:
+ - name: 'doctor-verify-apex-{inspector}-x86_64-{stream}'
+ predefined-parameters: |
+ PROJECT=$PROJECT
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ kill-phase-on: FAILURE
+ git-revision: true
+ - name: 'doctor-verify-fuel-{inspector}-x86_64-{stream}'
+ predefined-parameters: |
+ PROJECT=$PROJECT
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ kill-phase-on: FAILURE
+ git-revision: true
+ - name: 'doctor-verify-fuel-{inspector}-aarch64-{stream}'
+ predefined-parameters: |
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ kill-phase-on: FAILURE
+ git-revision: true
+ - name: 'doctor-verify-daisy-{inspector}-x86_64-{stream}'
+ predefined-parameters: |
+ PROJECT=$PROJECT
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ kill-phase-on: FAILURE
+ git-revision: true
+
+- job-template:
+ name: 'doctor-verify-{installer}-{inspector}-{arch}-{stream}'
+ disabled: '{obj:disabled}'
+ node: 'doctor-{installer}-{arch}'
+ wrappers:
+ - ssh-agent-wrapper
+ - build-timeout:
+ timeout: 30
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{installer}-defaults'
+ - 'doctor-slave-parameter'
+ - 'doctor-parameter':
+ docker-tag: '{docker-tag}'
+ scenario: '{scenario}'
+ - 'doctor-functest-parameter'
+ scm:
+ - git-scm-gerrit
+ builders:
+ - 'doctor-verify-installer-inspector-builders-macro'
+ publishers:
+ - 'doctor-verify-publishers-macro'
+
+
+# -------------------------------
+# parameter macros
+# -------------------------------
+- parameter:
+ name: 'doctor-parameter'
+ parameters:
+ - string:
+ name: OS_CREDS
+ default: /home/jenkins/openstack.creds
+ description: 'OpenStack credentials'
+ - string:
+ name: DOCKER_TAG
+ default: '{docker-tag}'
+ description: 'Tag to pull docker image'
+ - string:
+ name: CLEAN_DOCKER_IMAGES
+ default: 'false'
+ description: 'Remove downloaded docker images (opnfv/functest:*)'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: '{scenario}'
+ description: 'Scenario to deploy and test'
+
+- parameter:
+ name: 'doctor-functest-parameter'
+ parameters:
+ # functest-suite-parameter
+ - string:
+ name: FUNCTEST_MODE
+ default: 'testcase'
+ - string:
+ name: FUNCTEST_SUITE_NAME
+ default: 'doctor-notification'
+ - string:
+ name: TESTCASE_OPTIONS
+ # yamllint disable rule:line-length
+ default: '-e INSPECTOR_TYPE={inspector} -v $WORKSPACE:/home/opnfv/repos/doctor'
+ # yamllint enable rule:line-length
+ description: 'Addtional parameters specific to test case(s)'
+ # functest-parameter
+ - string:
+ name: GS_PATHNAME
+ default: '{gs-pathname}'
+ # yamllint disable rule:line-length
+ description: "Version directory where the opnfv documents will be stored in gs repository"
+ # yamllint enable rule:line-length
+ - string:
+ name: FUNCTEST_REPO_DIR
+ default: "/home/opnfv/repos/functest"
+ description: "Directory where the Functest repository is cloned"
+ - string:
+ name: PUSH_RESULTS_TO_DB
+ default: "true"
+ description: "Push the results of all the tests to the resultDB"
+ - string:
+ name: CI_DEBUG
+ default: 'true'
+ description: "Show debug output information"
+# -------------------------------
+# builder macros
+# -------------------------------
+
+- builder:
+ name: 'doctor-verify-installer-inspector-builders-macro'
+ builders:
+ - 'clean-workspace-log'
+ # yamllint disable rule:line-length
+ - shell: |
+ # NOTE: Create symbolic link, so that we can archive file outside
+ # of $WORKSPACE .
+ # NOTE: We are printing all logs under 'tests/' during test run,
+ # so this symbolic link should not be in 'tests/'. Otherwise,
+ # we'll have the same log twice in jenkins console log.
+ ln -sfn $HOME/opnfv/functest/results/{stream} functest_results
+ # NOTE: Get functest script in $WORKSPACE. This functest script is
+ # needed to perform VM image download in set-functest-env.sh
+ # from E release cycle.
+ mkdir -p functest/ci
+ wget https://git.opnfv.org/functest/plain/functest/ci/download_images.sh -O functest/ci/download_images.sh
+ - 'functest-suite-builder'
+ - shell: |
+ functest_log="$HOME/opnfv/functest/results/{stream}/$FUNCTEST_SUITE_NAME.log"
+ # NOTE: checking the test result, as the previous job could return
+ # 0 regardless the result of doctor test scenario.
+ grep -e 'doctor test successfully' $functest_log || exit 1
+ # yamllint enable rule:line-length
+
+# -------------------------------
+# publisher macros
+# -------------------------------
+- publisher:
+ name: 'doctor-verify-publishers-macro'
+ publishers:
+ - archive:
+ artifacts: 'doctor_tests/*.log'
+ - archive:
+ artifacts: 'functest_results/$FUNCTEST_SUITE_NAME.log'
+ - email-jenkins-admins-on-failure
+
+
+#####################################
+# trigger macros
+#####################################
+- trigger:
+ name: 'doctor-verify'
+ triggers:
+ - gerrit:
+ server-name: 'gerrit.opnfv.org'
+ 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: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ file-paths:
+ - compare-type: ANT
+ pattern: '{files}'
+ skip-vote:
+ successful: true
+ failed: true
+ unstable: true
+ notbuilt: true