Updated QTIP Jenkins Jobs to use QTIP docker image
[releng.git] / jjb / qtip / qtip.yml
index 07228f8..f211763 100644 (file)
 - project:
     name: qtip
-    pod:
-        - dell-build:
-           node: 'dell-build'
-           installer_type: 'foreman'
-           installer_ip: '172.18.0.12'
+
+    project: '{name}'
+
     jobs:
-        - 'qtip-test'
-        - 'qtip-daily-{stream}'
-        - 'qtip-merge'
-        - 'qtip-verify'
-        - 'qtip-dhrystone-VM_vs_Baremetal'
-        - 'qtip_dhrystone-Baremetal_vs_Baremetal'
-    # stream:    branch with - in place of / (eg. stable-helium)
-    # branch:    branch (eg. stable/helium)
+        - 'qtip-verify-{stream}'
+        - 'qtip-{installer_type}-{pod}-daily-{stream}'
+
+    pod:
+        - dell-us-testing-bm-1:
+           node: 'dell-us-testing-bm-1'
+           installer_type: 'fuel'
+           installer_ip: '10.20.0.2'
+        - dell-us-deploying-bm-3:
+           node: 'dell-us-deploying-bm-3'
+           installer_type: 'fuel'
+           installer_ip: '10.20.0.2'
+
+# only master branch is enabled at the moment to keep no of jobs sane
     stream:
         - master:
             branch: 'master'
-
-    project: 'qtip'
-    somevar: 'foo'
-
-- job-template:
-    name: qtip-test
-
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
-
-    builders:
-        - shell: |
-            echo "Hello world from qtip"
+            gs-pathname: ''
+#        - brahmaputra:
+#            branch: 'stable/brahmaputra'
+#            gs-pathname: '/brahmaputra'
 
 - job-template:
-    name: 'qtip-daily-{stream}'
-
-    # 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:
-        daysToKeep: '{build-days-to-keep}'
-        numToKeep: '{build-num-to-keep}'
-        artifactDaysToKeep: '{build-artifact-days-to-keep}'
-        artifactNumToKeep: '{build-artifact-num-to-keep}'
+    name: 'qtip-verify-{stream}'
 
     parameters:
         - project-parameter:
             project: '{project}'
-
-    scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
+        - gerrit-parameter:
             branch: '{branch}'
+        - 'opnfv-build-defaults'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
-    triggers:
-        - timed: 'H H * * *'
-
-    prebuilders:
-        - test-macro
-
-    builders:
-        - shell: |
-            pwd
-            find .
-            echo "Hello world from qtip {somevar} daily"
-
-    postbuilders:
-        - test-macro
-
-- job-template:
-    name: 'qtip-verify'
-
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
-
-    parameters:
-        - project-parameter:
-            project: '{project}'
-        - gerrit-parameter:
-            branch: 'master'
     scm:
         - gerrit-trigger-scm:
             credentials-id: '{ssh-credentials}'
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
                     comment-contains-value: 'reverify'
             projects:
               - project-compare-type: 'ANT'
-                project-pattern: 'qtip'
+                project-pattern: '{project}'
                 branches:
                   - branch-compare-type: 'ANT'
-                    branch-pattern: '**/master'
+                    branch-pattern: '**/{branch}'
+                forbidden-file-paths:
+                  - compare-type: ANT
+                    pattern: 'docs/**|.gitignore'
 
     builders:
         - shell: |
-            pwd
-            find .
-            echo "verify logic goes here"
+            echo "Nothing to verify!"
 
 - job-template:
-    name: 'qtip-merge'
+    name: 'qtip-{installer_type}-{pod}-daily-{stream}'
 
-    # builder-merge job to run JJB update
-    #
-    # This job's purpose is to update all the JJB
+    disabled: false
 
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 40
-        artifactDaysToKeep: -1
-        artifactNumToKeep: 5
+    node: '{node}'
 
     parameters:
-        - project-parameter:
-            project: '{project}'
-        - gerrit-parameter:
-            branch: 'master'
+      - project-parameter:
+          project: '{project}'
+      - 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: NODE_NAME
+          default: '{node}'
+          description: "Name of the POD"
+      - string:
+          name: GIT_BASE
+          default: https://gerrit.opnfv.org/gerrit/$PROJECT
+          description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
 
     scm:
-        - gerrit-trigger-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            choosing-strategy: 'default'
-
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
-    triggers:
-        - gerrit:
-            trigger-on:
-                - change-merged-event
-                - comment-added-contains-event:
-                    comment-contains-value: 'remerge'
-            projects:
-              - project-compare-type: 'ANT'
-                project-pattern: 'qtip'
-                branches:
-                    - branch-compare-type: 'ANT'
-                      branch-pattern: '**/master'
+       - git-scm:
+           credentials-id: '{ssh-credentials}'
+           refspec: ''
+           branch: master
 
     builders:
-        - shell: |
-            pwd
-            find .
-            echo "merge logic goes here"
-
-- job-template:
-     name: 'qtip-dhrystone-VM_vs_Baremetal'
+        - 'qtip-cleanup'
+        - 'qtip-set-env'
+        - 'qtip-run-suite'
 
-     project-type: freestyle
-
-     disabled: false
-
-     node: '{node}'
-
-     logrotate:
-       daysToKeep: 30
-       numToKeep: 10
-       artifactDaysToKeep: -1
-       artifactNumToKeep: -1
-
-     parameters:
-       - project-parameter:
-           project: '{project}'
-       - string:
-           name: INSTALLER_TYPE
-           default: '{installer_type}'
-           description: "Installer name that is used for deployment."
-       - stirng:
-           name: INSTALLER_IP
-           default: '{Installer_ip}'
-           description "Installer IP"
-
-     scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: master
-
-     builders:
-         - 'qtip-fetch-os-cred'
-         - 'qtip-dhrystone-VM_vs_BM'
-
-- job-template:
-     name: 'qtip-dhrystone-Baremetal_vs_Baremetal'
-
-     project-type: freestyle
-
-     disabled: false
-
-     node: '{node}'
-
-     logrotate:
-       daysToKeep: 30
-       numToKeep: 10
-       artifactDaysToKeep: -1
-       artifactNumToKeep: -1
-
-     parameters:
-       - project-parameter:
-           project: '{project}'
-       - string:
-           name: INSTALLER_TYPE
-           default: '{installer_type}'
-           description: "Installer name that is used for deployment."
-       - string:
-           name: INSTALLER_IP
-           default: '{installer_ip}'
-           description: "IP address of the installer"
-
-     scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: master
-
-     builders:
-       - 'qtip-fetch-os-cred'
-       - 'qtip-dhrystone-BM_vs_BM'
+    triggers:
+      - timed: '0 0,13,15,20 * * *'
 
 
 ###########################
 #biuilder macros
 ###########################
 - builder:
-    name: qtip-dhrystone-VM_vs_BM
-
+    name: qtip-set-env
     builders:
         - shell: |
-            #! /bin/bash
-
-
-            if [[ ! -f $HOME/opnfv-openrc.sh]]; then
-               echo "Unable to access file $HOME/opnfv-openrc.sh"
-               exit 1
+            #!/bin/bash
+            echo "Qtip: Start Docker and prepare environment"
+            envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}"
+            suite="TEST_CASE=all"
+            docker pull opnfv/qtip:latest
+
+            cmd=" docker run -id -e $envs -e $suite opnfv/qtip:latest /bin/bash"
+            echo "Qtip: Running docker run command: ${cmd}"
+            ${cmd}
+            docker ps -a
+            container_id=$(docker ps | grep 'opnfv/qtip:latest' | awk '{print $1}' | head -1)
+             if [ $(docker ps | grep 'opnfv/qtip' | wc -l) == 0 ]; then
+                echo "The container opnfv/qtip with ID=${container_id} has not been properly started. Exiting..."
+                exit 1
             fi
-            source $HOME/opnfv-openrc.sh
-            cd $WORKSPACE
-
-
-            echo "Running QTIP dhrystone with First Test case"
-            ./QTIP.sh First dhrystone
-
-
 - builder:
-    name: qtip-dhrystone-BM_vs_BM
-
+    name: qtip-run-suite
     builders:
         - shell: |
-            #!/bin/bash
-
-
-            if [[ ! -f $HOME/opnfv-openrc.sh]]; then
-               echo "Unable to access file $HOME/opnfv-openrc.sh"
-               exit 1
-            fi
-            source $HOME/opnfv-openrc.sh
-            cd $WORKSPACE
+            #! /bin/bash
+            QTIP_REPO=/home/opnfv/repos/qtip
+            docker exec -t ${container_id} $QTIP_REPO/docker/run_qtip.sh
 
 
-            echo "Running QTIP dhrystone with Second Test case"
-            ./QTIP.sh Second dhrystone
+- builder:
+    name: qtip-cleanup
+    builders:
+        - shell: |
+            #! /bin/bash
 
+             echo "Cleaning up QTIP  docker containers/images..."
+              # Remove previous running containers if exist
+             if [[ ! -z $(docker ps -a | grep opnfv/qtip) ]]; then
+                 echo "Removing existing opnfv/qtip containers..."
+                 running_containers= $(docker ps | grep opnfv/qtip | awk '{print $1}')
+                 docker stop ${running_containers}
+                 all_containers= $(docker ps -a | grep opnfv/qtip | awk '{print $1}')
+                 docker rm ${all_containers}
+             fi
+
+             # Remove existing images if exist
+             if [[ ! -z $(docker images | grep opnfv/qtip) ]]; then
+                 echo "Docker images to remove:"
+                 docker images | head -1 && docker images | grep opnfv/qtip
+                 image_tags=($(docker images | grep opnfv/qtip | awk '{print $2}'))
+                 for tag in "${image_tags[@]}"; do
+                     echo "Removing docker image opnfv/qtip:$tag..."
+                     docker rmi opnfv/qtip:$tag
+                 done
+             fi
 
 - builder:
     name: qtip-fetch-os-cred
     builders:
         - shell: |
-            !include-raw ../../utils/fetch_os_creds.sh
+
+
+            echo $HOME
+            echo $WORKSPACE
+            cd $WORKSPACE
+            git clone https://gerrit.opnfv.org/gerrit/releng
+            cd $WORKSPACE/releng/utils
+            #./fetch_os_creds.sh                  #To test the problem with creating the file in $HOME
+            ./fetch_os_creds.sh -d $WORKSPACE/opnfv-stack.sh    #To test if  the file can be created in $WORKSPACE