multiarch: Modify doctor x86_64, aarch64 verify jobs 67/41067/13
authorDelia Popescu <delia.popescu@enea.com>
Tue, 5 Sep 2017 12:50:21 +0000 (14:50 +0200)
committerDelia Popescu <delia.popescu@enea.com>
Tue, 31 Oct 2017 13:56:17 +0000 (15:56 +0200)
Modify doctor verify jobs to run for each architecture.
JIRA: https://jira.opnfv.org/browse/ARMBAND-305

Change-Id: Ia25c3751ac18233290c9e98e74bc21d9dc35f27c
Signed-off-by: Catalina Focsa <catalina.focsa@enea.com>
Signed-off-by: Delia Popescu <delia.popescu@enea.com>
jjb/doctor/doctor.yml

index 6a04c5f..e28f744 100644 (file)
     #     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'
           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-verify-unit-test-{stream}'
       - 'doctor-{task}-{installer}-{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}'
 
+    disabled: '{obj:disabled}'
+
+    project-type: 'multijob'
+
     node: '{slave-label}'
 
     parameters:
           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"
           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-installer-inspector'
+          execution-type: PARALLEL
+          projects:
+            - name: 'doctor-{task}-{installer}-{inspector}-build-x86_64-{stream}'
+              current-parameters: false
+              git-revision: true
+              node-parameters: false
+              kill-phase-on: FAILURE
+              abort-all-job: false
+            - name: 'doctor-{task}-{installer}-{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}'
+    wrappers:
+      - ssh-agent-wrapper
+      - build-timeout:
+          timeout: 30
+    parameters:
+      - project-parameter:
+          project: '{project}'
+          branch: '{branch}'
+      - '{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: 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