- project:
name: yardstick
+
+ installer:
+ - fuel:
+ 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'
+
jobs:
- - 'yardstick-daily-{stream}'
+ - 'yardstick-{installer}-{stream}'
- 'yardstick-merge'
- 'yardstick-verify'
stream:
- master:
branch: 'master'
+ - stable-arno:
+ branch: 'stable/arno'
+ gs-pathname: '/arno'
project: 'yardstick'
- somevar: 'foo'
-
-- job-template:
- name: 'yardstick-daily-{stream}'
-
- # Job template for daily builders
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
- # branch: branch (eg. stable)
-
- node: ericsson-build
-
- 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}'
-
- parameters:
- - project-parameter:
- project: '{project}'
- - 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:
- - git-scm:
- credentials-id: '{ssh-credentials}'
- refspec: ''
- branch: '{branch}'
-
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
-
- triggers:
- - timed: 'H H * * *'
-
- prebuilders:
- - test-macro
-
- builders:
- - shell: |
- pwd
- find .
- echo "Hello world from yardstick {somevar} daily"
-
- postbuilders:
- - test-macro
- job-template:
name: 'yardstick-verify'
builders:
- shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o pipefail
+
echo "Running unit tests..."
cd $WORKSPACE
+ virtualenv $WORKSPACE/yardstick_venv
+ source $WORKSPACE/yardstick_venv/bin/activate
+ easy_install -U setuptools
+ python setup.py develop
./run_tests.sh
+ deactivate
- job-template:
name: 'yardstick-merge'
builders:
- shell: |
+ #!/bin/bash
+ set -o errexit
+ set -o pipefail
+
echo "Running unit tests..."
cd $WORKSPACE
+ virtualenv $WORKSPACE/yardstick_venv
+ source $WORKSPACE/yardstick_venv/bin/activate
+ easy_install -U setuptools
+ python setup.py develop
./run_tests.sh
+ deactivate
+
+- job-template:
+ name: 'yardstick-{installer}-{stream}'
+
+ 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-daily'
+
+ publishers:
+ - email:
+ recipients: ana.cunha@ericsson.com
+
+########################
+# builder macros
+########################
+- builder:
+ name: yardstick-daily
+ 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
+
+ # Emergency fix for glance '--is-public' error.
+ # TODO: This should maybe go into openrc instead!?
+ export OS_IMAGE_API_VERSION=1
+
+ # Install required packages.
+ # 'qemu-nbd' is needed when building the yardstick image.
+ sudo yum -y install qemu-img
+
+ # 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:
+ name: yardstick-fetch-os-creds
+ builders:
+ - shell:
+ !include-raw ../../utils/fetch_os_creds.sh