From 3218544e4b387cfcf8b6cfe09b2bfca067cec02f Mon Sep 17 00:00:00 2001 From: Fatih Degirmenci Date: Mon, 21 Dec 2015 10:50:43 +0100 Subject: Refactor yardstick JJB to prepare for Milestone E Replace default stream definitions with stream anchors in order to be able to specify which job on which POD runs against which branch. Move project specific verify and merge jobs to own file to ease the stream handling. Change-Id: I504978402d2d9e305357846806a9f81d3f17a27b Signed-off-by: Fatih Degirmenci --- jjb/yardstick/yardstick-ci-jobs.yml | 205 ++++++++++++++++++++++++ jjb/yardstick/yardstick-project-jobs.yml | 118 ++++++++++++++ jjb/yardstick/yardstick.yml | 260 ------------------------------- 3 files changed, 323 insertions(+), 260 deletions(-) create mode 100644 jjb/yardstick/yardstick-ci-jobs.yml create mode 100644 jjb/yardstick/yardstick-project-jobs.yml delete mode 100644 jjb/yardstick/yardstick.yml diff --git a/jjb/yardstick/yardstick-ci-jobs.yml b/jjb/yardstick/yardstick-ci-jobs.yml new file mode 100644 index 000000000..470bf68b9 --- /dev/null +++ b/jjb/yardstick/yardstick-ci-jobs.yml @@ -0,0 +1,205 @@ +################################### +# job configuration for functest +################################### +- project: + name: yardstick + + project: '{name}' + +#-------------------------------- +# BRANCH ANCHORS +#-------------------------------- + master: &master + stream: master + branch: '{stream}' + gs-pathname: '' + brahmaputra: &brahmaputra + stream: brahmaputra + branch: 'stable/{stream}' + gs-pathname: '{stream}' +#-------------------------------- +# POD, INSTALLER, AND BRANCH MAPPING +#-------------------------------- +# Current Mapping +#-------------------------------- +# everything runs against master branch +#-------------------------------- + pod: + - opnfv-jump-2: + installer: fuel + <<: *master + - ericsson-pod1: + installer: fuel + <<: *master + - ericsson-pod2: + installer: fuel + <<: *master + - huawei-us-deploy-bare-1: + installer: compass + <<: *master +#-------------------------------- +# Milestone E Mapping +# !!!DO NOT ENABLE!!! +#-------------------------------- +# brahmaputra +#-------------------------------- +# - huawei-us-deploy-bare-1: +# installer: compass +# <<: *brahmaputra +# - intel-pod5: +# installer: joid +# <<: *brahmaputra +# - opnfv-jump-1: +# installer: apex +# <<: *brahmaputra +# - opnfv-jump-2: +# installer: fuel +# <<: *brahmaputra +#-------------------------------- +# master +#-------------------------------- +# - ericsson-pod1: +# installer: fuel +# <<: *master +# - ericsson-pod2: +# installer: fuel +# <<: *master +#-------------------------------- + loop: + - daily + + jobs: + - 'yardstick-{installer}-{pod}-{loop}-{stream}' + +################################ +# job templates +################################ +- job-template: + name: 'yardstick-{installer}-{pod}-{loop}-{stream}' + + disabled: false + + wrappers: + - build-name: + name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Feature: $OPNFV_FEATURE' + + 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: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + builders: + - '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-daily + builders: + - shell: | + #!/bin/bash + set -o errexit + + echo "Yardstick: Run benchmark test suites ..." + + # Pull the latest image + docker pull opnfv/yardstick + + 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 + + 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-ericsson-pod2' + 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' diff --git a/jjb/yardstick/yardstick-project-jobs.yml b/jjb/yardstick/yardstick-project-jobs.yml new file mode 100644 index 000000000..193b69284 --- /dev/null +++ b/jjb/yardstick/yardstick-project-jobs.yml @@ -0,0 +1,118 @@ +################################################### +# All the jobs except verify have been removed! +# They will only be enabled on request by projects! +################################################### +- project: + name: yardstick-project-jobs + + project: 'yardstick' + + jobs: + - 'yardstick-verify-{stream}' + - 'yardstick-merge-{stream}' + +# only master branch is enabled at the moment to keep no of jobs sane + stream: + - master: + branch: 'master' + gs-pathname: '' +# - brahmaputra: +# branch: 'stable/brahmaputra' +# gs-pathname: '/brahmaputra' + +################################ +# job templates +################################ + +- job-template: + name: 'yardstick-verify-{stream}' + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - 'ericsson-ca-build-1-defaults' + + scm: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + 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: '{project}' + branches: + - branch-compare-type: 'ANT' + 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-{stream}' + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - 'ericsson-ca-build-1-defaults' + + scm: + - gerrit-trigger-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + choosing-strategy: 'default' + + triggers: + - gerrit: + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + 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 diff --git a/jjb/yardstick/yardstick.yml b/jjb/yardstick/yardstick.yml deleted file mode 100644 index e5c306a56..000000000 --- a/jjb/yardstick/yardstick.yml +++ /dev/null @@ -1,260 +0,0 @@ -- project: - name: yardstick - - project: '{name}' - - pod: - - 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: - - master: - branch: 'master' - gs-pathname: '' -# - brahmaputra: -# branch: 'stable/brahmaputra' -# gs-pathname: '/brahmaputra' - -- job-template: - name: 'yardstick-verify-{stream}' - - parameters: - - project-parameter: - project: '{project}' - - gerrit-parameter: - branch: '{branch}' - - 'ericsson-ca-build-1-defaults' - - scm: - - gerrit-trigger-scm: - credentials-id: '{ssh-credentials}' - refspec: '$GERRIT_REFSPEC' - choosing-strategy: 'gerrit' - - 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: '{project}' - branches: - - branch-compare-type: 'ANT' - 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-{stream}' - - parameters: - - project-parameter: - project: '{project}' - - gerrit-parameter: - branch: '{branch}' - - 'ericsson-ca-build-1-defaults' - - scm: - - gerrit-trigger-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - choosing-strategy: 'default' - - triggers: - - gerrit: - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - 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-{installer}-{pod}-{loop}-{stream}' - - disabled: false - - 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: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: master - - triggers: - - 'yardstick-trigger-{pod}' - - builders: - - '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-daily - builders: - - shell: | - #!/bin/bash - set -o errexit - - echo "Yardstick: Run benchmark test suites ..." - - # Pull the latest image - docker pull opnfv/yardstick - - 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 - - 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' -- cgit 1.2.3-korg