- project:
name: yardstick
- jobs:
- - 'yardstick-{pod}'
- - 'yardstick-daily-{stream}'
- - 'yardstick-merge'
- - 'yardstick-verify'
+
+ project: '{name}'
pod:
- - 'opnfv-jump-1'
- - 'opnfv-jump-2'
+ - opnfv-jump-2:
+ installer: fuel
+ - ericsson-pod1:
+ installer: fuel
+ - huawei-us-deploy-bare-1:
+ installer: compass
+
+ loop:
+ - daily
+
+ jobs:
+ - 'yardstick-{installer}-{pod}-{loop}-{stream}'
+ - 'yardstick-merge-{stream}'
+ - 'yardstick-verify-{stream}'
- # stream: branch with - in place of / (eg. stable-helium)
- # branch: branch (eg. stable/helium)
stream:
- master:
branch: 'master'
-
- project: 'yardstick'
- somevar: 'foo'
+ gs-pathname: ''
+# - brahmaputra:
+# branch: 'stable/brahmaputra'
+# gs-pathname: '/brahmaputra'
- 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
+ name: 'yardstick-verify-{stream}'
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."
+ branch: '{branch}'
+ - 'ericsson-ca-build-1-defaults'
scm:
- gerrit-trigger-scm:
refspec: '$GERRIT_REFSPEC'
choosing-strategy: 'gerrit'
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
-
triggers:
- gerrit:
trigger-on:
comment-contains-value: 'reverify'
projects:
- project-compare-type: 'ANT'
- project-pattern: 'yardstick'
+ project-pattern: '{project}'
branches:
- branch-compare-type: 'ANT'
- branch-pattern: '**/master'
+ branch-pattern: '**/{branch}'
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
+ name: 'yardstick-merge-{stream}'
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."
+ branch: '{branch}'
+ - 'ericsson-ca-build-1-defaults'
scm:
- gerrit-trigger-scm:
refspec: ''
choosing-strategy: 'default'
- wrappers:
- - ssh-agent-credentials:
- user: '{ssh-credentials}'
-
triggers:
- gerrit:
trigger-on:
comment-contains-value: 'remerge'
projects:
- project-compare-type: 'ANT'
- project-pattern: 'yardstick'
+ project-pattern: '{project}'
branches:
- branch-compare-type: 'ANT'
- branch-pattern: '**/master'
+ branch-pattern: '**/{branch}'
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-{pod}'
-
- project-type: freestyle
+ name: 'yardstick-{installer}-{pod}-{loop}-{stream}'
disabled: false
- node: '{pod}'
-
parameters:
- project-parameter:
project: '{project}'
+ - '{pod}-defaults'
+ - '{installer}-defaults'
+ - 'yardstick-params-{pod}'
+ - string:
+ name: YARDSTICK_SUITE_NAME
+ default: opnfv_${{NODE_NAME}}_{loop}.yaml
+ description: 'Path to test suite'
scm:
- git-scm:
refspec: ''
branch: master
- logrotate:
- daysToKeep: 30
- numToKeep: 10
- artifactDaysToKeep: -1
- artifactNumToKeep: -1
+ triggers:
+ - 'yardstick-trigger-{pod}'
builders:
- - 'yardstick-ping'
+ - 'yardstick-cleanup'
+ - 'yardstick-fetch-os-creds'
+ - 'yardstick-daily'
+
+ publishers:
+ - email:
+ recipients: ana.cunha@ericsson.com jorgen.w.karlsson@ericsson.com
########################
# builder macros
########################
- builder:
- name: yardstick-ping
+ name: yardstick-daily
builders:
- shell: |
#!/bin/bash
- set -o errexit
- set -o pipefail
-
- echo "Yardstick: prepare Yardstick environment"
-
- # source openstack vars
- source $HOME/yardstick/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 -o errexit
- # 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
+ echo "Yardstick: Run benchmark test suites ..."
- # set virtualenv
- echo "Yardstick: execute ping scenario"
- yardstick -v -d samples/ping.yaml
+ # Pull the latest image
+ docker pull opnfv/yardstick
- # cleanup
- echo "Yardstick: cleanup"
- glance image-delete $IMAGE_NAME
+ docker run \
+ --privileged=true \
+ --rm \
+ -t \
+ -e "INSTALLER_TYPE=${INSTALLER_TYPE}" \
+ -e "INSTALLER_IP=${INSTALLER_IP}" \
+ -e "POD_NAME=${NODE_NAME}" \
+ -e "EXTERNAL_NETWORK=net04_ext" \
+ opnfv/yardstick \
+ run_tests.sh \
+ $YARDSTICK_SUITE_NAME
- # done
echo "Yardstick: done!"
+
+- builder:
+ name: yardstick-fetch-os-creds
+ builders:
+ - shell:
+ !include-raw ../../utils/fetch_os_creds.sh
+
+- builder:
+ name: yardstick-cleanup
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ echo "Cleaning up docker containers/images..."
+
+ # Remove previous running containers if exist
+ if [[ ! -z $(docker ps -a | grep opnfv/yardstick) ]]; then
+ echo "Removing existing opnfv/yardstick containers..."
+ docker ps | grep opnfv/yardstick | awk '{print $1}' | xargs docker stop
+ docker ps -a | grep opnfv/yardstick | awk '{print $1}' | xargs docker rm
+ fi
+
+ # Remove existing images if exist
+ if [[ ! -z $(docker images | grep opnfv/yardstick) ]]; then
+ echo "Docker images to remove:"
+ docker images | head -1 && docker images | grep opnfv/yardstick
+ image_tags=($(docker images | grep opnfv/yardstick | awk '{print $2}'))
+ for tag in "${image_tags[@]}"; do
+ echo "Removing docker image opnfv/yardstick:$tag..."
+ docker rmi opnfv/yardstick:$tag
+ done
+ fi
+########################
+# parameter macros
+########################
+- parameter:
+ name: 'yardstick-params-ericsson-pod1'
+ parameters:
+ - string:
+ name: YARDSTICK_DB_BACKEND
+ default: 'none'
+ description: 'Arguments to use in order to choose the backend DB'
+
+- parameter:
+ name: 'yardstick-params-opnfv-jump-2'
+ parameters:
+ - string:
+ name: YARDSTICK_DB_BACKEND
+ default: 'db_args'
+ description: 'Arguments to use in order to choose the backend DB'
+
+- parameter:
+ name: 'yardstick-params-huawei-us-deploy-bare-1'
+ parameters:
+ - string:
+ name: YARDSTICK_DB_BACKEND
+ default: 'none'
+ description: 'Arguments to use in order to choose the backend DB'
+########################
+# trigger macros
+########################
+- trigger:
+ name: 'yardstick-trigger-ericsson-pod1'
+ triggers:
+ - timed: '@midnight'
+
+- trigger:
+ name: 'yardstick-trigger-opnfv-jump-2'
+ triggers:
+ - timed: '#@midnight'
+
+- trigger:
+ name: 'yardstick-trigger-huawei-us-deploy-bare-1'
+ triggers:
+ - timed: '#@midnight'