diff options
Diffstat (limited to 'jjb/doctor/doctor.yaml')
-rw-r--r-- | jjb/doctor/doctor.yaml | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/jjb/doctor/doctor.yaml b/jjb/doctor/doctor.yaml new file mode 100644 index 000000000..1c12563a8 --- /dev/null +++ b/jjb/doctor/doctor.yaml @@ -0,0 +1,269 @@ +--- +- 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': + gs-pathname: '{gs-pathname}' + inspector: '{inspector}' + 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 |