- 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-{installer}-{stream}' - 'yardstick-merge' - 'yardstick-verify' # stream: branch with - in place of / (eg. stable-helium) # branch: branch (eg. stable/helium) 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: 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 ./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 ./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