xci: Enable multi-distro verify
[releng.git] / jjb / xci / xci-verify-jobs.yml
index f0a673b..4ff5eb4 100644 (file)
 # distros
 #--------------------------------
     distro:
-        - 'xenial':
+        - 'ubuntu':
             disabled: false
-        - 'centos7':
+            skip-vote: false
+        - 'centos':
             disabled: true
-        - 'suse':
+            skip-vote: true
+        - 'opensuse':
             disabled: true
+            skip-vote: true
 #--------------------------------
 # type
 #--------------------------------
         - build-blocker:
             use-build-blocker: true
             blocking-jobs:
-                - 'xci-verify-.*'
-                - 'bifrost-verify-.*'
-                - 'bifrost-periodic-.*'
-                - 'osa-verify-.*'
-                - 'osa-periodic-.*'
+                - 'xci-verify-{distro}-.*'
+                - 'bifrost-verify-{distro}-.*'
+                - 'bifrost-periodic-{distro}-.*'
+                - 'osa-verify-{distro}-.*'
+                - 'osa-periodic-{distro}-.*'
             block-level: 'NODE'
 
     wrappers:
                     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: 'bifrost/**'
                   - compare-type: ANT
                     pattern: 'prototypes/**'
                   - compare-type: ANT
                   - compare-type: ANT
                     pattern: 'docs/**'
             readable-message: true
+          skip-vote:
+            successful: {skip-vote}
+            failed: {skip-vote}
+            unstable: {skip-vote}
+            notbuilt: {skip-vote}
 
     parameters:
         - project-parameter:
             branch: '{branch}'
         - label:
             name: SLAVE_LABEL
-            default: 'xci-virtual-{distro}'
+            default: 'xci-virtual'
+        - string:
+            name: CLEAN_DIB_IMAGES
+            default: 'true'
         - string:
             name: GIT_BASE
             default: https://gerrit.opnfv.org/gerrit/$PROJECT
                   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
                   predefined-parameters: |
                     DISTRO={distro}
                     DEPLOY_SCENARIO=os-nosdn-nofeature-noha
-                    FUNCTEST_SUITE_NAME=healthcheck
+                    CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
+                    FUNCTEST_MODE=tier
+                    FUNCTEST_TIER=healthcheck
                   node-parameters: true
                   kill-phase-on: NEVER
                   abort-all-job: true
     parameters:
         - string:
             name: DISTRO
-            default: 'xenial'
+            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/
 
     builders:
         - description-setter:
-            description: "Built on $NODE_NAME"
+            description: "Built on $NODE_NAME for $DISTRO"
         - 'xci-verify-{phase}-macro'
 
 #--------------------------------
                 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
+
+            # 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 $WORKSPACE/xci
+            cd xci
             ./xci-deploy.sh
+            EOF
+            chmod a+x xci_test.sh
+
+            ./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' ]]; then
+                echo "Skipping the deployment!"
+                exit 0
+            fi
+
+            ssh ${DISTRO}_xci_vm "cd releng-xci && ./xci_test.sh"
 
 
 - builder:
             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: