Add SDN Controller Name and OPNFV Feature to functest build names
[releng.git] / jjb / functest / functest.yml
index 95a2cbc..5aa178b 100644 (file)
 - project:
     name: functest
 
-    installer:
-        - fuel:
-            node: 'opnfv-jump-2'
-            installer_type: 'fuel'
-            installer_ip: '10.20.0.2'
-        - foreman:
-            node: 'opnfv-jump-2'
-            installer_type: 'foreman'
-            installer_ip: '172.30.10.73'
-        - apex:
-            node: 'opnfv-jump-1'
-            installer_type: 'apex'
-            installer_ip: '192.168.X.X'
-        - compass:
-            node: 'huawei-us-deploy-bare-1'
-            installer_type: 'compass'
-            installer_ip: '192.168.200.2'
-    pod:
-        - opnfv-jump-1:
-            node: 'opnfv-jump-1'
-            installer_type: 'apex'
-            installer_ip: '192.168.X.X'
+    project: '{name}'
 
+    pod:
+        - intel-us-deploy-virtual-2:
+            installer: apex
+        - opnfv-jump-2:
+            installer: fuel
         - orange-test1:
-            node: 'orange-test1'
-            installer_type: 'fuel'
-            installer_ip: '172.30.10.73'
-
-        - orange-fr-pod2:
-            node: 'orange-fr-pod2'
-            installer_type: 'joid'
-            installer_ip: '127.0.0.1'
-
-        - huawei-build:
-            node: 'huawei-us-deploy-bare-1'
-            installer_type: 'compass'
-            installer_ip: '192.168.200.2'
-
+            installer: fuel
+        - orange-pod2:
+            installer: joid
+        - huawei-us-deploy-bare-1:
+            installer: compass
+        - intel-pod5:
+            installer: joid
+
+    testsuite:
+        - 'daily'
+        - 'suite'
 
     jobs:
-        - 'set-functest-env-{pod}'
-        - 'functest-{pod}'
-        - 'clean-functest-env-{pod}'
-        - 'set-functest-env-{installer}-{stream}'
-        - 'functest-{installer}-{stream}'
-        - 'clean-functest-env-{installer}-{stream}'
-        - 'functest-openstack-bench-test-{pod}'
-        - 'functest-openstack-tempest-smoke-test-{pod}'
-        - 'functest-odl-test-{pod}'
-        - 'functest-vims-{installer}-{stream}'
-        - 'functest-vping-test-{pod}'
-        - 'functest-daily-{stream}'
-        - 'functest-merge-{stream}'
+        - 'functest-{installer}-{pod}-{testsuite}-{stream}'
         - 'functest-verify-{stream}'
 
-    # stream:    branch with - in place of / (eg. stable-arno)
-    # branch:    branch (eg. stable/arno)
     stream:
         - master:
             branch: 'master'
             gs-pathname: ''
-        - stable-arno:
-            branch: 'stable/arno'
-            gs-pathname: '/arno'
+#        - brahmaputra:
+#            branch: 'stable/brahmaputra'
+#            gs-pathname: '/brahmaputra'
 
-    project: 'functest'
-    somevar: 'foo'
 ################################
 # job template
 ################################
 - job-template:
-    name: set-functest-env-{pod}
-
-    node: '{pod}'
-
-    builders:
-        - 'set-functest-env'
-
-- job-template:
-    name: clean-functest-env-{pod}
-
-    node: '{pod}'
-
-    builders:
-        - 'functest-cleanup'
-
-- job-template:
-    name: set-functest-env-{installer}-{stream}
-
-    node: '{node}'
-
-    builders:
-        - 'set-functest-env'
-
-- job-template:
-    name: clean-functest-env-{installer}-{stream}
-
-    node: '{node}'
-
-    builders:
-        - 'functest-cleanup'
-
-- job-template:
-    name: functest-openstack-bench-test-{pod}
-
-    node: '{pod}'
-
-    builders:
-        - 'functest-rally-bench'
-
-- job-template:
-    name: functest-openstack-tempest-smoke-test-{pod}
-
-    node: '{pod}'
-
-    builders:
-        - 'functest-tempest-smoke'
-
-- job-template:
-    name: functest-odl-test-{pod}
-
-    node: '{pod}'
-
-    builders:
-        - shell: |
-        - 'functest-odl'
-
-- job-template:
-    name: functest-vping-test-{pod}
-
-    node: '{pod}'
-
-    builders:
-        - 'functest-vping'
-
-- job-template:
-    name: functest-{pod}
-
-    node: '{pod}'
-
-    parameters:
-        - project-parameter:
-            project: '{project}'
-        - functest-parameter
-        - string:
-            name: INSTALLER_TYPE
-            default: '{installer_type}'
-            description: "Installer name that is used for deployment."
-        - string:
-            name: INSTALLER_IP
-            default: '{installer_ip}'
-            description: "Installer IP."
-        - '{pod}'
-
-    scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: master
-
-    builders:
-        - 'functest-cleanup'
-        - 'set-functest-env'
-        - 'functest-all'
-        - 'functest-store-results'
-
-- job-template:
-    name: functest-{installer}-{stream}
+    name: 'functest-{installer}-{pod}-{testsuite}-{stream}'
 
-    node: '{node}'
+    wrappers:
+        - build-name:
+            name: '$BUILD_NUMBER: $FUNCTEST_SUITE_NAME $SDN_CONTROLLER $OPNFV_FEATURE'
 
     parameters:
         - project-parameter:
             project: '{project}'
+        - '{pod}-defaults'
+        - '{installer}-defaults'
+        - 'functest-{testsuite}-parameter'
         - functest-parameter
-        - string:
-            name: INSTALLER_TYPE
-            default: '{installer_type}'
-            description: "Installer name that is used for deployment."
-        - string:
-            name: INSTALLER_IP
-            default: '{installer_ip}'
-            description: "Installer IP."
-        - string:
-            name: GIT_BASE
-            default: ssh://gerrit.opnfv.org:29418/$PROJECT
-            description: "Override GIT_BASE"
 
     scm:
         - git-scm:
             credentials-id: '{ssh-credentials}'
             refspec: ''
-            branch: master
-
-    builders:
-        - 'functest-cleanup'
-        - 'set-functest-env'
-        - 'functest-all'
-        - 'functest-store-results'
-
-- job-template:
-    name: functest-vims-{installer}-{stream}
-
-    node: '{node}'
-
-    parameters:
-        - project-parameter:
-            project: '{project}'
-        - functest-parameter
-        - string:
-            name: INSTALLER_TYPE
-            default: '{installer_type}'
-            description: "Installer name that is used for deployment."
-        - string:
-            name: INSTALLER_IP
-            default: '{installer_ip}'
-            description: "Installer IP."
-        - string:
-            name: GIT_BASE
-            default: ssh://gerrit.opnfv.org:29418/$PROJECT
-            description: "Override GIT_BASE"
-
-    scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: master
-
-    builders:
-        - 'functest-vims'
-
-- job-template:
-    name: 'functest-daily-{stream}'
-
-    # Job template for daily builders
-    #
-    # Required Variables:
-    #     stream:    branch with - in place of / (eg. stable)
-    #     branch:    branch (eg. stable)
-
-    varsetabove: '{somevar}'
-
-    parameters:
-        - project-parameter:
-            project: '{project}'
-        - functest-parameter:
-            gs-pathname: '{gs-pathname}'
-
-    scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: '{stream}'
-
-    triggers:
-        - 'functest-{stream}'
-
-    prebuilders:
-        - test-macro
+            branch: '{branch}'
 
     builders:
-        - shell:
-            !include-raw ../opnfvdocs/docu-build.sh
-
-    postbuilders:
-        - test-macro
+        - 'functest-{testsuite}-builder'
 
 - job-template:
     name: 'functest-verify-{stream}'
                     branch-pattern: '**/{branch}'
 
     builders:
-        - shell:
-            !include-raw ../opnfvdocs/docu-build.sh
-
-- job-template:
-    name: 'functest-merge-{stream}'
-
-    # builder-merge job to run JJB update
-    #
-    # This job's purpose is to update all the JJB
-
-    parameters:
-        - project-parameter:
-            project: '{project}'
-        - gerrit-parameter:
-            branch: '{branch}'
-
-    scm:
-        - gerrit-trigger-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            choosing-strategy: 'default'
-
-    triggers:
-        - gerrit:
-            trigger-on:
-                - change-merged-event
-                - comment-added-contains-event:
-                    comment-contains-value: 'remerge'
-            projects:
-              - project-compare-type: 'ANT'
-                project-pattern: 'functest'
-                branches:
-                    - branch-compare-type: 'ANT'
-                      branch-pattern: '**/{branch}'
-
-    builders:
-        - shell:
-            !include-raw ../opnfvdocs/docu-build.sh
+        - shell: |
+            echo "Nothing to verify!"
 
 ########################
 # 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"
-
-- parameter:
-    name: orange-test1
-    parameters:
         - string:
-            name: GIT_BASE
-            default: https://gerrit.opnfv.org/gerrit/$PROJECT
-            description: "Override GIT_BASE"
-
-- parameter:
-    name: orange-fr-pod2
-    parameters:
-        - string:
-            name: GIT_BASE
-            default: https://gerrit.opnfv.org/gerrit/$PROJECT
-            description: "Override GIT_BASE"
-        - string:
-            name: LAB_CONFIG
-            default: "/home/opnfv/repos/functest"
-            description: "Openstack credentials on the dev lab"
-
-- parameter:
-    name: opnfv-jump-1
-    parameters:
-        - string:
-            name: GIT_BASE
-            default: ssh://gerrit.opnfv.org:29418/$PROJECT
-            description: "Override GIT_BASE"
-        - string:
-            name: SSH_KEY
-            default: "/root/.ssh/id_rsa"
-            description: "SSH private key to access the installer VM"
-
-- parameter:
-    name: huawei-build
-    parameters:
-        - string:
-            name: GIT_BASE
-            default: ssh://gerrit.opnfv.org:29418/$PROJECT
-            description: "Override GIT_BASE"
-
-- parameter:
-    name: opnfv-jump-2
-    parameters:
-        - string:
-            name: GIT_BASE
-            default: ssh://gerrit.opnfv.org:29418/$PROJECT
-            description: "Override GIT_BASE"
+            name: PUSH_RESULTS_TO_DB
+            default: "true"
+            description: "Push the results of all the tests to the resultDB"
 ########################
 # trigger macros
 ########################
     name: 'functest-master'
     triggers:
         - pollscm: "H 9 * * *"
-
-- trigger:
-    name: 'functest-stable-arno'
-    triggers:
-        - pollscm: "H 21 * * *"
-
 ########################
 # builder macros
 ########################
-# macros
 - builder:
-    name: functest-all
+    name: functest-daily-builder
+    builders:
+        - 'functest-cleanup'
+        - 'set-functest-env'
+        - 'functest-all'
+        - 'functest-store-results'
+
+- builder:
+    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 ${flag}"
+            container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
+            docker exec $container_id $cmd
 
+- builder:
+    name: functest-all
+    builders:
+        - 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=$(cat instack /var/lib/libvirt/dnsmasq/default.leases \
-                    |sed 's/.*192/192/g' | sed 's/\ in.*//g')
+                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
-            if [ -n "${SSH_KEY}" ]; then
-                sshkey="-v ${SSH_KEY}:/root/.ssh/id_rsa"
-            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
             echo "Executing command inside the docker: ${cmd}"
             docker exec ${container_id} ${cmd}
 
-- builder:
-    name: functest-vping
-    builders:
-        - shell: |
-            #!/bin/bash
-            set +e
-
-            echo "Functest: run vPing"
-            cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vping"
-            container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
-            docker exec $container_id $cmd
-
-- builder:
-    name: functest-odl
-    builders:
-        - shell: |
-            #!/bin/bash
-            set +e
-
-            echo "Functest: run ODL suite"
-            cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test odl"
-            container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
-            docker exec $container_id $cmd
-
-- builder:
-    name: functest-tempest-smoke
-    builders:
-        - shell: |
-            #!/bin/bash
-            set +e
-
-            # tempest
-            echo "Functest: run Tempest suite"
-            cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test tempest"
-            container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
-            docker exec $container_id $cmd
-
-- builder:
-    name: functest-rally-bench
-    builders:
-        - shell: |
-            #!/bin/bash
-            set +e
-
-            echo "Functest: run Functest Rally Bench suites"
-            cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test rally"
-            container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
-            docker exec $container_id $cmd
-
-- builder:
-    name: functest-vims
-    builders:
-        - shell: |
-            #!/bin/bash
-            set +e
-
-            echo "Functest: run Functest vIMS test"
-            cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh --test vims"
-            container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
-            docker exec $container_id $cmd
-
 - builder:
     name: functest-store-results
     builders: