From 2093734a5e12c8b64f174b6f7271c8e9aaf1e882 Mon Sep 17 00:00:00 2001 From: Fatih Degirmenci Date: Thu, 2 Mar 2017 17:01:24 +0100 Subject: functest: Create functest-weekly prototype jobs Fuel weekly jobs are created, calling fuel-deploy and functest weekly jobs. Experimental scripts have also been removed. Change-Id: If492443e26248731df35e6b6cb5239fb2ae9a86a Signed-off-by: Fatih Degirmenci --- jjb/fuel/fuel-basic-exp.sh | 18 -- jjb/fuel/fuel-build-exp.sh | 10 - jjb/fuel/fuel-daily-jobs.yml | 4 +- jjb/fuel/fuel-deploy-exp.sh | 10 - jjb/fuel/fuel-deploy.sh | 2 +- jjb/fuel/fuel-smoke-test-exp.sh | 10 - jjb/fuel/fuel-verify-jobs-experimental.yml | 255 ------------------ jjb/fuel/fuel-weekly-jobs.yml | 210 +++++++++++++++ jjb/functest/functest-ci-jobs.yml | 401 ----------------------------- jjb/functest/functest-daily-jobs.yml | 378 +++++++++++++++++++++++++++ jjb/functest/functest-weekly-jobs.yml | 124 +++++++++ 11 files changed, 715 insertions(+), 707 deletions(-) delete mode 100755 jjb/fuel/fuel-basic-exp.sh delete mode 100755 jjb/fuel/fuel-build-exp.sh delete mode 100755 jjb/fuel/fuel-deploy-exp.sh delete mode 100755 jjb/fuel/fuel-smoke-test-exp.sh delete mode 100644 jjb/fuel/fuel-verify-jobs-experimental.yml create mode 100644 jjb/fuel/fuel-weekly-jobs.yml delete mode 100644 jjb/functest/functest-ci-jobs.yml create mode 100644 jjb/functest/functest-daily-jobs.yml create mode 100644 jjb/functest/functest-weekly-jobs.yml diff --git a/jjb/fuel/fuel-basic-exp.sh b/jjb/fuel/fuel-basic-exp.sh deleted file mode 100755 index a70a0c765..000000000 --- a/jjb/fuel/fuel-basic-exp.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -set -o nounset - -echo "-----------------------------------------------------------------------" -echo $GERRIT_CHANGE_COMMIT_MESSAGE -echo "-----------------------------------------------------------------------" - -# proposal for specifying the scenario name in commit message -# currently only 1 scenario name is supported but depending on -# the need, it can be expanded, supporting multiple scenarios -# using comma separated list or something -SCENARIO_NAME_PATTERN="(?<=@scenario:).*?(?=@)" -SCENARIO_NAME=(echo $GERRIT_CHANGE_COMMIT_MESSAGE | grep -oP "$SCENARIO_NAME_PATTERN") -if [[ $? -ne 0 ]]; then - echo "The patch verification will be done only with build!" -else - echo "Will run full verification; build, deploy, and smoke test using scenario $SCENARIO_NAME" -fi diff --git a/jjb/fuel/fuel-build-exp.sh b/jjb/fuel/fuel-build-exp.sh deleted file mode 100755 index f7f613dc0..000000000 --- a/jjb/fuel/fuel-build-exp.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [[ "$JOB_NAME" =~ (verify|merge|daily|weekly) ]]; then - JOB_TYPE=${BASH_REMATCH[0]} -else - echo "Unable to determine job type!" - exit 1 -fi - -echo "Not activated!" diff --git a/jjb/fuel/fuel-daily-jobs.yml b/jjb/fuel/fuel-daily-jobs.yml index 237855236..975c9ca82 100644 --- a/jjb/fuel/fuel-daily-jobs.yml +++ b/jjb/fuel/fuel-daily-jobs.yml @@ -158,7 +158,7 @@ builders: - description-setter: - description: "POD: $NODE_NAME" + description: "Built on $NODE_NAME" - trigger-builds: - project: 'fuel-deploy-{pod}-daily-{stream}' current-parameters: false @@ -240,7 +240,7 @@ builders: - description-setter: - description: "POD: $NODE_NAME" + description: "Built on $NODE_NAME" - shell: !include-raw-escape: ./fuel-download-artifact.sh - shell: diff --git a/jjb/fuel/fuel-deploy-exp.sh b/jjb/fuel/fuel-deploy-exp.sh deleted file mode 100755 index f7f613dc0..000000000 --- a/jjb/fuel/fuel-deploy-exp.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [[ "$JOB_NAME" =~ (verify|merge|daily|weekly) ]]; then - JOB_TYPE=${BASH_REMATCH[0]} -else - echo "Unable to determine job type!" - exit 1 -fi - -echo "Not activated!" diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh index 4efccd611..f5bbd1818 100755 --- a/jjb/fuel/fuel-deploy.sh +++ b/jjb/fuel/fuel-deploy.sh @@ -95,7 +95,7 @@ echo "Deployment is done!" # upload logs for baremetal deployments # work with virtual deployments is still going on so we skip that for the timebeing -if [[ "$JOB_NAME" =~ "baremetal-daily" ]]; then +if [[ "$JOB_NAME" =~ (baremetal-daily|baremetal-weekly) ]]; then echo "Uploading deployment logs" gsutil cp $WORKSPACE/$FUEL_LOG_FILENAME gs://$GS_URL/logs/$FUEL_LOG_FILENAME > /dev/null 2>&1 echo "Logs are available as http://$GS_URL/logs/$FUEL_LOG_FILENAME" diff --git a/jjb/fuel/fuel-smoke-test-exp.sh b/jjb/fuel/fuel-smoke-test-exp.sh deleted file mode 100755 index f7f613dc0..000000000 --- a/jjb/fuel/fuel-smoke-test-exp.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [[ "$JOB_NAME" =~ (verify|merge|daily|weekly) ]]; then - JOB_TYPE=${BASH_REMATCH[0]} -else - echo "Unable to determine job type!" - exit 1 -fi - -echo "Not activated!" diff --git a/jjb/fuel/fuel-verify-jobs-experimental.yml b/jjb/fuel/fuel-verify-jobs-experimental.yml deleted file mode 100644 index ae6458021..000000000 --- a/jjb/fuel/fuel-verify-jobs-experimental.yml +++ /dev/null @@ -1,255 +0,0 @@ -- project: - # TODO: rename the project name - # TODO: get rid of appended -exp from the remainder of the file - name: 'fuel-verify-jobs-experimental' - - project: 'fuel' - - installer: 'fuel' -#------------------------------------ -# branch definitions -#------------------------------------ - # TODO: enable master once things settle - stream-exp: - - experimental: - branch: 'stable/{stream-exp}' - gs-pathname: '/{stream-exp}' - disabled: false -#------------------------------------ -# patch verification phases -#------------------------------------ - phase: - - 'basic': - # this phase does basic commit message check, unit test and so on - slave-label: 'opnfv-build' - - 'build': - # this phase builds artifacts if valid for given installer - slave-label: 'opnfv-build-ubuntu' - - 'deploy-virtual': - # this phase does virtual deployment using the artifacts produced in previous phase - slave-label: 'fuel-virtual' - - 'smoke-test': - # this phase runs functest smoke test - slave-label: 'fuel-virtual' -#------------------------------------ -# jobs -#------------------------------------ - jobs: - - 'fuel-verify-{stream-exp}' - - 'fuel-verify-{phase}-{stream-exp}' -#------------------------------------ -# job templates -#------------------------------------ -- job-template: - name: 'fuel-verify-{stream-exp}' - - project-type: multijob - - disabled: '{obj:disabled}' - - # TODO: this is valid for experimental only - # enable concurrency for master once things settle - concurrent: false - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - option: 'project' - - scm: - - git-scm-gerrit - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - 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}' - file-paths: - - compare-type: ANT - pattern: 'ci/**' - - compare-type: ANT - pattern: 'build/**' - - compare-type: ANT - pattern: 'deploy/**' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - readable-message: true - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-defaults' - - 'fuel-verify-defaults-exp': - gs-pathname: '{gs-pathname}' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: basic - condition: SUCCESSFUL - projects: - - name: 'fuel-verify-basic-{stream-exp}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'fuel-verify-build-{stream-exp}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'fuel-verify-deploy-virtual-{stream-exp}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: smoke-test - condition: SUCCESSFUL - projects: - - name: 'fuel-verify-smoke-test-{stream-exp}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - -- job-template: - name: 'fuel-verify-{phase}-{stream-exp}' - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 6 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-verify-deploy-.*' - - 'fuel-verify-test-.*' - block-level: 'NODE' - - scm: - - git-scm-gerrit - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-defaults' - - '{installer}-defaults' - - 'fuel-verify-defaults-exp': - gs-pathname: '{gs-pathname}' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - '{project}-verify-{phase}-macro-exp' -#------------------------------------ -# builder macros -#------------------------------------ -- builder: - name: 'fuel-verify-basic-macro-exp' - builders: - - shell: - !include-raw: ./fuel-basic-exp.sh - -- builder: - name: 'fuel-verify-build-macro-exp' - builders: - - shell: - !include-raw: ./fuel-build-exp.sh - - shell: - !include-raw: ./fuel-workspace-cleanup.sh - -- builder: - name: 'fuel-verify-deploy-virtual-macro-exp' - builders: - - shell: - !include-raw: ./fuel-deploy-exp.sh - -- builder: - name: 'fuel-verify-smoke-test-macro-exp' - builders: - - shell: - !include-raw: ./fuel-smoke-test-exp.sh -#------------------------------------ -# parameter macros -#------------------------------------ -- parameter: - name: 'fuel-verify-defaults-exp' - parameters: - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: CACHE_DIRECTORY - default: $HOME/opnfv/cache/$INSTALLER_TYPE - description: "Directory where the cache to be used during the build is located." - - string: - name: GS_URL - default: artifacts.opnfv.org/$PROJECT{gs-pathname} - description: "URL to Google Storage." diff --git a/jjb/fuel/fuel-weekly-jobs.yml b/jjb/fuel/fuel-weekly-jobs.yml new file mode 100644 index 000000000..06d813458 --- /dev/null +++ b/jjb/fuel/fuel-weekly-jobs.yml @@ -0,0 +1,210 @@ +# jenkins job templates for Fuel +- project: + + name: fuel-weekly + + project: fuel + + installer: fuel + +#-------------------------------- +# BRANCH ANCHORS +#-------------------------------- + master: &master + stream: master + branch: '{stream}' + disabled: false + gs-pathname: '' + danube: &danube + stream: danube + branch: 'stable/{stream}' + disabled: true + gs-pathname: '/{stream}' +#-------------------------------- +# POD, INSTALLER, AND BRANCH MAPPING +#-------------------------------- +# CI PODs +#-------------------------------- + pod: + - baremetal: + slave-label: fuel-baremetal + <<: *master + - virtual: + slave-label: fuel-virtual + <<: *master + - baremetal: + slave-label: fuel-baremetal + <<: *danube + - virtual: + slave-label: fuel-virtual + <<: *danube +#-------------------------------- +# scenarios +#-------------------------------- + scenario: + # HA scenarios + - 'os-nosdn-nofeature-ha': + auto-trigger-name: 'weekly-trigger-disabled' + + jobs: + - 'fuel-{scenario}-{pod}-weekly-{stream}' + - 'fuel-deploy-{pod}-weekly-{stream}' + +######################## +# job templates +######################## +- job-template: + name: 'fuel-{scenario}-{pod}-weekly-{stream}' + + disabled: '{obj:disabled}' + + concurrent: false + + properties: + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-os-.*?-{pod}-daily-.*' + - 'fuel-os-.*?-{pod}-weekly-.*' + block-level: 'NODE' + + wrappers: + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + + triggers: + - '{auto-trigger-name}' + + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults': + installer: '{installer}' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' + - fuel-weekly-parameter: + gs-pathname: '{gs-pathname}' + + builders: + - description-setter: + description: "Built on $NODE_NAME" + - trigger-builds: + - project: 'fuel-deploy-{pod}-weekly-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + same-node: true + block: true + - trigger-builds: + - project: 'functest-fuel-{pod}-weekly-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + same-node: true + block: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' + + publishers: + - email: + recipients: peter.barabas@ericsson.com fzhadaev@mirantis.com + +- job-template: + name: 'fuel-deploy-{pod}-weekly-{stream}' + + disabled: '{obj:disabled}' + + concurrent: true + + properties: + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-deploy-{pod}-daily-.*' + - 'fuel-deploy-generic-daily-.*' + - 'fuel-deploy-{pod}-weekly-.*' + - 'fuel-deploy-generic-weekly-.*' + block-level: 'NODE' + + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults': + installer: '{installer}' + - string: + name: DEPLOY_SCENARIO + default: 'os-odl_l2-nofeature-ha' + - fuel-weekly-parameter: + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_TIMEOUT + default: '150' + description: 'Deployment timeout in minutes' + + scm: + - git-scm + + wrappers: + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + + builders: + - description-setter: + description: "Built on $NODE_NAME" + - shell: + !include-raw-escape: ./fuel-download-artifact.sh + - shell: + !include-raw-escape: ./fuel-deploy.sh + + publishers: + - email: + recipients: peter.barabas@ericsson.com fzhadaev@mirantis.com + +######################## +# parameter macros +######################## +- parameter: + name: fuel-weekly-parameter + parameters: + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: CACHE_DIRECTORY + default: $HOME/opnfv/cache/$INSTALLER_TYPE + description: "Directory where the cache to be used during the build is located." + - string: + name: GS_URL + default: artifacts.opnfv.org/$PROJECT{gs-pathname} + description: "URL to Google Storage." +######################## +# trigger macros +######################## +#----------------------------------------------- +# Triggers for job running on fuel-baremetal against master branch +#----------------------------------------------- +# HA Scenarios +- trigger: + name: 'fuel-os-nosdn-nofeature-ha-baremetal-weekly-master-trigger' + triggers: + - timed: '' diff --git a/jjb/functest/functest-ci-jobs.yml b/jjb/functest/functest-ci-jobs.yml deleted file mode 100644 index 44c2ce5db..000000000 --- a/jjb/functest/functest-ci-jobs.yml +++ /dev/null @@ -1,401 +0,0 @@ -################################### -# job configuration for functest -################################### -- project: - name: functest - - project: '{name}' - -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- - master: &master - stream: master - branch: '{stream}' - gs-pathname: '' - docker-tag: 'latest' - danube: &danube - stream: danube - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - docker-tag: 'stable' -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# Installers using labels -# CI PODs -# This section should only contain the installers -# that have been switched using labels for slaves -#-------------------------------- - pod: -# fuel CI PODs - - baremetal: - slave-label: fuel-baremetal - installer: fuel - <<: *master - - virtual: - slave-label: fuel-virtual - installer: fuel - <<: *master - - baremetal: - slave-label: fuel-baremetal - installer: fuel - <<: *danube - - virtual: - slave-label: fuel-virtual - installer: fuel - <<: *danube -# joid CI PODs - - baremetal: - slave-label: joid-baremetal - installer: joid - <<: *master - - virtual: - slave-label: joid-virtual - installer: joid - <<: *master - - baremetal: - slave-label: joid-baremetal - installer: joid - <<: *danube - - virtual: - slave-label: joid-virtual - installer: joid - <<: *danube -# compass CI PODs - - baremetal: - slave-label: compass-baremetal - installer: compass - <<: *master - - virtual: - slave-label: compass-virtual - installer: compass - <<: *master - - baremetal: - slave-label: compass-baremetal - installer: compass - <<: *danube - - virtual: - slave-label: compass-virtual - installer: compass - <<: *danube -# apex CI PODs - - apex-verify-master: - slave-label: '{pod}' - installer: apex - <<: *master - - apex-daily-master: - slave-label: '{pod}' - installer: apex - <<: *master -# - apex-verify-danube: -# slave-label: '{pod}' -# installer: apex -# <<: *danube -# - apex-daily-danube: -# slave-label: '{pod}' -# installer: apex -# <<: *danube -# armband CI PODs - - armband-baremetal: - slave-label: armband-baremetal - installer: fuel - <<: *master - - armband-virtual: - slave-label: armband-virtual - installer: fuel - <<: *master - - armband-baremetal: - slave-label: armband-baremetal - installer: fuel - <<: *danube - - armband-virtual: - slave-label: armband-virtual - installer: fuel - <<: *danube -# daisy CI PODs - - baremetal: - slave-label: daisy-baremetal - installer: daisy - <<: *master - - virtual: - slave-label: daisy-virtual - installer: daisy - <<: *master -# netvirt 3rd party ci - - virtual: - slave-label: odl-netvirt-virtual - installer: netvirt - <<: *master -#-------------------------------- -# None-CI PODs -#-------------------------------- - - orange-pod1: - slave-label: '{pod}' - installer: joid - <<: *master - - orange-pod5: - slave-label: '{pod}' - installer: fuel - <<: *master - - orange-pod2: - slave-label: '{pod}' - installer: joid - <<: *master - - baremetal-centos: - slave-label: 'intel-pod8' - installer: compass - <<: *master - - nokia-pod1: - slave-label: '{pod}' - installer: apex - <<: *master - - arm-pod2: - slave-label: '{pod}' - installer: fuel - <<: *master - - arm-pod3: - slave-label: '{pod}' - installer: fuel - <<: *master - - zte-pod1: - slave-label: '{pod}' - installer: fuel - <<: *master - - zte-pod1: - slave-label: '{pod}' - installer: fuel - <<: *danube - - zte-pod2: - slave-label: '{pod}' - installer: fuel - <<: *master - - zte-pod3: - slave-label: '{pod}' - installer: fuel - <<: *master - - zte-pod3: - slave-label: '{pod}' - installer: fuel - <<: *danube - - arm-pod2: - slave-label: '{pod}' - installer: fuel - <<: *danube - - arm-pod3: - slave-label: '{pod}' - installer: fuel - <<: *danube -# PODs for verify jobs triggered by each patch upload - - ool-virtual1: - slave-label: '{pod}' - installer: apex - <<: *master -#-------------------------------- - - testsuite: - - 'suite': - job-timeout: 60 - - 'daily': - job-timeout: 180 - - 'weekly': - job-timeout: 400 - - jobs: - - 'functest-{installer}-{pod}-{testsuite}-{stream}' - -################################ -# job template -################################ -- job-template: - name: 'functest-{installer}-{pod}-{testsuite}-{stream}' - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - wrappers: - - build-name: - name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: '{job-timeout}' - abort: true - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults' - - 'functest-{testsuite}-parameter' - - string: - name: DEPLOY_SCENARIO - default: 'os-odl_l2-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull docker image' - - string: - name: CLEAN_DOCKER_IMAGES - default: 'false' - description: 'Remove downloaded docker images (opnfv/functest*:*)' - - functest-parameter: - gs-pathname: '{gs-pathname}' - - scm: - - git-scm - - builders: - - description-setter: - description: "POD: $NODE_NAME" - - 'functest-{testsuite}-builder' - -######################## -# parameter macros -######################## -- parameter: - name: functest-daily-parameter - parameters: - - string: - name: FUNCTEST_SUITE_NAME - default: 'daily' - description: "Daily suite name to run" -- parameter: - name: functest-weekly-parameter - parameters: - - string: - name: FUNCTEST_SUITE_NAME - default: 'weekly' - description: "Weekly suite name to run" -- parameter: - name: functest-suite-parameter - parameters: - - choice: - name: FUNCTEST_SUITE_NAME - choices: - - 'healthcheck' - - 'vping_userdata' - - 'vping_ssh' - - 'tempest_smoke_serial' - - 'rally_sanity' - - 'odl' - - 'odl_netvirt' - - 'onos' - - 'promise' - - 'doctor' - - 'bgpvpn' - - 'security_scan' - - 'tempest_full_parallel' - - 'rally_full' - - 'vims' - - 'multisite' - - 'parser' - - string: - name: TESTCASE_OPTIONS - default: '' - description: 'Additional parameters specific to test case(s)' -- parameter: - name: functest-parameter - parameters: - - string: - name: GS_PATHNAME - default: '{gs-pathname}' - description: "Version directory where the opnfv documents will be stored in gs repository" - - string: - name: FUNCTEST_REPO_DIR - default: "/home/opnfv/repos/functest" - description: "Directory where the Functest repository is cloned" - - string: - name: PUSH_RESULTS_TO_DB - default: "true" - description: "Push the results of all the tests to the resultDB" - - string: - name: CI_DEBUG - default: 'false' - description: "Show debug output information" - - string: - name: RC_FILE_PATH - default: '' - description: "Path to the OS credentials file if given" -######################## -# trigger macros -######################## -- trigger: - name: 'functest-master' - triggers: - - pollscm: - cron: "H 9 * * *" -######################## -# builder macros -######################## -- builder: - name: functest-daily-builder - builders: - - 'functest-cleanup' - - 'set-functest-env' - - 'functest-daily' - - 'functest-store-results' - - 'functest-exit' - -- builder: - name: functest-weekly-builder - builders: - - 'functest-cleanup' - - 'set-functest-env' - - 'functest-weekly' - - 'functest-store-results' - - 'functest-exit' - -- builder: - name: functest-suite-builder - builders: - - 'functest-cleanup' - - 'set-functest-env' - - 'functest-suite' - -- builder: - name: functest-daily - builders: - - shell: - !include-raw: ./functest-loop.sh - -- builder: - name: functest-weekly - builders: - - shell: - !include-raw: ./functest-loop.sh - -- builder: - name: functest-suite - builders: - - shell: - !include-raw: ./functest-suite.sh - -- builder: - name: set-functest-env - builders: - - shell: - !include-raw: ./set-functest-env.sh - -- builder: - name: functest-store-results - builders: - - shell: - !include-raw: ../../utils/push-test-logs.sh - -- builder: - name: functest-cleanup - builders: - - shell: - !include-raw: ./functest-cleanup.sh - -- builder: - name: functest-exit - builders: - - shell: - !include-raw: ./functest-exit.sh diff --git a/jjb/functest/functest-daily-jobs.yml b/jjb/functest/functest-daily-jobs.yml new file mode 100644 index 000000000..5984b3674 --- /dev/null +++ b/jjb/functest/functest-daily-jobs.yml @@ -0,0 +1,378 @@ +################################### +# job configuration for functest +################################### +- project: + name: functest-daily + + project: functest + +#-------------------------------- +# BRANCH ANCHORS +#-------------------------------- + master: &master + stream: master + branch: '{stream}' + gs-pathname: '' + docker-tag: 'latest' + danube: &danube + stream: danube + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + docker-tag: 'stable' +#-------------------------------- +# POD, INSTALLER, AND BRANCH MAPPING +#-------------------------------- +# Installers using labels +# CI PODs +# This section should only contain the installers +# that have been switched using labels for slaves +#-------------------------------- + pod: +# fuel CI PODs + - baremetal: + slave-label: fuel-baremetal + installer: fuel + <<: *master + - virtual: + slave-label: fuel-virtual + installer: fuel + <<: *master + - baremetal: + slave-label: fuel-baremetal + installer: fuel + <<: *danube + - virtual: + slave-label: fuel-virtual + installer: fuel + <<: *danube +# joid CI PODs + - baremetal: + slave-label: joid-baremetal + installer: joid + <<: *master + - virtual: + slave-label: joid-virtual + installer: joid + <<: *master + - baremetal: + slave-label: joid-baremetal + installer: joid + <<: *danube + - virtual: + slave-label: joid-virtual + installer: joid + <<: *danube +# compass CI PODs + - baremetal: + slave-label: compass-baremetal + installer: compass + <<: *master + - virtual: + slave-label: compass-virtual + installer: compass + <<: *master + - baremetal: + slave-label: compass-baremetal + installer: compass + <<: *danube + - virtual: + slave-label: compass-virtual + installer: compass + <<: *danube +# apex CI PODs + - apex-verify-master: + slave-label: '{pod}' + installer: apex + <<: *master + - apex-daily-master: + slave-label: '{pod}' + installer: apex + <<: *master +# - apex-verify-danube: +# slave-label: '{pod}' +# installer: apex +# <<: *danube +# - apex-daily-danube: +# slave-label: '{pod}' +# installer: apex +# <<: *danube +# armband CI PODs + - armband-baremetal: + slave-label: armband-baremetal + installer: fuel + <<: *master + - armband-virtual: + slave-label: armband-virtual + installer: fuel + <<: *master + - armband-baremetal: + slave-label: armband-baremetal + installer: fuel + <<: *danube + - armband-virtual: + slave-label: armband-virtual + installer: fuel + <<: *danube +# daisy CI PODs + - baremetal: + slave-label: daisy-baremetal + installer: daisy + <<: *master + - virtual: + slave-label: daisy-virtual + installer: daisy + <<: *master +# netvirt 3rd party ci + - virtual: + slave-label: odl-netvirt-virtual + installer: netvirt + <<: *master +#-------------------------------- +# None-CI PODs +#-------------------------------- + - orange-pod1: + slave-label: '{pod}' + installer: joid + <<: *master + - orange-pod5: + slave-label: '{pod}' + installer: fuel + <<: *master + - orange-pod2: + slave-label: '{pod}' + installer: joid + <<: *master + - baremetal-centos: + slave-label: 'intel-pod8' + installer: compass + <<: *master + - nokia-pod1: + slave-label: '{pod}' + installer: apex + <<: *master + - arm-pod2: + slave-label: '{pod}' + installer: fuel + <<: *master + - arm-pod3: + slave-label: '{pod}' + installer: fuel + <<: *master + - zte-pod1: + slave-label: '{pod}' + installer: fuel + <<: *master + - zte-pod1: + slave-label: '{pod}' + installer: fuel + <<: *danube + - zte-pod2: + slave-label: '{pod}' + installer: fuel + <<: *master + - zte-pod3: + slave-label: '{pod}' + installer: fuel + <<: *master + - zte-pod3: + slave-label: '{pod}' + installer: fuel + <<: *danube + - arm-pod2: + slave-label: '{pod}' + installer: fuel + <<: *danube + - arm-pod3: + slave-label: '{pod}' + installer: fuel + <<: *danube +# PODs for verify jobs triggered by each patch upload + - ool-virtual1: + slave-label: '{pod}' + installer: apex + <<: *master +#-------------------------------- + + testsuite: + - 'suite': + job-timeout: 60 + - 'daily': + job-timeout: 180 + + jobs: + - 'functest-{installer}-{pod}-{testsuite}-{stream}' + +################################ +# job template +################################ +- job-template: + name: 'functest-{installer}-{pod}-{testsuite}-{stream}' + + concurrent: true + + properties: + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' + + wrappers: + - build-name: + name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: '{job-timeout}' + abort: true + + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults' + - 'functest-{testsuite}-parameter' + - string: + name: DEPLOY_SCENARIO + default: 'os-odl_l2-nofeature-ha' + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: 'Tag to pull docker image' + - string: + name: CLEAN_DOCKER_IMAGES + default: 'false' + description: 'Remove downloaded docker images (opnfv/functest*:*)' + - functest-parameter: + gs-pathname: '{gs-pathname}' + + scm: + - git-scm + + builders: + - description-setter: + description: "Built on $NODE_NAME" + - 'functest-{testsuite}-builder' + +######################## +# parameter macros +######################## +- parameter: + name: functest-daily-parameter + parameters: + - string: + name: FUNCTEST_SUITE_NAME + default: 'daily' + description: "Daily suite name to run" +- parameter: + name: functest-suite-parameter + parameters: + - choice: + name: FUNCTEST_SUITE_NAME + choices: + - 'healthcheck' + - 'vping_userdata' + - 'vping_ssh' + - 'tempest_smoke_serial' + - 'rally_sanity' + - 'odl' + - 'odl_netvirt' + - 'onos' + - 'promise' + - 'doctor' + - 'bgpvpn' + - 'security_scan' + - 'tempest_full_parallel' + - 'rally_full' + - 'vims' + - 'multisite' + - 'parser' + - string: + name: TESTCASE_OPTIONS + default: '' + description: 'Additional parameters specific to test case(s)' +- parameter: + name: functest-parameter + parameters: + - string: + name: GS_PATHNAME + default: '{gs-pathname}' + description: "Version directory where the opnfv documents will be stored in gs repository" + - string: + name: FUNCTEST_REPO_DIR + default: "/home/opnfv/repos/functest" + description: "Directory where the Functest repository is cloned" + - string: + name: PUSH_RESULTS_TO_DB + default: "true" + description: "Push the results of all the tests to the resultDB" + - string: + name: CI_DEBUG + default: 'false' + description: "Show debug output information" + - string: + name: RC_FILE_PATH + default: '' + description: "Path to the OS credentials file if given" +######################## +# trigger macros +######################## +- trigger: + name: 'functest-master' + triggers: + - pollscm: + cron: "H 9 * * *" +######################## +# builder macros +######################## +- builder: + name: functest-daily-builder + builders: + - 'functest-cleanup' + - 'set-functest-env' + - 'functest-daily' + - 'functest-store-results' + - 'functest-exit' + +- builder: + name: functest-suite-builder + builders: + - 'functest-cleanup' + - 'set-functest-env' + - 'functest-suite' + +- builder: + name: functest-daily + builders: + - shell: + !include-raw: ./functest-loop.sh + + +- builder: + name: functest-suite + builders: + - shell: + !include-raw: ./functest-suite.sh + +- builder: + name: set-functest-env + builders: + - shell: + !include-raw: ./set-functest-env.sh + +- builder: + name: functest-store-results + builders: + - shell: + !include-raw: ../../utils/push-test-logs.sh + +- builder: + name: functest-cleanup + builders: + - shell: + !include-raw: ./functest-cleanup.sh + +- builder: + name: functest-exit + builders: + - shell: + !include-raw: ./functest-exit.sh diff --git a/jjb/functest/functest-weekly-jobs.yml b/jjb/functest/functest-weekly-jobs.yml new file mode 100644 index 000000000..f44f7b8aa --- /dev/null +++ b/jjb/functest/functest-weekly-jobs.yml @@ -0,0 +1,124 @@ +################################### +# job configuration for functest +################################### +- project: + name: functest-weekly + + project: functest + +#-------------------------------- +# BRANCH ANCHORS +#-------------------------------- + master: &master + stream: master + branch: '{stream}' + gs-pathname: '' + docker-tag: 'latest' + disabled: false + danube: &danube + stream: danube + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + docker-tag: 'stable' + disabled: true +#-------------------------------- +# POD, INSTALLER, AND BRANCH MAPPING +#-------------------------------- +# Installers using labels +# CI PODs +# This section should only contain the installers +# that have been switched using labels for slaves +#-------------------------------- + pod: +# fuel CI PODs + - baremetal: + slave-label: fuel-baremetal + installer: fuel + <<: *master + - virtual: + slave-label: fuel-virtual + installer: fuel + <<: *master + - baremetal: + slave-label: fuel-baremetal + installer: fuel + <<: *danube + - virtual: + slave-label: fuel-virtual + installer: fuel + <<: *danube +#-------------------------------- + jobs: + - 'functest-{installer}-{pod}-weekly-{stream}' + +################################ +# job template +################################ +- job-template: + name: 'functest-{installer}-{pod}-weekly-{stream}' + + disabled: '{obj:disabled}' + + concurrent: true + + properties: + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' + + wrappers: + - build-name: + name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: '400' + abort: true + + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults' + - string: + name: FUNCTEST_SUITE_NAME + default: 'weekly' + description: "Weekly suite name to run" + - string: + name: DEPLOY_SCENARIO + default: 'os-odl_l2-nofeature-ha' + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: 'Tag to pull docker image' + - string: + name: CLEAN_DOCKER_IMAGES + default: 'false' + description: 'Remove downloaded docker images (opnfv/functest*:*)' + - functest-parameter: + gs-pathname: '{gs-pathname}' + + scm: + - git-scm + + builders: + - description-setter: + description: "Built on $NODE_NAME" + - 'functest-weekly-builder' +######################## +# builder macros +######################## +- builder: + name: functest-weekly-builder + builders: + - shell: + !include-raw: ./functest-cleanup.sh + - shell: + !include-raw: ./set-functest-env.sh + - shell: + !include-raw: ./functest-loop.sh + - shell: + !include-raw: ../../utils/push-test-logs.sh + - shell: + !include-raw: ./functest-exit.sh -- cgit 1.2.3-korg