The '{is-skip-vote}' is always 'true' for the jobs
[releng.git] / jjb / doctor / doctor.yml
index 6a04c5f..95cb476 100644 (file)
     #     slave-label: 'ool-virtual3'
     #     pod: 'ool-virtual3'
 
+    phase:
+      - 'build-x86_64':
+          slave-label: 'doctor-{installer}-verify'
+      - 'build-aarch64':
+          slave-label: 'doctor-{installer}-{phase}-verify'
+
     inspector:
       - 'sample'
       - 'congress'
     task:
       - verify:
           auto-trigger-name: 'doctor-verify'
-          is-python: false
-      - python-verify:
-          auto-trigger-name: 'doctor-verify'
-          is-python: true
 
-    pod:
-      - armband-baremetal:
-          slave-label: '{pod}'
-      - armband-virtual:
-          slave-label: '{pod}'
+    exclude:
+      - installer: 'apex'
+        phase: 'build-aarch64'
 
     jobs:
       - 'doctor-verify-{stream}'
-      - 'doctor-{task}-{installer}-{inspector}-{pod}-{stream}'
-      - 'doctor-{task}-{installer}-{inspector}-{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}'
                   pattern: 'doctor_tests/**'
 
     builders:
-      - shell: "[ -e tests/run.sh ] && bash -n ./tests/run.sh"
+      - 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-{task}-{installer}-{inspector}-{pod}-{stream}'
-
-    node: '{slave-label}'
-
+    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
-
-
-    triggers:
-      - '{auto-trigger-name}':
-          project: '{project}'
-          branch: '{branch}'
-          files: 'doctor_tests/**'
-
     builders:
-      - shell: "[ -e tests/run.sh ] && bash -n ./tests/run.sh"
-
+      - 'doctor-verify-unit-test-builders-macro'
+    publishers:
+      - 'doctor-verify-unit-test-publishers-macro'
 
 - job-template:
-    name: 'doctor-{task}-{installer}-{inspector}-{stream}'
+    name: 'doctor-{task}-{inspector}-{stream}'
 
-    node: '{slave-label}'
+    disabled: '{obj:disabled}'
+
+    project-type: 'multijob'
 
     parameters:
       - project-parameter:
           project: '{project}'
           branch: '{branch}'
+      - 'opnfv-build-ubuntu-defaults'
       - string:
           name: OS_CREDS
           default: /home/jenkins/openstack.creds
           description: 'OpenStack credentials'
-      - '{slave-label}-defaults'
-      - '{installer}-defaults'
       - string:
           name: DOCKER_TAG
           default: '{docker-tag}'
           default: 'doctor-notification'
       - string:
           name: TESTCASE_OPTIONS
-          default: '-e INSPECTOR_TYPE={inspector} -e PYTHON_ENABLE={is-python} -v $WORKSPACE:/home/opnfv/repos/doctor'
+          # 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"
           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
+              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
+      - multijob:
+          name: 'doctor-verify-fuel-inspector'
+          execution-type: PARALLEL
+          projects:
+            - name: 'doctor-{task}-fuel-{inspector}-build-x86_64-{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
+      - multijob:
+          name: 'doctor-verify-fuel-inspector'
+          execution-type: PARALLEL
+          projects:
+            - name: 'doctor-{task}-fuel-{inspector}-build-aarch64-{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-{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: "tox -e pep8"
+
+- 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: 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'
           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
+      - archive:
+          artifacts: '.tox/'
+
 
 #####################################
 # trigger macros