Rename Huawei Jenkins slaves
[releng.git] / jjb / bottlenecks / bottlenecks-ci-jobs.yml
index b4b736f..5a15572 100644 (file)
     master: &master
         stream: master
         branch: '{stream}'
+        #This is used for common project file storage
         gs-pathname: ''
+        #This is used for different test suite dependent packages storage
+        gs-packagepath: '/{suite}'
+        #docker tag used for version control
+        docker-tag: 'latest'
     brahmaputra: &brahmaputra
         stream: brahmaputra
         branch: 'stable/{stream}'
-        gs-pathname: '{stream}'
+        gs-pathname: '/{stream}'
+        gs-packagepath: '/{stream}/{suite}'
+        docker-tag: 'stable'
 #--------------------------------
 # POD, INSTALLER, AND BRANCH MAPPING
 #--------------------------------
     pod:
         - opnfv-jump-2:
             installer: fuel
+            disabled: true
             <<: *brahmaputra
         - intel-pod5:
             installer: joid
+            disabled: true
             <<: *brahmaputra
-        - huawei-us-deploy-bare-1:
+        - huawei-pod1:
             installer: compass
+            disabled: true
             <<: *brahmaputra
 #--------------------------------
 #        master
 #--------------------------------
+        - opnfv-jump-2:
+            installer: fuel
+            <<: *master
         - ericsson-pod1:
             installer: fuel
+            disabled: true
             <<: *master
         - ericsson-pod2:
             installer: fuel
+            disabled: true
             <<: *master
         - intel-pod6:
             installer: joid
+            disabled: true
             <<: *master
         - intel-pod8:
             installer: compass
+            disabled: true
             <<: *master
-        - zte-build-1:
+        - zte-pod1:
             installer: fuel
+            disabled: true
             <<: *master
         - orange-pod2:
             installer: joid
+            disabled: false
             <<: *master
 #--------------------------------
     suite:
@@ -67,7 +86,7 @@
 - job-template:
     name: 'bottlenecks-{installer}-{suite}-{pod}-daily-{stream}'
 
-    disabled: false
+    disabled: '{disabled}'
 
     wrappers:
         - build-name:
         - '{pod}-defaults'
         - '{installer}-defaults'
         - 'bottlenecks-params-{pod}'
+        - string:
+            name: REPO_DIR
+            default: "/home/opnfv/bottlenecks"
+            description: "Directory where the repository is cloned"
+        - string:
+            name: DEPLOY_SCENARIO
+            default: 'os-odl_l2-nofeature-ha'
         - string:
             name: GERRIT_REFSPEC_DEBUG
-            default: ''
+            default: 'false'
             description: "Gerrit refspec for debug."
+        - string:
+            name: SUITE_NAME
+            default: '{suite}'
+            description: "test suite name."
+        - string:
+            name: DOCKER_TAG
+            default: '{docker-tag}'
+            description: "docker image tag used for version control"
 
     scm:
         - git-scm:
             branch: '{branch}'
 
     builders:
-        - 'bottlenecks-fetch-os-creds'
-        - 'bottlenecks-run-{suite}'
+        - 'bottlenecks-env-cleanup'
+        - 'bottlenecks-run-suite'
 
     publishers:
         - email:
-            recipients: hongbo.tianhongbo@huawei.com matthew.lijun@huawei.com liangqi1@huawei.com liyiting@huawei.com
+            recipients: hongbo.tianhongbo@huawei.com matthew.lijun@huawei.com liangqi1@huawei.com sunshine.wang@huawei.com
 
 ########################
 # builder macros
 ########################
-#- builder:
-#    name: bottlenecks-fetch-os-creds
-#    builders:
-#        - shell:
-#            !include-raw ../../utils/fetch_os_creds.sh
-
-#- builder:
-#    name: bottlenecks-run-rubbos
-#    builders:
-#        - shell: |
-#            #!/bin/bash
-#            set -o errexit
-#
-#            echo "Bottlenecks: rubbos running now..."
-#            cd $WORKSPACE
-#            ./ci/run.sh $GERRIT_REFSPEC_DEBUG
-
-#- builder:
-#    name: bottlenecks-run-vstf
-#    builders:
-#        - shell: |
-#            #!/bin/bash
-#            set -o errexit
-
-#            echo "Bottlenecks: vstf running now..."
-#            cd $WORKSPACE
-#            ./ci/vstf_run.sh $GERRIT_REFSPEC_DEBUG
+- builder:
+    name: bottlenecks-env-cleanup
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -e
+            [[ $GERRIT_REFSPEC_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
 
-########################
+            echo "Bottlenecks: docker containers/images cleaning up"
+            if [[ ! -z $(docker ps -a | grep opnfv/bottlenecks) ]]; then
+                echo "removing existing opnfv/bottlenecks containers"
+                docker ps -a | grep opnfv/bottlenecks | awk '{print $1}' | xargs docker rm -f >$redirect
+            fi
+
+            if [[ ! -z $(docker images | grep opnfv/bottlenecks) ]]; then
+                echo "Bottlenecks: docker images to remove:"
+                docker images | head -1 && docker images | grep opnfv/bottlenecks
+                image_tags=($(docker images | grep opnfv/bottlenecks | awk '{print $2}'))
+                for tag in "${image_tags[@]}"; do
+                    echo "Removing docker image opnfv/bottlenecks:$tag..."
+                    docker rmi opnfv/bottlenecks:$tag >$redirect
+                done
+            fi
+
+- builder:
+    name: bottlenecks-run-suite
+    builders:
+        - shell: |
+            #!/bin/bash
+            set -e
+            [[ $GERRIT_REFSPEC_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
+
+            echo "Bottlenecks: to pull image opnfv/bottlenecks:${DOCKER_TAG}"
+            docker pull opnfv/bottlenecks:$DOCKER_TAG >${redirect}
+
+            echo "Bottlenecks: docker start running"
+            opts="--privileged=true -id"
+            envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
+                  -e NODE_NAME=${NODE_NAME} -e EXTERNAL_NET=${EXTERNAL_NETWORK} \
+                  -e BOTTLENECKS_BRANCH=${BOTTLENECKS_BRANCH} -e GERRIT_REFSPEC_DEBUG=${GERRIT_REFSPEC_DEBUG} \
+                  -e BOTTLENECKS_DB_TARGET=${BOTTLENECKS_DB_TARGET} -e PACKAGE_URL=${PACKAGE_URL}"
+            cmd="sudo docker run ${opts} ${envs} opnfv/bottlenecks:${DOCKER_TAG} /bin/bash"
+            echo "Bottlenecks: docker cmd running ${cmd}"
+            ${cmd} >${redirect}
+
+            echo "Bottlenecks: obtain docker id"
+            container_id=$(docker ps | grep "opnfv/bottlenecks:${DOCKER_TAG}" | awk '{print $1}' | head -1)
+            if [ -z ${container_id} ]; then
+                echo "Cannot find opnfv/bottlenecks container ID ${container_id}. Please check if it exists."
+                docker ps -a
+                exit 1
+            fi
+
+            echo "Bottlenecks: to prepare openstack environment"
+            prepare_env="${REPO_DIR}/ci/prepare_env.sh"
+            echo "Bottlenecks: docker cmd running: ${prepare_env}"
+            sudo docker exec ${container_id} ${prepare_env}
+
+            echo "Bottlenecks: to run testsuite ${SUITE_NAME}"
+            run_testsuite="${REPO_DIR}/run_tests.sh -s ${SUITE_NAME}"
+            echo "Bottlenecks: docker cmd running: ${run_testsuite}"
+            sudo docker exec ${container_id} ${run_testsuite}
+
+####################
 # parameter macros
-########################
+####################
+
 - parameter:
     name: 'bottlenecks-params-intel-pod5'
     parameters:
             description: 'Arguments to use in order to choose the backend DB'
 
 - parameter:
-    name: 'bottlenecks-params-huawei-us-deploy-bare-1'
+    name: 'bottlenecks-params-huawei-pod1'
     parameters:
         - string:
             name: BOTTLENECKS_DB_TARGET
             description: 'Arguments to use in order to choose the backend DB'
 
 - parameter:
-    name: 'bottlenecks-params-zte-build-1'
+    name: 'bottlenecks-params-zte-pod1'
     parameters:
         - string:
             name: BOTTLENECKS_DB_TARGET