Add SDN Controller Name and OPNFV Feature to functest build names
[releng.git] / jjb / functest / functest.yml
index b8a820f..5aa178b 100644 (file)
@@ -7,7 +7,7 @@
     project: '{name}'
 
     pod:
-        - opnfv-jump-1:
+        - intel-us-deploy-virtual-2:
             installer: apex
         - opnfv-jump-2:
             installer: fuel
         - orange-pod2:
             installer: joid
         - huawei-us-deploy-bare-1:
-            installer: compass4nfv
+            installer: compass
         - intel-pod5:
             installer: joid
 
-    suite:
-        - 'daily':
-            suitename: 'functest-daily'
-        - 'tempest':
-            suitename: 'functest-suite'
-        - 'rally':
-            suitename: 'functest-suite'
-        - 'odl':
-            suitename: 'functest-suite'
-        - 'vims':
-            suitename: 'functest-suite'
-        - 'vping':
-            suitename: 'functest-suite'
+    testsuite:
+        - 'daily'
+        - 'suite'
 
     jobs:
-        - 'functest-{installer}-{pod}-{suite}-{stream}'
+        - 'functest-{installer}-{pod}-{testsuite}-{stream}'
         - 'functest-verify-{stream}'
 
     stream:
 # job template
 ################################
 - job-template:
-    name: 'functest-{installer}-{pod}-{suite}-{stream}'
+    name: 'functest-{installer}-{pod}-{testsuite}-{stream}'
+
+    wrappers:
+        - build-name:
+            name: '$BUILD_NUMBER: $FUNCTEST_SUITE_NAME $SDN_CONTROLLER $OPNFV_FEATURE'
 
     parameters:
         - project-parameter:
             project: '{project}'
         - '{pod}-defaults'
         - '{installer}-defaults'
-        - string:
-            name: FUNCTEST_SUITE_NAME
-            default: '{suite}'
+        - 'functest-{testsuite}-parameter'
         - functest-parameter
 
     scm:
@@ -69,7 +61,7 @@
             branch: '{branch}'
 
     builders:
-        - '{obj:suitename}'
+        - 'functest-{testsuite}-builder'
 
 - job-template:
     name: 'functest-verify-{stream}'
 ########################
 # parameter macros
 ########################
+- parameter:
+    name: functest-daily-parameter
+    parameters:
+        - string:
+            name: FUNCTEST_SUITE_NAME
+            default: 'daily'
+            description: "Suite name to run"
+- parameter:
+    name: functest-suite-parameter
+    parameters:
+        - choice:
+            name: FUNCTEST_SUITE_NAME
+            choices:
+                - 'tempest'
+                - 'rally'
+                - 'odl'
+                - 'vims'
+                - 'vping'
 - parameter:
     name: functest-parameter
     parameters:
             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"
 ########################
 # trigger macros
 ########################
 # builder macros
 ########################
 - builder:
-    name: functest-daily
+    name: functest-daily-builder
     builders:
         - 'functest-cleanup'
         - 'set-functest-env'
         - 'functest-all'
-#        - 'functest-store-results'
+        - 'functest-store-results'
 
 - builder:
-    name: functest-suite
+    name: functest-suite-builder
     builders:
         - shell: |
             #!/bin/bash
             set +e
-
+            flag=""
+            if [ "${PUSH_RESULTS_TO_DB}" == "true" ]; then
+                flag="-r"
+            fi
             echo "Functest: run $FUNCTEST_SUITE_NAME"
-            cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test $FUNCTEST_SUITE_NAME"
+            cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test $FUNCTEST_SUITE_NAME ${flag}"
             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
             docker exec $container_id $cmd
 
         - shell: |
             #!/bin/bash
             set +e
-
+            flag=""
+            if [ "${PUSH_RESULTS_TO_DB}" == "true" ]; then
+                flag="-r"
+            fi
             echo "Functest: running all the tests"
-            cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh"
+            cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh ${flag}"
             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
             docker exec $container_id $cmd
 
         - shell: |
             #!/bin/bash
             set +e
+            # labconfig is used only for joid
+            labconfig=""
             if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
                 INSTALLER_IP=$(grep instack /var/lib/libvirt/dnsmasq/default.leases \
                     |awk '{print $3}' | head -n 1)
                 sshkey="-v /root/.ssh/id_rsa:/root/.ssh/id_rsa"
+                sudo iptables -D FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
+                sudo iptables -D FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
+            elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then
+                # If production lab then creds may be retrieved dynamically
+                # creds are on the jumphost, always in the same folder
+                labconfig="-v /var/lib/jenkins/joid_config/admin-openrc:/home/opnfv/functest/conf/openstack.creds"
+                # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
+                # replace the default one by the customized one provided by jenkins config
+                if [ -n "${LAB_CONFIG}" ]; then
+                    labconfig="-v ${LAB_CONFIG}:/home/opnfv/functest/conf/openstack.creds"
+                fi
             fi
             echo "Functest: Start Docker and prepare environment"
             envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}"
-            labconfig=""
-            # If production lab then creds may be retrieved dynamically
-            # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
-            if [ -n "${LAB_CONFIG}" ]; then
-                labconfig="-v ${LAB_CONFIG}:/home/opnfv/functest/conf/openstack.creds"
-            fi
+
+            dir_result="${HOME}/opnfv/functest/reports"
+            mkdir -f ${dir_result}
+            rm -rf ${dir_result}/*
+            $res_volume="-v ${dir_result}:/home/opnfv/functest/results"
 
             docker pull opnfv/functest:latest_stable
-            cmd="docker run -id -e $envs ${labconfig} ${sshkey} opnfv/functest:latest_stable /bin/bash"
+            cmd="docker run -id -e $envs ${labconfig} ${sshkey} ${res_volume} opnfv/functest:latest_stable /bin/bash"
             echo "Functest: Running docker run command: ${cmd}"
             ${cmd}
             docker ps -a