Pull 'latest_stable' image docker TAG in Functest job
[releng.git] / jjb / functest / functest.yml
index efd6245..4df779d 100644 (file)
         artifactNumToKeep: -1
 
     builders:
+        - 'functest-cleanup'
+        - 'set-functest-env'
         - 'functest-all'
         - 'functest-store-results'
-        - 'functest-cleanup'
 
 - job-template:
     name: functest-{installer}-{stream}
         artifactNumToKeep: -1
 
     builders:
+        - 'functest-cleanup'
+        - 'set-functest-env'
         - 'functest-all'
         - 'functest-store-results'
-        - 'functest-cleanup'
 
 - job-template:
     name: functest-vims-{installer}-{stream}
             #!/bin/bash
             set +e
 
-            # Remove any docker containers leftovers
-            docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop &>/dev/null
-            docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm &>/dev/null
-            docker images | grep opnfv/functest | awk '{print $3}' | xargs docker rmi &>/dev/null
-
-            # Pull and store fresh image from Dockerhub
-            docker pull opnfv/functest
-
-            # Run Docker and Functest tests
-            cmd="${FUNCTEST_REPO_DIR}/docker/start.sh"
-            docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
-                -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+            echo "Functest: running all the tests"
+            cmd="${FUNCTEST_REPO_DIR}/docker/run_tests.sh"
+            container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
+            docker exec $container_id $cmd
 
 
 - builder:
             #!/bin/bash
             set +e
 
-            echo "Functest: spawn Docker and run Functest suite"
-            cmd="${FUNCTEST_REPO_DIR}/docker/start.sh"
-            docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
-            -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+            echo "Functest: Start Docker and prepare environment"
+            envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP}"
+            docker pull opnfv/functest:latest_stable
+            echo "Functest: Running docker run command: docker run -i -e $envs opnfv/functest /bin/bash &"
+            docker run -i -e $envs opnfv/functest /bin/bash &
+            docker ps -a
+            sleep 5
+            container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
+            echo "Container ID=${container_id}"
+            if [ -z ${container_id} ]; then
+                echo "Cannot find opnfv/functest container ID ${container_id}. Please check if it is existing."
+                docker ps -a
+                exit 1
+            fi
+            echo "Starting the container: docker start ${container_id}"
+            docker start ${container_id}
+            sleep 5
+            docker ps
+            if [ $(docker ps | grep opnfv/functest | wc -l) == 0 ]; then
+                echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..."
+                exit 1
+            fi
+            cmd="${FUNCTEST_REPO_DIR}/docker/prepare_env.sh"
+            echo "Executing command inside the docker: ${cmd}"
+            docker exec ${container_id} ${cmd}
 
 
 - builder:
             set +e
 
             echo "Functest: run vPing"
-            cmd="python ${FUNCTEST_REPO_DIR}/testcases/vPing/CI/libraries/vPing.py \
-                --debug ${FUNCTEST_REPO_DIR}/ -r"
-            docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
-                -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+            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
             set +e
 
             echo "Functest: run ODL suite"
-            cmd="${FUNCTEST_REPO_DIR}/testcases/Controllers/ODL/CI/start_tests.sh"
-            docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
-                -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+            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
 
             # tempest
             echo "Functest: run Tempest suite"
-            cmd="rally verify start smoke; rally verify list;"
-            docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
-                -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+            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
 
 
 
             set +e
 
             echo "Functest: run Functest Rally Bench suites"
-            cmd="python ${FUNCTEST_REPO_DIR}/testcases/VIM/OpenStack/CI/libraries/run_rally.py \
-                --debug ${FUNCTEST_REPO_DIR}/ all"
-            docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
-                -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+            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:
         - shell: |
             #!/bin/bash
             set +e
-            cmd="python ${FUNCTEST_REPO_DIR}/testcases/vIMS/CI/vIMS.py \
-                --debug ${FUNCTEST_REPO_DIR}/"
-            docker run -t -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
-                -e "INSTALLER_IP=${INSTALLER_IP}" opnfv/functest $cmd
+
+            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
 
 
 
             set +e
 
             # cleanup: remove any docker containers leftovers
-            docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop &>/dev/null
-            docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm &>/dev/null
-            docker images | grep opnfv/functest | awk '{print $3}' | xargs docker rmi &>/dev/null
-
+            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}')