Merge "update builder script and how-to-use-docs"
[releng.git] / jjb / functest / functest.yml
index 4df779d..96b770b 100644 (file)
@@ -9,18 +9,19 @@
             node: 'opnfv-jump-2'
             installer_type: 'fuel'
             installer_ip: '10.20.0.2'
-            functest_repo_dir:  '/home/opnfv/repos/functest'
         - foreman:
             node: 'opnfv-jump-2'
             installer_type: 'foreman'
             installer_ip: '172.30.10.73'
-            functest_repo_dir:  '/home/opnfv/repos/functest'
+        - apex:
+            node: 'opnfv-jump-1'
+            installer_type: 'apex'
+            installer_ip: '192.168.X.X'
     pod:
         - orange-build:
             node: 'orange-build'
             installer_type: 'foreman'
             installer_ip: '172.30.10.73'
-            functest_repo_dir:  '/home/opnfv/repos/functest'
 
     jobs:
         - 'set-functest-env-{pod}'
@@ -56,8 +57,6 @@
 - job-template:
     name: set-functest-env-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
     builders:
         - 'set-functest-env'
 
-
-
 - job-template:
     name: clean-functest-env-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
     builders:
         - 'functest-cleanup'
 
-
 - job-template:
     name: set-functest-env-{installer}-{stream}
 
-    project-type: freestyle
-
     node: '{node}'
 
     logrotate:
     builders:
         - 'set-functest-env'
 
-
 - job-template:
     name: clean-functest-env-{installer}-{stream}
 
-    project-type: freestyle
-
     node: '{node}'
 
     logrotate:
 - job-template:
     name: functest-openstack-bench-test-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
     builders:
         - 'functest-rally-bench'
 
-
 - job-template:
     name: functest-openstack-tempest-smoke-test-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
 - job-template:
     name: functest-odl-test-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
         - shell: |
         - 'functest-odl'
 
-
 - job-template:
     name: functest-vping-test-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     logrotate:
     builders:
         - 'functest-vping'
 
-
 - job-template:
     name: functest-{pod}
 
-    project-type: freestyle
-
     node: '{pod}'
 
     parameters:
         - project-parameter:
             project: '{project}'
+        - functest-parameter
         - string:
             name: INSTALLER_TYPE
             default: '{installer_type}'
             name: INSTALLER_IP
             default: '{installer_ip}'
             description: "Installer IP."
-        - string:
-            name: FUNCTEST_REPO_DIR
-            default: '{functest_repo_dir}'
-            description: "Directory where the root functest repo is cloned in the docker."
         - '{pod}'
 
     scm:
 - job-template:
     name: functest-{installer}-{stream}
 
-    project-type: freestyle
-
     node: '{node}'
 
     parameters:
         - project-parameter:
             project: '{project}'
+        - functest-parameter
         - string:
             name: INSTALLER_TYPE
             default: '{installer_type}'
             name: INSTALLER_IP
             default: '{installer_ip}'
             description: "Installer IP."
-        - string:
-            name: FUNCTEST_REPO_DIR
-            default: '{functest_repo_dir}'
-            description: "Directory where the root functest repo is cloned in the docker."
         - string:
             name: GIT_BASE
             default: ssh://gerrit.opnfv.org:29418/$PROJECT
 - job-template:
     name: functest-vims-{installer}-{stream}
 
-    project-type: freestyle
-
     node: '{node}'
 
     parameters:
         - project-parameter:
             project: '{project}'
+        - functest-parameter
         - string:
             name: INSTALLER_TYPE
             default: '{installer_type}'
             name: INSTALLER_IP
             default: '{installer_ip}'
             description: "Installer IP."
-        - string:
-            name: FUNCTEST_REPO_DIR
-            default: '{functest_repo_dir}'
-            description: "Directory where the root functest repo is cloned in the docker."
         - string:
             name: GIT_BASE
             default: ssh://gerrit.opnfv.org:29418/$PROJECT
 - job-template:
     name: 'functest-daily-{stream}'
 
-    node: master
-
     # Job template for daily builders
     #
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
 
-    project-type: freestyle
     varsetabove: '{somevar}'
 
     logrotate:
             refspec: ''
             branch: '{stream}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - 'functest-{stream}'
 
 - job-template:
     name: 'functest-verify-{stream}'
 
-    node: master
-
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 10
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
 - job-template:
     name: 'functest-merge-{stream}'
 
-    node: master
-
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
     logrotate:
         daysToKeep: 30
         numToKeep: 40
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             name: GS_PATHNAME
             default: '{gs-pathname}'
             description: "Version directory where the opnfv documents will be stored in gs repository"
+        - string:
+            name: FUNCTEST_REPO_DIR
+            default: "/home/opnfv/repos/functest"
+            description: "Directory where the Functest repository is cloned"
 
 - parameter:
     name: orange-build
             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
             docker exec $container_id $cmd
 
-
 - builder:
     name: set-functest-env
     builders:
         - shell: |
             #!/bin/bash
             set +e
-
+            if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
+                INSTALLER_IP=$(cat instack /var/lib/libvirt/dnsmasq/default.leases \
+                    |sed 's/.*192/192/g' | sed 's/\ in.*//g')
+            fi
             echo "Functest: Start Docker and prepare environment"
             envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP}"
             docker pull opnfv/functest:latest_stable
             echo "Executing command inside the docker: ${cmd}"
             docker exec ${container_id} ${cmd}
 
-
 - builder:
     name: functest-vping
     builders:
             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
             docker exec $container_id $cmd
 
-
-
 - builder:
     name: functest-rally-bench
     builders:
             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
             docker exec $container_id $cmd
 
-
 - builder:
     name: functest-vims
     builders:
             container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
             docker exec $container_id $cmd
 
-
-
 - builder:
     name: functest-store-results
     builders:
     builders:
         - shell: |
             #!/bin/bash
-            set +e
 
-            # cleanup: remove any docker containers leftovers
-            echo "Removing existing Functest Docker containers..."
-            docker rm -f $(docker ps | grep opnfv/functest | awk '{print $1}')
-            echo "Removing existing Functest Docker image..."
-            docker rmi -f $(docker images | grep opnfv/functest | awk '{print $3}')
+            echo "Cleaning up docker containers/images..."
+
+            # Remove previous running containers if exist
+            if [[ ! -z $(docker ps -a | grep opnfv/functest) ]]; then
+                echo "Removing existing opnfv/functest containers..."
+                docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop
+                docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm
+            fi
+
+            # Remove existing images if exist
+            if [[ ! -z $(docker images | grep opnfv/functest) ]]; then
+                echo "Docker images to remove:"
+                docker images | head -1 && docker images | grep opnfv/functest
+                image_tags=($(docker images | grep opnfv/functest | awk '{print $2}'))
+                for tag in "${image_tags[@]}"; do
+                    echo "Removing docker image opnfv/functest:$tag..."
+                    docker rmi opnfv/functest:$tag
+                done
+            fi