--- - project: name: doctor project: '{name}' stream: - master: branch: '{stream}' gs-pathname: '' docker-tag: 'latest' disabled: false - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' docker-tag: 'stable' disabled: false installer: - apex: slave-label: 'doctor-apex-verify' - fuel: slave-label: 'doctor-fuel-verify' # - joid: # slave-label: 'ool-virtual3' # pod: 'ool-virtual3' phase: - 'build-x86_64': slave-label: 'opnfv-build-ubuntu' - 'build-aarch64': slave-label: 'opnfv-build-ubuntu-arm' inspector: - 'sample' - 'congress' task: - verify: auto-trigger-name: 'doctor-verify' is-python: false - python-verify: auto-trigger-name: 'doctor-verify' is-python: true exclude: - installer: 'apex' phase: 'build-aarch64' jobs: - 'doctor-verify-{stream}' - 'doctor-verify-unit-test-{stream}' - 'doctor-{task}-{inspector}-{stream}' - 'doctor-{task}-{installer}-{inspector}-{phase}-{stream}' - job-template: name: 'doctor-verify-{stream}' disabled: '{obj:disabled}' project-type: 'multijob' parameters: - project-parameter: project: '{project}' branch: '{branch}' - 'opnfv-build-ubuntu-defaults' scm: - git-scm-gerrit 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: '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-build-and-unittest' execution-type: PARALLEL projects: - name: 'doctor-verify-unit-test-{stream}' current-parameters: false predefined-parameters: | GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE git-revision: true node-parameters: false kill-phase-on: FAILURE abort-all-job: false - job-template: name: 'doctor-verify-unit-test-{stream}' disabled: '{obj:disabled}' wrappers: - ssh-agent-wrapper - build-timeout: timeout: 60 parameters: - project-parameter: project: '{project}' branch: '{branch}' - 'opnfv-build-ubuntu-defaults' scm: - git-scm-gerrit builders: - 'doctor-verify-unit-test-builders-macro' publishers: - 'doctor-verify-unit-test-publishers-macro' - job-template: name: 'doctor-{task}-{inspector}-{stream}' disabled: '{obj:disabled}' project-type: 'multijob' parameters: - project-parameter: project: '{project}' branch: '{branch}' - string: name: OS_CREDS default: /home/jenkins/openstack.creds description: 'OpenStack credentials' - 'opnfv-build-ubuntu-defaults' - 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: 'os-nosdn-nofeature-ha' description: 'Scenario to deploy and test' # 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} -e PYTHON_ENABLE={is-python} -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" scm: - git-scm-gerrit triggers: - '{auto-trigger-name}': 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-apex-inspector' execution-type: PARALLEL projects: - name: 'doctor-{task}-apex-{inspector}-build-x86_64-{stream}' current-parameters: false git-revision: true node-parameters: false kill-phase-on: FAILURE abort-all-job: false - multijob: name: 'doctor-verify-fuel-inspector' execution-type: PARALLEL projects: - name: 'doctor-{task}-fuel-{inspector}-build-x86_64-{stream}' current-parameters: false git-revision: true node-parameters: false kill-phase-on: FAILURE abort-all-job: false - multijob: name: 'doctor-verify-fuel-inspector' execution-type: PARALLEL projects: - name: 'doctor-{task}-fuel-{inspector}-build-aarch64-{stream}' current-parameters: false git-revision: true node-parameters: false kill-phase-on: FAILURE abort-all-job: false - job-template: name: 'doctor-{task}-{installer}-{inspector}-{phase}-{stream}' disabled: '{obj:disabled}' node: '{slave-label}' wrappers: - ssh-agent-wrapper - build-timeout: timeout: 30 parameters: - project-parameter: project: '{project}' branch: '{branch}' - '{installer}-defaults' - '{slave-label}-defaults' scm: - git-scm-gerrit builders: - 'doctor-verify-installer-inspector-builders-macro' publishers: - 'doctor-verify-publishers-macro' # ------------------------------- # builder macros # ------------------------------- - builder: name: 'doctor-verify-unit-test-builders-macro' builders: - shell: "[ -e tests/run.sh ] && bash -n ./tests/run.sh" - 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 - publisher: name: 'doctor-verify-unit-test-publishers-macro' publishers: - 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