Merge "jjb: fix output path in docs uploader"
[releng.git] / jjb / yardstick / yardstick.yml
index a961903..b384102 100644 (file)
@@ -1,18 +1,23 @@
 - project:
     name: yardstick
 
-    installer:
-        - fuel:
+    project: 'yardstick'
+
+    pod:
+        - lf:
             node: 'opnfv-jump-2'
             installer_type: 'fuel'
             installer_ip: '10.20.0.2'
-        - foreman:
-            node: 'opnfv-jump-2'
-            installer_type: 'foreman'
-            installer_ip: '172.30.10.73'
+        - ericsson:
+            node: 'yardstick-pod'
+            installer_type: 'fuel'
+            installer_ip: '10.20.0.2'
+
+    installer:
+        - fuel
 
     jobs:
-        - 'yardstick-{installer}-{stream}'
+        - 'yardstick-{installer}-{pod}-{stream}'
         - 'yardstick-merge'
         - 'yardstick-verify'
 
     stream:
         - master:
             branch: 'master'
-        - stable-arno:
-            branch: 'stable/arno'
-            gs-pathname: '/arno'
-
-    project: 'yardstick'
 
 - job-template:
     name: 'yardstick-verify'
 
-    project-type: freestyle
-
     node: ericsson-build
 
     logrotate:
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
     #
     # This job's purpose is to update all the JJB
 
-    project-type: freestyle
-
     node: ericsson-build
 
     logrotate:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             deactivate
 
 - job-template:
-    name: 'yardstick-{installer}-{stream}'
-
-    project-type: freestyle
+    name: 'yardstick-{installer}-{pod}-{stream}'
 
     disabled: false
 
     parameters:
         - project-parameter:
             project: '{project}'
+        - '{pod}-parameters'
+        - string:
+            name: POD_NAME
+            default: '{pod}'
+            description: "POD where the job runs"
         - string:
             name: INSTALLER_TYPE
             default: '{installer_type}'
         artifactDaysToKeep: -1
         artifactNumToKeep: -1
 
+    triggers:
+        - 'yardstick-trigger-{pod}'
+
     builders:
         - 'yardstick-fetch-os-creds'
         - 'yardstick-daily'
 
     publishers:
         - email:
-            recipients: ana.cunha@ericsson.com
+            recipients: ana.cunha@ericsson.com jorgen.w.karlsson@ericsson.com
 
 ########################
 # builder macros
     builders:
         - shell: |
             #!/bin/bash
-             set -o errexit
-             set -o pipefail
+            set -o errexit
 
-            echo "Yardstick: prepare Yardstick environment"
+            echo "Yardstick: Run benchmark test suites ..."
 
-            # 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
+            # Remove old containers
+            docker ps | grep opnfv/yardstick-ci |\
+                awk '{print $1}' | xargs -r docker stop &>/dev/null
+            docker ps -a | grep opnfv/yardstick-ci |\
+                awk '{print $1}' | xargs -r  docker rm &>/dev/null
 
-            # Emergency fix for glance '--is-public' error.
-            # TODO: This should maybe go into openrc instead!?
-            export OS_IMAGE_API_VERSION=1
+            # Make sure we have latest image
+            docker pull opnfv/yardstick-ci
 
-            # Install required packages. 
-            # 'libguestfs-tools' is needed when building the yardstick image.
-            sudo yum -y install libguestfs-tools
+            docker run \
+               --privileged=true \
+                --rm \
+                -t \
+                -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+                -e "INSTALLER_IP=${INSTALLER_IP}" \
+                opnfv/yardstick-ci \
+                run_benchmarks
 
-            # set virtualenv
-            echo "Yardstick: setup virtualenv"
-            cd $WORKSPACE
-            virtualenv $WORKSPACE/yardstick_venv
-            source $WORKSPACE/yardstick_venv/bin/activate
-            easy_install -U setuptools
-            python setup.py develop > /dev/null 2>&1
-
-            echo "Yardstick: configure the images"
-            # check if cirros-0.3.3 image is already available
-            # if not, create the image
-            IMAGE_NAMES[0]=cirros-0.3.3
-            if ! nova image-show ${IMAGE_NAMES[0]} > /dev/null 2>&1; then
-                echo "Image ${IMAGE_NAMES[0]} doesn't exist. Creating image ${IMAGE_NAMES[0]}"
-                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
-            fi
-
-            # check if yardstick-trusty image is already available
-            # if not, create the image to $WORKSPACE
-            IMAGE_NAMES[1]=yardstick-trusty-server
-            if ! nova image-show ${IMAGE_NAMES[1]} > /dev/null 2>&1; then
-                echo "Image ${IMAGE_NAMES[1]} doesn't exist. Creating image ${IMAGE_NAMES[1]}"
-                sudo $(which yardstick-img-modify) $WORKSPACE/tools/ubuntu-server-cloudimg-modify.sh
-                glance image-create --name yardstick-trusty-server --is-public true --disk-format qcow2 --container-format bare --file $WORKSPACE/yardstick-trusty-server.img
-            fi
-
-            # execute tasks
-            echo "Yardstick: execute scenarios"
-            ./ci/run_tasks.sh
-
-            # cleanup
-            echo "Yardstick: cleanup"
-            for IMAGE_NAME in ${IMAGE_NAMES[@]}
-            do
-                glance image-delete $IMAGE_NAME
-            done
-
-            # done
             echo "Yardstick: done!"
 
 - builder:
     builders:
         - shell:
             !include-raw ../../utils/fetch_os_creds.sh
+
+########################
+# parameter macros
+########################
+- parameter:
+    name: 'ericsson-parameters'
+    parameters:
+        - 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."
+
+- parameter:
+    name: 'lf-parameters'
+    parameters:
+        - string:
+            name: GIT_BASE
+            default: ssh://gerrit.opnfv.org:29418/$PROJECT
+            description: "URL for LF POD"
+
+########################
+# trigger macros
+########################
+- trigger:
+    name: 'yardstick-trigger-ericsson'
+    triggers:
+        - timed: '@midnight'
+
+- trigger:
+    name: 'yardstick-trigger-lf'
+    triggers:
+        - timed: '#@midnight'