use `bash` to parse shell
[releng.git] / jjb / doctor / doctor.yaml
index 1c12563..c66624c 100644 (file)
@@ -3,28 +3,24 @@
     name: doctor
 
     project: '{name}'
+    project-name: '{name}'
+    project-pattern: '{project}'
 
     stream:
       - master:
           branch: '{stream}'
           gs-pathname: ''
-          docker-tag: 'latest'
           disabled: false
-      - fraser: &fraser
+      - hunter:
           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'
+          scenario: 'os-nosdn-nofeature-noha'
       - 'fuel':
-          scenario: 'os-nosdn-ovs-ha'
-      - 'daisy':
-          scenario: 'os-nosdn-ovs_dpdk-noha'
+          scenario: 'os-nosdn-nofeature-noha'
 
     arch:
       - 'x86_64'
     exclude:
       - installer: 'apex'
         arch: 'aarch64'
-      - installer: 'daisy'
-        arch: 'aarch64'
 
     jobs:
-      - 'doctor-verify-{inspector}-{stream}'
-      - 'doctor-verify-{installer}-{inspector}-{arch}-{stream}'
+      - 'doctor-verify-{stream}'
+      - 'doctor-verify-fault_management-{installer}-{inspector}-{arch}-{stream}'
+      - 'doctor-verify-maintenance-{installer}-{inspector}-{arch}-{stream}'
+      - 'doctor-verify-all-{installer}-{inspector}-{arch}-{stream}'
 
 - job-template:
-    name: 'doctor-verify-{inspector}-{stream}'
+    name: 'doctor-verify-{stream}'
     disabled: '{obj:disabled}'
     project-type: 'multijob'
     parameters:
 
     builders:
       - shell: |
-         #!/bin/bash
-         # we do nothing here as the main stuff will be done
-         # in phase jobs
-         echo "Triggering phase jobs!"
+          #!/bin/bash
+          # we do nothing here as the main stuff will be done
+          # in phase jobs
+          echo "Triggering phase jobs!"
       - multijob:
-          name: 'doctor-verify'
+          name: 'doctor-verify-sample'
           execution-type: PARALLEL
           projects:
-            - name: 'doctor-verify-apex-{inspector}-x86_64-{stream}'
+            - name: 'doctor-verify-all-apex-sample-x86_64-{stream}'
               predefined-parameters: |
                 PROJECT=$PROJECT
                 GERRIT_BRANCH=$GERRIT_BRANCH
@@ -80,7 +76,7 @@
                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
               kill-phase-on: FAILURE
               git-revision: true
-            - name: 'doctor-verify-fuel-{inspector}-x86_64-{stream}'
+            - name: 'doctor-verify-fault_management-fuel-sample-x86_64-{stream}'
               predefined-parameters: |
                 PROJECT=$PROJECT
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
               kill-phase-on: FAILURE
               git-revision: true
-            - name: 'doctor-verify-fuel-{inspector}-aarch64-{stream}'
+      - multijob:
+          name: 'doctor-verify-fenix'
+          execution-type: PARALLEL
+          projects:
+            - name: 'doctor-verify-maintenance-apex-sample-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-daisy-{inspector}-x86_64-{stream}'
+      - multijob:
+          name: 'doctor-verify-congress'
+          execution-type: PARALLEL
+          projects:
+            - name: 'doctor-verify-fault_management-apex-congress-x86_64-{stream}'
               predefined-parameters: |
                 PROJECT=$PROJECT
                 GERRIT_BRANCH=$GERRIT_BRANCH
               git-revision: true
 
 - job-template:
-    name: 'doctor-verify-{installer}-{inspector}-{arch}-{stream}'
+    name: 'doctor-verify-fault_management-{installer}-{inspector}-{arch}-{stream}'
     disabled: '{obj:disabled}'
     node: 'doctor-{installer}-{arch}'
     wrappers:
       - '{installer}-defaults'
       - 'doctor-slave-parameter'
       - 'doctor-parameter':
-          docker-tag: '{docker-tag}'
+          inspector: '{inspector}'
           scenario: '{scenario}'
-      - 'doctor-functest-parameter':
-          gs-pathname: '{gs-pathname}'
+          test_case: 'fault_management'
+          admin_tool_type: 'sample'
+    scm:
+      - git-scm-gerrit
+    builders:
+      - 'doctor-verify-installer-inspector-builders-macro'
+    publishers:
+      - 'doctor-verify-publishers-macro'
+
+- job-template:
+    name: 'doctor-verify-maintenance-{installer}-{inspector}-{arch}-{stream}'
+    disabled: '{obj:disabled}'
+    node: 'doctor-{installer}-{arch}'
+    wrappers:
+      - ssh-agent-wrapper
+      - build-timeout:
+          timeout: 40
+    parameters:
+      - project-parameter:
+          project: '{project}'
+          branch: '{branch}'
+      - '{installer}-defaults'
+      - 'doctor-slave-parameter'
+      - 'doctor-parameter':
+          inspector: '{inspector}'
+          scenario: '{scenario}'
+          test_case: 'maintenance'
+          admin_tool_type: 'fenix'
+    scm:
+      - git-scm-gerrit
+    builders:
+      - 'doctor-verify-installer-inspector-builders-macro'
+    publishers:
+      - 'doctor-verify-publishers-macro'
+
+- job-template:
+    name: 'doctor-verify-all-{installer}-{inspector}-{arch}-{stream}'
+    disabled: '{obj:disabled}'
+    node: 'doctor-{installer}-{arch}'
+    wrappers:
+      - ssh-agent-wrapper
+      - build-timeout:
+          timeout: 50
+    parameters:
+      - project-parameter:
+          project: '{project}'
+          branch: '{branch}'
+      - '{installer}-defaults'
+      - 'doctor-slave-parameter'
+      - 'doctor-parameter':
           inspector: '{inspector}'
+          scenario: '{scenario}'
+          test_case: 'all'
+          admin_tool_type: 'sample'
     scm:
       - git-scm-gerrit
     builders:
     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'
+          name: INSPECTOR_TYPE
+          default: '{inspector}'
+          description: 'inspector component'
       - string:
-          name: CLEAN_DOCKER_IMAGES
-          default: 'false'
-          description: 'Remove downloaded docker images (opnfv/functest:*)'
+          name: TEST_CASE
+          default: '{test_case}'
+          description: 'test case: all, fault_management or maintenance'
       - 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"
+          name: ADMIN_TOOL_TYPE
+          default: '{admin_tool_type}'
+          description: 'admin_tool_type: sample, fenix'
+
+
 # -------------------------------
 # builder macros
 # -------------------------------
 - builder:
     name: 'doctor-verify-installer-inspector-builders-macro'
     builders:
-      - 'clean-workspace-log'
-      # yamllint disable rule:line-length
+      # yamllint disable rule:indentation
+      - shell: !include-raw:
+          - ./doctor-env-presetup.sh
+          - ../../utils/fetch_os_creds.sh
       - 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
+          #!/bin/bash
+
+          # prepare the env for test
+          . $HOME/opnfv-openrc.sh
+          if [ -f $HOME/os_cacert ]; then
+              export OS_CACERT=$HOME/os_cacert
+          fi
+          . $HOME/opnfv-installer.sh
+
+          # run tox to trigger the test
+          # As Jenkins user, it has no permission to send ICMP package
+          sudo -E tox -e py34
+
 
 # -------------------------------
 # publisher macros
     publishers:
       - archive:
           artifacts: 'doctor_tests/*.log'
-      - archive:
-          artifacts: 'functest_results/$FUNCTEST_SUITE_NAME.log'
       - email-jenkins-admins-on-failure
-
+      - workspace-cleanup
 
 #####################################
 # trigger macros