jjb: xci: xci-verify-jobs: Enable tempest for XCI
[releng.git] / jjb / xci / xci-verify-jobs.yml
index 440fac7..b1b868d 100644 (file)
@@ -1,43 +1,56 @@
+---
 - project:
     name: 'opnfv-xci-verify'
 
     project: releng-xci
-#--------------------------------
-# branches
-#--------------------------------
+    # -------------------------------
+    # branches
+    # -------------------------------
     stream:
-        - master:
-            branch: '{stream}'
-#--------------------------------
-# distros
-#--------------------------------
+      - master:
+          branch: '{stream}'
+    # -------------------------------
+    # distros
+    # -------------------------------
     distro:
-        - 'xenial':
-            disabled: false
-        - 'centos7':
-            disabled: true
-        - 'suse':
-            disabled: true
-#--------------------------------
-# type
-#--------------------------------
+      - ubuntu:
+          disabled: false
+          successful: false
+          failed: false
+          unstable: false
+          notbuilt: false
+      - centos:
+          disabled: false
+          successful: true
+          failed: true
+          unstable: true
+          notbuilt: true
+      - opensuse:
+          disabled: false
+          successful: false
+          failed: false
+          unstable: false
+          notbuilt: false
+    # -------------------------------
+    # type
+    # -------------------------------
     type:
-        - virtual
-#--------------------------------
-# patch verification phases
-#--------------------------------
+      - virtual
+    # -------------------------------
+    # patch verification phases
+    # -------------------------------
     phase:
-        - 'deploy'
-        - 'healthcheck'
-#--------------------------------
-# jobs
-#--------------------------------
+      - 'deploy'
+      - 'healthcheck'
+    # -------------------------------
+    # jobs
+    # -------------------------------
     jobs:
-        - 'xci-verify-{distro}-{type}-{stream}'
-        - 'xci-verify-{phase}-{type}-{stream}'
-#--------------------------------
+      - 'xci-verify-{distro}-{type}-{stream}'
+      - 'xci-verify-{distro}-{phase}-{type}-{stream}'
+# -------------------------------
 # job templates
-#--------------------------------
+# -------------------------------
 - job-template:
     name: 'xci-verify-{distro}-{type}-{stream}'
 
     concurrent: true
 
     properties:
-        - logrotate-default
-        - build-blocker:
-            use-build-blocker: true
-            blocking-jobs:
-                - 'xci-verify-.*'
-                - 'bifrost-verify-.*'
-                - 'bifrost-periodic-.*'
-                - 'osa-verify-.*'
-                - 'osa-periodic-.*'
-            block-level: 'NODE'
+      - logrotate-default
+      - build-blocker:
+          use-build-blocker: true
+          blocking-jobs:
+            - 'xci-verify-{distro}-.*'
+            - 'bifrost-verify-{distro}-.*'
+            - 'bifrost-periodic-{distro}-.*'
+            - 'osa-verify-{distro}-.*'
+            - 'osa-periodic-{distro}-.*'
+          block-level: 'NODE'
+      - throttle:
+          max-per-node: 2
+          max-total: 10
+          categories:
+            - xci-verify-virtual
+          option: category
 
     wrappers:
-        - ssh-agent-wrapper
-        - build-timeout:
-            timeout: 240
-        - fix-workspace-permissions
+      - ssh-agent-wrapper
+      - build-timeout:
+          timeout: 240
+      - fix-workspace-permissions
 
     scm:
-        - git-scm-gerrit
+      - 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: 'true'
-                - 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}'
-                disable-strict-forbidden-file-verification: 'true'
-                file-paths:
-                  - compare-type: ANT
-                    pattern: 'bifrost/**'
-                  - compare-type: ANT
-                    pattern: 'xci/**'
-                forbidden-file-paths:
-                  - compare-type: ANT
-                    pattern: 'prototypes/**'
-                  - compare-type: ANT
-                    pattern: 'upstream/**'
-                  - compare-type: ANT
-                    pattern: '**/README.rst'
-                  - compare-type: ANT
-                    pattern: 'docs/**'
-            readable-message: true
+      - gerrit:
+          server-name: 'gerrit.opnfv.org'
+          trigger-on:
+            - patchset-created-event:
+                exclude-drafts: 'false'
+                exclude-trivial-rebase: 'false'
+                exclude-no-code-change: 'true'
+            - 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}'
+              disable-strict-forbidden-file-verification: 'true'
+              file-paths:
+                - compare-type: ANT
+                  pattern: 'bifrost/**'
+                - compare-type: ANT
+                  pattern: 'xci/**'
+              forbidden-file-paths:
+                - compare-type: ANT
+                  pattern: 'prototypes/**'
+                - compare-type: ANT
+                  pattern: 'upstream/**'
+                - compare-type: ANT
+                  pattern: '**/README.rst'
+                - compare-type: ANT
+                  pattern: 'docs/**'
+          readable-message: true
+          skip-vote:
+            successful: '{obj:successful}'
+            failed: '{obj:failed}'
+            unstable: '{obj:unstable}'
+            notbuilt: '{obj:notbuilt}'
 
     parameters:
-        - project-parameter:
-            project: '{project}'
-            branch: '{branch}'
-        - label:
-            name: SLAVE_LABEL
-            default: 'xci-virtual-{distro}'
-        - string:
-            name: CLEAN_DIB_IMAGES
-            default: 'true'
-        - string:
-            name: GIT_BASE
-            default: https://gerrit.opnfv.org/gerrit/$PROJECT
-            description: 'Git URL to use on this Jenkins Slave'
+      - project-parameter:
+          project: '{project}'
+          branch: '{branch}'
+      - label:
+          name: SLAVE_LABEL
+          default: 'xci-virtual'
+      - string:
+          name: CLEAN_DIB_IMAGES
+          default: 'true'
+      - string:
+          name: GIT_BASE
+          default: https://gerrit.opnfv.org/gerrit/$PROJECT
+          description: 'Git URL to use on this Jenkins Slave'
 
     builders:
-        - description-setter:
-            description: "Built on $NODE_NAME"
-        - multijob:
-            name: deploy
-            condition: SUCCESSFUL
-            projects:
-                - name: 'xci-verify-deploy-{type}-{stream}'
-                  current-parameters: true
-                  predefined-parameters: |
-                    DISTRO={distro}
-                    DEPLOY_SCENARIO=os-nosdn-nofeature-noha
-                    CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
-                  node-parameters: true
-                  kill-phase-on: FAILURE
-                  abort-all-job: true
-        - multijob:
-            name: healthcheck
-            condition: SUCCESSFUL
-            projects:
-                - name: 'xci-verify-healthcheck-{type}-{stream}'
-                  current-parameters: true
-                  predefined-parameters: |
-                    DISTRO={distro}
-                    DEPLOY_SCENARIO=os-nosdn-nofeature-noha
-                    CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
-                    FUNCTEST_MODE=tier
-                    FUNCTEST_TIER=healthcheck
-                  node-parameters: true
-                  kill-phase-on: NEVER
-                  abort-all-job: true
+      - description-setter:
+          description: "Built on $NODE_NAME"
+      - multijob:
+          name: deploy
+          condition: SUCCESSFUL
+          projects:
+            - name: 'xci-verify-{distro}-deploy-{type}-{stream}'
+              current-parameters: true
+              predefined-parameters: |
+                DISTRO={distro}
+                DEPLOY_SCENARIO=os-nosdn-nofeature-noha
+                CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
+                GERRIT_BRANCH=$GERRIT_BRANCH
+                GERRIT_REFSPEC=$GERRIT_REFSPEC
+                GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+                GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+              node-parameters: true
+              kill-phase-on: FAILURE
+              abort-all-job: true
+      - multijob:
+          name: healthcheck
+          condition: SUCCESSFUL
+          projects:
+            - name: 'xci-verify-{distro}-healthcheck-{type}-{stream}'
+              current-parameters: true
+              predefined-parameters: |
+                DISTRO={distro}
+                DEPLOY_SCENARIO=os-nosdn-nofeature-noha
+                CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
+                FUNCTEST_MODE=tier
+                FUNCTEST_TIER=healthcheck
+                GERRIT_BRANCH=$GERRIT_BRANCH
+                GERRIT_REFSPEC=$GERRIT_REFSPEC
+                GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+                GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+              node-parameters: true
+              kill-phase-on: NEVER
+              abort-all-job: true
 
 - job-template:
-    name: 'xci-verify-{phase}-{type}-{stream}'
+    name: 'xci-verify-{distro}-{phase}-{type}-{stream}'
 
     disabled: false
 
     concurrent: true
 
     properties:
-        - logrotate-default
-        - build-blocker:
-            use-build-blocker: true
-            blocking-jobs:
-                - 'xci-verify-deploy-.*'
-                - 'xci-verify-healthcheck-.*'
-                - 'bifrost-verify-.*'
-                - 'bifrost-periodic-.*'
-                - 'osa-verify-.*'
-                - 'osa-periodic-.*'
-            block-level: 'NODE'
+      - logrotate-default
+      - build-blocker:
+          use-build-blocker: true
+          blocking-jobs:
+            - 'bifrost-verify-.*'
+            - 'bifrost-periodic-.*'
+            - 'osa-verify-.*'
+            - 'osa-periodic-.*'
+          block-level: 'NODE'
 
     parameters:
-        - string:
-            name: DISTRO
-            default: 'xenial'
-        - string:
-            name: DEPLOY_SCENARIO
-            default: 'os-nosdn-nofeature-noha'
-        - string:
-            name: FUNCTEST_MODE
-            default: 'tier'
-        - string:
-            name: FUNCTEST_SUITE_NAME
-            default: 'healthcheck'
-        - string:
-            name: XCI_FLAVOR
-            default: 'mini'
-        - string:
-            name: CLEAN_DIB_IMAGES
-            default: 'true'
-        - string:
-            name: OPNFV_RELENG_DEV_PATH
-            default: $WORKSPACE/
-        - string:
-            name: INSTALLER_TYPE
-            default: 'osa'
-        - string:
-            name: GIT_BASE
-            default: https://gerrit.opnfv.org/gerrit/$PROJECT
-            description: 'Git URL to use on this Jenkins Slave'
+      - string:
+          name: PROJECT
+          default: 'releng-xci'
+      - string:
+          name: DISTRO
+          default: 'ubuntu'
+      - string:
+          name: DEPLOY_SCENARIO
+          default: 'os-nosdn-nofeature-noha'
+      - string:
+          name: FUNCTEST_MODE
+          default: 'tier'
+      - string:
+          name: FUNCTEST_SUITE_NAME
+          default: 'healthcheck'
+      - string:
+          name: XCI_FLAVOR
+          default: 'mini'
+      - string:
+          name: CLEAN_DIB_IMAGES
+          default: 'true'
+      - string:
+          name: OPNFV_RELENG_DEV_PATH
+          default: $WORKSPACE/
+      - string:
+          name: INSTALLER_TYPE
+          default: 'osa'
+      - string:
+          name: GIT_BASE
+          default: https://gerrit.opnfv.org/gerrit/$PROJECT
+          description: 'Git URL to use on this Jenkins Slave'
 
     wrappers:
-        - ssh-agent-wrapper
-        - build-timeout:
-            timeout: 240
-        - fix-workspace-permissions
+      - ssh-agent-wrapper
+      - build-timeout:
+          timeout: 240
+      - fix-workspace-permissions
 
     scm:
-        - git-scm-gerrit
+      - git-scm-gerrit
 
     builders:
-        - description-setter:
-            description: "Built on $NODE_NAME"
-        - 'xci-verify-{phase}-macro'
+      - description-setter:
+          description: "Built on $NODE_NAME"
+      - 'xci-verify-{phase}-macro'
 
-#--------------------------------
+# -------------------------------
 # builder macros
-#--------------------------------
+# -------------------------------
 - builder:
     name: 'xci-verify-deploy-macro'
     builders:
-        - shell: |
-            #!/bin/bash
+      - shell: |
+          #!/bin/bash
 
-            # skip the deployment if the patch doesn't impact the deployment
-            if [[ "$GERRIT_TOPIC" =~ 'skip-verify' ]]; then
-                echo "Skipping the deployment!"
-                exit 0
-            fi
+          # skip the deployment if the patch doesn't impact the deployment
+          if [[ "$GERRIT_TOPIC" =~ 'skip-verify' ]]; then
+              echo "Skipping the deployment!"
+              exit 0
+          fi
 
-            # for some reason, the PATH is not set correctly
-            # setting PATH for ansible stuff
-            export PATH=/home/jenkins/.local/bin:$PATH
+          cd $WORKSPACE
 
-            cd $WORKSPACE/xci
-            ./xci-deploy.sh
+          # The start-new-vm.sh script will copy the entire releng-xci directory
+          # so lets prepare the test script now so it can be copied by the script.
+          # Please do not move it elsewhere or you would have to move it to the VM
+          # yourself.
+          cat > xci_test.sh<<EOF
+          #!/bin/bash
+          export DISTRO=$DISTRO
+          export DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+          export FUNCTEST_MODE=$FUNCTEST_MODE
+          export FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
+          export XCI_FLAVOR=$XCI_FLAVOR
+          export CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
+          export OPNFV_RELENG_DEV_PATH=/home/devuser/releng-xci/
+          export INSTALLER_TYPE=$INSTALLER_TYPE
+          export GIT_BASE=$GIT_BASE
+          export JENKINS_HOME=$JENKINS_HOME
+          export RUN_TEMPEST=true
+
+          cd xci
+          ./xci-deploy.sh
+          EOF
+          chmod a+x xci_test.sh
+
+          export XCI_BUILD_CLEAN_VM_OS=false
+          export XCI_UPDATE_CLEAN_VM_OS=true
+
+          ./xci/scripts/vm/start-new-vm.sh $DISTRO
+      - shell: |
+          #!/bin/bash
+
+          # skip the deployment if the patch doesn't impact the deployment
+          if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then
+              echo "Skipping the deployment!"
+              exit 0
+          fi
+
+          ssh -F $HOME/.ssh/xci-vm-config ${DISTRO}_xci_vm "cd releng-xci && ./xci_test.sh"
 
 
 - builder:
     name: 'xci-verify-healthcheck-macro'
     builders:
-        - shell: |
-            #!/bin/bash
+      - shell: |
+          #!/bin/bash
+
+          # skip the healthcheck if the patch doesn't impact the deployment
+          if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then
+              echo "Skipping the healthcheck!"
+              exit 0
+          fi
+
+          echo "Hello World!"
+      - shell: |
+          #!/bin/bash
 
-            # skip the healthcheck if the patch doesn't impact the deployment
-            if [[ "$GERRIT_TOPIC" =~ 'skip-verify' ]]; then
-                echo "Skipping the healthcheck!"
-                exit 0
-            fi
+          # skip the deployment if the patch doesn't impact the deployment
+          if [[ "$GERRIT_TOPIC" =~ 'skip-verify' ]]; then
+              echo "Skipping the deployment!"
+              exit 0
+          fi
 
-            echo "Hello World!"
+          sudo virsh destroy ${DISTRO}_xci_vm
+          sudo virsh undefine ${DISTRO}_xci_vm
 
 # this will be enabled once the xci is prepared
-#- builder:
+# - builder:
 #    name: 'xci-verify-healthcheck-macro'
 #    builders:
 #        - shell: