xci: Set the installer and move scenario extraction into functions
[releng.git] / jjb / xci / xci-verify-jobs.yml
index 93ca187..c95917f 100644 (file)
           use-build-blocker: true
           blocking-jobs:
             - 'xci-verify-{distro}-.*'
-            - 'bifrost-verify-{distro}-.*'
-            - 'bifrost-periodic-{distro}-.*'
-            - 'osa-verify-{distro}-.*'
-            - 'osa-periodic-{distro}-.*'
+            - 'xci-.*-{distro}-merge-.*'
+            - 'openstack-bifrost-verify-{distro}-.*'
+            - 'xci-osa-verify-{distro}-.*'
+            - 'xci-osa-periodic-{distro}-.*'
           block-level: 'NODE'
       - throttle:
           max-per-node: 2
                 comment-contains-value: 'reverify'
           projects:
             - project-compare-type: 'ANT'
-              project-pattern: '{project}'
+              project-pattern: 'releng-xci'
               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/**'
+              disable-strict-forbidden-file-verification: 'false'
               forbidden-file-paths:
                 - compare-type: ANT
-                  pattern: 'prototypes/**'
-                - compare-type: ANT
-                  pattern: 'upstream/**'
-                - compare-type: ANT
-                  pattern: '**/README.rst'
+                  pattern: 'xci/scripts/vm/**'
+            - project-compare-type: 'REG_EXP'
+              project-pattern: 'sfc|sdnvpn'
+              branches:
+                - branch-compare-type: 'ANT'
+                  branch-pattern: '**/{branch}'
+              disable-strict-forbidden-file-verification: 'true'
+              file-paths:
                 - compare-type: ANT
-                  pattern: 'docs/**'
+                  pattern: 'scenarios/**'
           readable-message: true
+          custom-url: '* $JOB_NAME $BUILD_URL'
           skip-vote:
             successful: '{obj:successful}'
             failed: '{obj:failed}'
 
     parameters:
       - project-parameter:
-          project: '{project}'
+          project: $GERRIT_PROJECT
           branch: '{branch}'
       - label:
           name: SLAVE_LABEL
           default: 'xci-virtual'
+      - string:
+          name: DISTRO
+          default: '{distro}'
       - string:
           name: CLEAN_DIB_IMAGES
           default: 'true'
           description: 'Git URL to use on this Jenkins Slave'
 
     builders:
+      - 'xci-verify-set-scenario-macro'
+      - inject:
+          properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties"
       - description-setter:
-          description: "Built on $NODE_NAME"
+          description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME"
       - multijob:
           name: deploy
           condition: SUCCESSFUL
               current-parameters: true
               predefined-parameters: |
                 DISTRO={distro}
-                DEPLOY_SCENARIO=os-nosdn-nofeature-noha
                 CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
+                GERRIT_PROJECT=$GERRIT_PROJECT
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
               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_PROJECT=$GERRIT_PROJECT
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+                FUNCTEST_MODE=tier
+                FUNCTEST_TIER=healthcheck
               node-parameters: true
               kill-phase-on: NEVER
               abort-all-job: true
 
+    publishers:
+      - postbuildscript:
+          script-only-if-succeeded: false
+          script-only-if-failed: false
+          builders:
+            - shell:
+                !include-raw: ./xci-cleanup.sh
+
+
 - job-template:
     name: 'xci-verify-{distro}-{phase}-{type}-{stream}'
 
       - build-blocker:
           use-build-blocker: true
           blocking-jobs:
-            - 'bifrost-verify-.*'
-            - 'bifrost-periodic-.*'
+            - '.*-bifrost-verify-.*'
+            - '.*-bifrost-periodic-.*'
             - 'osa-verify-.*'
             - 'osa-periodic-.*'
           block-level: 'NODE'
     parameters:
       - string:
           name: PROJECT
-          default: 'releng-xci'
+          default: $GERRIT_PROJECT
       - string:
           name: DISTRO
           default: 'ubuntu'
-      - string:
-          name: DEPLOY_SCENARIO
-          default: 'os-nosdn-nofeature-noha'
       - string:
           name: FUNCTEST_MODE
           default: 'tier'
           default: $WORKSPACE/
       - string:
           name: INSTALLER_TYPE
-          default: 'osa'
+          default: $XCI_INSTALLER
       - string:
           name: GIT_BASE
           default: https://gerrit.opnfv.org/gerrit/$PROJECT
           description: 'Git URL to use on this Jenkins Slave'
 
     wrappers:
+      - inject:
+          properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties"
       - ssh-agent-wrapper
       - build-timeout:
           timeout: 240
 
     builders:
       - description-setter:
-          description: "Built on $NODE_NAME"
+          description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME"
       - 'xci-verify-{phase}-macro'
 
 # -------------------------------
 # builder macros
 # -------------------------------
 - builder:
-    name: 'xci-verify-deploy-macro'
+    name: 'xci-verify-set-scenario-macro'
     builders:
-      - 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
-
-          cd $WORKSPACE
-
-          # 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
-
-          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
+      - shell:
+          !include-raw: ./xci-set-scenario.sh
 
-          # 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-deploy-macro'
+    builders:
+      - shell:
+          !include-raw: ./xci-start-new-vm.sh
 
+      - shell:
+          !include-raw: ./xci-start-deployment.sh
 
 - builder:
     name: 'xci-verify-healthcheck-macro'
     builders:
-      - 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 deployment if the patch doesn't impact the deployment
-          if [[ "$GERRIT_TOPIC" =~ 'skip-verify' ]]; then
-              echo "Skipping the deployment!"
-              exit 0
-          fi
-
-          sudo virsh destroy ${DISTRO}_xci_vm
-          sudo virsh undefine ${DISTRO}_xci_vm
-
-# this will be enabled once the xci is prepared
-# - builder:
-#    name: 'xci-verify-healthcheck-macro'
-#    builders:
-#        - shell:
-#            !include-raw: ../../utils/fetch_os_creds.sh
-#        - shell:
-#            !include-raw: ../functest/functest-alpine.sh
+      - shell:
+          !include-raw: ./xci-run-functest.sh