Use bash in yardstick execute shells of verify and merge jobs
[releng.git] / jjb / yardstick / yardstick.yml
index d25d851..b11f006 100644 (file)
@@ -1,10 +1,21 @@
 - project:
     name: yardstick
     jobs:
+        - 'yardstick-{pod}'
         - 'yardstick-daily-{stream}'
         - 'yardstick-merge'
         - 'yardstick-verify'
 
+    pod:
+        - opnfv-jump-1:
+            node: 'opnfv-jump-1'
+            installer_type: 'fuel'
+            installer_ip: '10.20.0.2'
+        - opnfv-jump-2:
+            node: 'opnfv-jump-2'
+            installer_type: 'foreman'
+            installer_ip: '172.30.10.73'
+
     # stream:    branch with - in place of / (eg. stable-helium)
     # branch:    branch (eg. stable/helium)
     stream:
 
     builders:
         - shell: |
+            #!/bin/bash
+
             echo "Running unit tests..."
             cd $WORKSPACE
+            virtualenv $WORKSPACE/yardstick_venv
+            source $WORKSPACE/yardstick_venv/bin/activate
+            python setup.py develop > /dev/null 2>&1
             ./run_tests.sh
+            deactivate
 
 - job-template:
     name: 'yardstick-merge'
 
     builders:
         - shell: |
+            #!/bin/bash
+
             echo "Running unit tests..."
             cd $WORKSPACE
+            virtualenv $WORKSPACE/yardstick_venv
+            source $WORKSPACE/yardstick_venv/bin/activate
+            python setup.py develop > /dev/null 2>&1
             ./run_tests.sh
+            deactivate
+
+- job-template:
+    name: 'yardstick-{pod}'
+
+    project-type: freestyle
+
+    disabled: false
+
+    node: '{node}'
+
+    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: "Installer IP."
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: master
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    builders:
+        - 'yardstick-fetch-os-creds'
+        - 'yardstick-ping'
+
+########################
+# builder macros
+########################
+- builder:
+    name: yardstick-ping
+    builders:
+        - shell: |
+            #!/bin/bash
+             set -o errexit
+             set -o pipefail
+
+            echo "Yardstick: prepare Yardstick environment"
+
+            # source openstack vars
+            if [[ ! -f $HOME/opnfv-openrc.sh ]]; then
+                echo "Unable to access file $HOME/opnfv-openrc.sh"
+                exit 1
+            fi
+            source $HOME/opnfv-openrc.sh
+
+            # check if cirros-0.3.3 image is already available
+            # if not, create the image
+            echo "Yardstick: configure the image"
+            IMAGE_NAME=cirros-0.3.3
+            if [[ ! $(nova image-show $IMAGE_NAME > /dev/null 2>&1) ]]; then
+                echo "Image $IMAGE_NAME doesn't exist. Creating image $IMAGE_NAME"
+                glance image-create --name cirros-0.3.3 --is-public true --disk-format qcow2 --container-format bare --file $HOME/yardstick/cirros-0.3.3-x86_64-disk.img
+            else
+                echo "Image $IMAGE_NAME exists. Proceeding with yardstick."
+            fi
+
+            # set virtualenv
+            echo "Yardstick: setup virtualenv"
+            cd $WORKSPACE
+            virtualenv $WORKSPACE/yardstick_venv
+            source $WORKSPACE/yardstick_venv/bin/activate
+            python setup.py develop > /dev/null 2>&1
+
+            # set virtualenv
+            echo "Yardstick: execute ping scenario"
+            yardstick task start samples/ping.yaml -v -d
+
+            # cleanup
+            echo "Yardstick: cleanup"
+            glance image-delete $IMAGE_NAME
+
+            # done
+            echo "Yardstick: done!"
+
+- builder:
+    name: yardstick-fetch-os-creds
+    builders:
+        - shell:
+            !include-raw ../../utils/fetch_os_creds.sh