- 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: - master: branch: 'master' 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' project-type: freestyle node: ericsson-build logrotate: daysToKeep: 30 numToKeep: 10 artifactDaysToKeep: -1 artifactNumToKeep: -1 parameters: - project-parameter: project: '{project}' - gerrit-parameter: branch: 'master' - 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: '$GERRIT_REFSPEC' choosing-strategy: 'gerrit' wrappers: - ssh-agent-credentials: user: '{ssh-credentials}' triggers: - gerrit: trigger-on: - patchset-created-event: exclude-drafts: 'false' exclude-trivial-rebase: 'false' exclude-no-code-change: 'false' - draft-published-event - comment-added-contains-event: comment-contains-value: 'recheck' - comment-added-contains-event: comment-contains-value: 'reverify' projects: - project-compare-type: 'ANT' project-pattern: 'yardstick' branches: - branch-compare-type: 'ANT' branch-pattern: '**/master' 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 > /dev/null 2>&1 ./run_tests.sh deactivate - job-template: name: 'yardstick-merge' # builder-merge job to run JJB update # # This job's purpose is to update all the JJB project-type: freestyle node: ericsson-build logrotate: daysToKeep: 30 numToKeep: 40 artifactDaysToKeep: -1 artifactNumToKeep: 5 parameters: - project-parameter: project: '{project}' - gerrit-parameter: branch: 'master' - 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: 'yardstick' branches: - branch-compare-type: 'ANT' branch-pattern: '**/master' 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 > /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