From: Serena Feng Date: Fri, 13 Apr 2018 07:13:27 +0000 (+0000) Subject: Merge "Create CI job for network testing" X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=71a9ca68b973420a90429bbd75c198c0ed7582b7;hp=41214d23b36d04750d03e7f15cb241e897307288;p=releng.git Merge "Create CI job for network testing" --- diff --git a/docs/infra/jenkins/jjb-usage.rst b/docs/infra/jenkins/jjb-usage.rst index 2be2598d9..671278121 100644 --- a/docs/infra/jenkins/jjb-usage.rst +++ b/docs/infra/jenkins/jjb-usage.rst @@ -31,6 +31,12 @@ Test with tox:: tox -v -ejjb +.. note:: You can also test the jobs under a single jjb directory by + specifying the directory. For example to test only the releng jobs, you + could run: + + tox -v -e jjb -- jjb/releng + Submit the change to gerrit:: git review -v diff --git a/jjb/apex/apex-deploy.sh b/jjb/apex/apex-deploy.sh index 94d464259..958e4bf5e 100755 --- a/jjb/apex/apex-deploy.sh +++ b/jjb/apex/apex-deploy.sh @@ -13,21 +13,8 @@ echo if [ -z "$DEPLOY_SCENARIO" ]; then echo "Deploy scenario not set!" exit 1 -elif [[ "$DEPLOY_SCENARIO" == *gate* ]]; then - echo "Detecting Gating scenario..." - if [ -z "$GERRIT_EVENT_COMMENT_TEXT" ]; then - echo "ERROR: Gate job triggered without comment!" - exit 1 - else - DEPLOY_SCENARIO=$(echo ${GERRIT_EVENT_COMMENT_TEXT} | grep start-gate-scenario | grep -Eo 'os-.*$') - if [ -z "$DEPLOY_SCENARIO" ]; then - echo "ERROR: Unable to detect scenario in Gerrit Comment!" - echo "Format of comment to trigger gate should be 'start-gate-scenario: '" - exit 1 - else - echo "Gate scenario detected: ${DEPLOY_SCENARIO}" - fi - fi +else + echo "Deploy scenario: ${DEPLOY_SCENARIO}" fi # Dev or RPM/ISO build @@ -143,8 +130,6 @@ fi if [ "$IPV6_FLAG" == "True" ]; then NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings_v6.yaml" -elif echo ${DEPLOY_SCENARIO} | grep fdio; then - NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings_vpp.yaml" else NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings.yaml" fi diff --git a/jjb/apex/apex-download-artifact.sh b/jjb/apex/apex-download-artifact.sh index 066d61203..6c0f8fe26 100755 --- a/jjb/apex/apex-download-artifact.sh +++ b/jjb/apex/apex-download-artifact.sh @@ -13,21 +13,8 @@ echo if [ -z "$DEPLOY_SCENARIO" ]; then echo "Deploy scenario not set!" exit 1 -elif [[ "$DEPLOY_SCENARIO" == *gate* ]]; then - echo "Detecting Gating scenario..." - if [ -z "$GERRIT_EVENT_COMMENT_TEXT" ]; then - echo "ERROR: Gate job triggered without comment!" - exit 1 - else - DEPLOY_SCENARIO=$(echo ${GERRIT_EVENT_COMMENT_TEXT} | grep start-gate-scenario | grep -Eo 'os-.*$') - if [ -z "$DEPLOY_SCENARIO" ]; then - echo "ERROR: Unable to detect scenario in Gerrit Comment!" - echo "Format of comment to trigger gate should be 'start-gate-scenario: '" - exit 1 - else - echo "Gate scenario detected: ${DEPLOY_SCENARIO}" - fi - fi +else + echo "Deploy scenario: ${DEPLOY_SCENARIO}" fi # if upstream we do not need to download anything diff --git a/jjb/apex/apex-fetch-logs.sh b/jjb/apex/apex-fetch-logs.sh new file mode 100755 index 000000000..bdb2252b3 --- /dev/null +++ b/jjb/apex/apex-fetch-logs.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -o errexit +set -o nounset +set -o pipefail + +# log info to console +echo "Fetching logs from overcloud. This could take some time..." +echo "--------------------------------------------------------" +echo + +if sudo opnfv-pyutil --fetch-logs; then + LOG_LOCATION=$(cat apex_util.log | grep 'Log retrieval complete' | grep -Eo '/tmp/.+$') + if [ -z "$LOG_LOCATION" ]; then + echo "WARNING: Unable to determine log location. Logs will not be uploaded" + exit 0 + else + sudo chmod 777 ${LOG_LOCATION} + UPLOAD_LOCATION="${GS_URL}/logs/${JOB_NAME}/${BUILD_NUMBER}/" + gsutil -m cp -r ${LOG_LOCATION} gs://${UPLOAD_LOCATION} > gsutil.latest_logs.log + echo -e "Logs available at: \n$(find ${LOG_LOCATION} -type f | sed -n 's#^/tmp/#http://'$UPLOAD_LOCATION'#p')" + fi +else + echo "WARNING: Log retrieval failed. No logs will be uploaded" + exit 0 +fi diff --git a/jjb/apex/apex-verify-jobs.yml b/jjb/apex/apex-verify-jobs.yml index 3a693c87e..318fc9686 100644 --- a/jjb/apex/apex-verify-jobs.yml +++ b/jjb/apex/apex-verify-jobs.yml @@ -32,7 +32,7 @@ - job-template: name: 'apex-verify-unit-tests-{stream}' - node: 'apex-build-{stream}' + node: 'apex-build-master' concurrent: true @@ -315,6 +315,12 @@ option: 'project' builders: + # yamllint disable rule:line-length + - shell: | + echo DEPLOY_SCENARIO=$(echo $GERRIT_EVENT_COMMENT_TEXT | grep start-gate-scenario | grep -Eo 'os|k8s-.*$' + # yamllint enable rule:line-length + - inject: + properties-file: detected_scenario - multijob: name: deploy-virtual condition: SUCCESSFUL @@ -323,7 +329,7 @@ current-parameters: false predefined-parameters: | ARTIFACT_VERSION=$ARTIFACT_VERSION - DEPLOY_SCENARIO=gate + DEPLOY_SCENARIO=$DEPLOY_SCENARIO OPNFV_CLEAN=yes GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC @@ -334,15 +340,9 @@ kill-phase-on: FAILURE abort-all-job: true git-revision: true - # yamllint disable rule:line-length - - shell: | - echo DEPLOY_SCENARIO=$(echo $GERRIT_EVENT_COMMENT_TEXT | grep start-gate-scenario | grep -Eo 'os-.*') > detected_scenario - # yamllint enable rule:line-length - - inject: - properties-file: detected_scenario - multijob: name: functest-smoke - condition: SUCCESSFUL + condition: ALWAYS projects: - name: 'functest-apex-virtual-suite-{stream}' current-parameters: false @@ -358,6 +358,19 @@ kill-phase-on: NEVER abort-all-job: true git-revision: false + - multijob: + name: apex-fetch-logs + projects: + - name: 'apex-fetch-logs-{stream}' + current-parameters: true + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true + git-revision: false ######################## # builder macros diff --git a/jjb/apex/apex.yml b/jjb/apex/apex.yml index a4c68600f..849720336 100644 --- a/jjb/apex/apex.yml +++ b/jjb/apex/apex.yml @@ -3,6 +3,7 @@ name: 'apex' project: 'apex' jobs: + - 'apex-fetch-logs-{stream}' - 'apex-runner-cperf-{stream}' - 'apex-virtual-{stream}' - 'apex-deploy-{platform}-{stream}' @@ -36,7 +37,7 @@ baremetal-slave: 'apex-baremetal-master' verify-scenario: 'os-odl-nofeature-ha' scenario_stream: 'fraser' - disable_daily: true + disable_daily: false disable_promote: true - euphrates: &euphrates branch: 'stable/euphrates' @@ -149,45 +150,9 @@ <<: *danube - 'os-ovn-nofeature-noha': <<: *danube - - 'os-nosdn-nofeature-noha': - <<: *master - - 'os-nosdn-nofeature-ha': - <<: *master - - 'os-odl-nofeature-ha': - <<: *master - - 'os-odl-nofeature-noha': - <<: *master - - 'os-odl-bgpvpn-ha': - <<: *master - - 'os-odl-bgpvpn-noha': - <<: *master - - 'os-odl-sriov-noha': - <<: *master - - 'os-odl-ovs_offload-noha': - <<: *master - - 'os-ovn-nofeature-noha': - <<: *master - - 'os-nosdn-fdio-noha': - <<: *master - - 'os-nosdn-fdio-ha': - <<: *master - - 'os-nosdn-bar-ha': - <<: *master - - 'os-nosdn-bar-noha': - <<: *master - - 'os-nosdn-ovs_dpdk-noha': - <<: *master - - 'os-nosdn-ovs_dpdk-ha': - <<: *master - - 'os-odl-ovs_dpdk-noha': - <<: *master - - 'os-odl-ovs_dpdk-ha': - <<: *master - - 'os-odl-sfc-noha': - <<: *master - - 'os-odl-sfc-ha': + - 'os-odl-master_upstream-noha': <<: *master - - 'os-nosdn-calipso-noha': + - 'os-odl-queens_upstream-noha': <<: *master - 'os-nosdn-nofeature-noha': <<: *euphrates @@ -234,6 +199,34 @@ - 'pike' - 'queens' - 'master' + + +# Fetch Logs Job +- job-template: + name: 'apex-fetch-logs-{stream}' + + concurrent: true + + disabled: false + scm: + - git-scm-gerrit + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + # yamllint enable rule:line-length + properties: + - logrotate-default + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' + + builders: + - 'apex-fetch-logs' + - job-template: name: 'apex-runner-cperf-{stream}' @@ -427,7 +420,7 @@ git-revision: true - multijob: name: functest-smoke - condition: SUCCESSFUL + condition: ALWAYS projects: - name: 'functest-apex-virtual-suite-{stream}' current-parameters: false @@ -442,6 +435,20 @@ kill-phase-on: NEVER abort-all-job: true git-revision: false + - multijob: + name: apex-fetch-logs + projects: + - name: 'apex-fetch-logs-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true + git-revision: false # Baremetal Deploy and Test - job-template: @@ -503,6 +510,7 @@ git-revision: false - multijob: name: 'OPNFV Test Suite' + condition: ALWAYS projects: - name: 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' node-parameters: true @@ -512,7 +520,18 @@ kill-phase-on: NEVER abort-all-job: true git-revision: false - + - multijob: + name: apex-fetch-logs + projects: + - name: 'apex-fetch-logs-{scenario_stream}' + current-parameters: true + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true + git-revision: false publishers: - groovy-postbuild: script: @@ -1495,135 +1514,7 @@ name: Baremetal Deploy and Test Phase condition: SUCCESSFUL projects: - - name: 'apex-os-nosdn-nofeature-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-nosdn-nofeature-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-odl-nofeature-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-odl-nofeature-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-odl-bgpvpn-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-odl-bgpvpn-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-odl-sriov-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-odl-ovs_offload-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-ovn-nofeature-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-nosdn-fdio-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-nosdn-fdio-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-nosdn-bar-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-nosdn-bar-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-nosdn-ovs_dpdk-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-nosdn-ovs_dpdk-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-odl-ovs_dpdk-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-odl-ovs_dpdk-ha-baremetal-master' + - name: 'apex-os-odl-master_upstream-noha-baremetal-master' node-parameters: false current-parameters: false predefined-parameters: | @@ -1631,23 +1522,7 @@ kill-phase-on: NEVER abort-all-job: true git-revision: false - - name: 'apex-os-odl-sfc-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-odl-sfc-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - name: 'apex-os-nosdn-calipso-noha-baremetal-master' + - name: 'apex-os-odl-queens_upstream-noha-baremetal-master' node-parameters: false current-parameters: false predefined-parameters: | @@ -1826,6 +1701,12 @@ - shell: !include-raw: ./apex-deploy.sh +- builder: + name: 'apex-fetch-logs' + builders: + - shell: + !include-raw: ./apex-fetch-logs.sh + ####################### # trigger macros ######################## diff --git a/jjb/apex/apex.yml.j2 b/jjb/apex/apex.yml.j2 index 25b9cd9d7..dac7c3a88 100644 --- a/jjb/apex/apex.yml.j2 +++ b/jjb/apex/apex.yml.j2 @@ -3,6 +3,7 @@ name: 'apex' project: 'apex' jobs: + - 'apex-fetch-logs-{stream}' - 'apex-runner-cperf-{stream}' - 'apex-virtual-{stream}' - 'apex-deploy-{platform}-{stream}' @@ -36,7 +37,7 @@ baremetal-slave: 'apex-baremetal-master' verify-scenario: 'os-odl-nofeature-ha' scenario_stream: 'fraser' - disable_daily: true + disable_daily: false disable_promote: true - euphrates: &euphrates branch: 'stable/euphrates' @@ -76,6 +77,34 @@ - 'pike' - 'queens' - 'master' + + +# Fetch Logs Job +- job-template: + name: 'apex-fetch-logs-{stream}' + + concurrent: true + + disabled: false + scm: + - git-scm-gerrit + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + # yamllint enable rule:line-length + properties: + - logrotate-default + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' + + builders: + - 'apex-fetch-logs' + - job-template: name: 'apex-runner-cperf-{stream}' @@ -269,7 +298,7 @@ git-revision: true - multijob: name: functest-smoke - condition: SUCCESSFUL + condition: ALWAYS projects: - name: 'functest-apex-virtual-suite-{stream}' current-parameters: false @@ -284,6 +313,20 @@ kill-phase-on: NEVER abort-all-job: true git-revision: false + - multijob: + name: apex-fetch-logs + projects: + - name: 'apex-fetch-logs-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true + git-revision: false # Baremetal Deploy and Test - job-template: @@ -345,6 +388,7 @@ git-revision: false - multijob: name: 'OPNFV Test Suite' + condition: ALWAYS projects: - name: 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' node-parameters: true @@ -354,7 +398,18 @@ kill-phase-on: NEVER abort-all-job: true git-revision: false - + - multijob: + name: apex-fetch-logs + projects: + - name: 'apex-fetch-logs-{scenario_stream}' + current-parameters: true + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true + git-revision: false publishers: - groovy-postbuild: script: @@ -997,6 +1052,12 @@ - shell: !include-raw: ./apex-deploy.sh +- builder: + name: 'apex-fetch-logs' + builders: + - shell: + !include-raw: ./apex-fetch-logs.sh + ####################### # trigger macros ######################## diff --git a/jjb/apex/scenarios.yaml.hidden b/jjb/apex/scenarios.yaml.hidden index 58f1c64f4..bc2be4a8d 100644 --- a/jjb/apex/scenarios.yaml.hidden +++ b/jjb/apex/scenarios.yaml.hidden @@ -1,24 +1,6 @@ master: - - 'os-nosdn-nofeature-noha' - - 'os-nosdn-nofeature-ha' - - 'os-odl-nofeature-ha' - - 'os-odl-nofeature-noha' - - 'os-odl-bgpvpn-ha' - - 'os-odl-bgpvpn-noha' - - 'os-odl-sriov-noha' - - 'os-odl-ovs_offload-noha' - - 'os-ovn-nofeature-noha' - - 'os-nosdn-fdio-noha' - - 'os-nosdn-fdio-ha' - - 'os-nosdn-bar-ha' - - 'os-nosdn-bar-noha' - - 'os-nosdn-ovs_dpdk-noha' - - 'os-nosdn-ovs_dpdk-ha' - - 'os-odl-ovs_dpdk-noha' - - 'os-odl-ovs_dpdk-ha' - - 'os-odl-sfc-noha' - - 'os-odl-sfc-ha' - - 'os-nosdn-calipso-noha' + - 'os-odl-master_upstream-noha' + - 'os-odl-queens_upstream-noha' fraser: - 'os-nosdn-nofeature-noha' - 'os-nosdn-nofeature-ha' diff --git a/jjb/barometer/barometer.yml b/jjb/barometer/barometer.yml index d29673820..92176207f 100644 --- a/jjb/barometer/barometer.yml +++ b/jjb/barometer/barometer.yml @@ -18,7 +18,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - euphrates: + - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/bottlenecks/bottlenecks-project-jobs.yml b/jjb/bottlenecks/bottlenecks-project-jobs.yml index bebac995b..d4930d745 100644 --- a/jjb/bottlenecks/bottlenecks-project-jobs.yml +++ b/jjb/bottlenecks/bottlenecks-project-jobs.yml @@ -26,11 +26,6 @@ gs-pathname: '/{stream}' gs-packagepath: '/{stream}/{suite}' disabled: false - - euphrates: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - gs-packagepath: '/{stream}/{suite}' - disabled: false suite: - 'posca_stress_traffic' diff --git a/jjb/calipso/calipso.yml b/jjb/calipso/calipso.yml index 2d9ecef03..6701e7ca2 100644 --- a/jjb/calipso/calipso.yml +++ b/jjb/calipso/calipso.yml @@ -11,8 +11,9 @@ - master: branch: '{stream}' disabled: false - - euphrates: + - fraser: &fraser branch: 'stable/{stream}' + gs-pathname: '/{stream}' disabled: false - job-template: diff --git a/jjb/clover/clover-project.yml b/jjb/clover/clover-project.yml index b31f3deb2..31eed8f14 100644 --- a/jjb/clover/clover-project.yml +++ b/jjb/clover/clover-project.yml @@ -18,6 +18,10 @@ branch: '{stream}' gs-pathname: '' disabled: false + - fraser: &fraser + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false - job-template: name: 'clover-verify-{stream}' @@ -32,7 +36,8 @@ - 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." + description: "Used for overriding the GIT URL coming from Global Jenkins\ + \ configuration in case if the stuff is done on none-LF HW." # yamllint enable rule:line-length - 'opnfv-build-ubuntu-defaults' @@ -79,7 +84,7 @@ - git-scm triggers: - - timed: '0 11 * * *' + - timed: '0 8 * * *' wrappers: - fix-workspace-permissions @@ -133,7 +138,8 @@ - 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." + description: "Used for overriding the GIT URL coming from Global Jenkins\ + \ configuration in case if the stuff is done on none-LF HW." # yamllint enable rule:line-length - node: name: SLAVE_NAME @@ -147,7 +153,7 @@ - git-scm triggers: - - timed: '0 12 * * *' + - timed: '0 9 * * *' builders: - shell: | diff --git a/jjb/compass4nfv/compass-project-jobs.yml b/jjb/compass4nfv/compass-project-jobs.yml index 13830ce1d..dc935f024 100644 --- a/jjb/compass4nfv/compass-project-jobs.yml +++ b/jjb/compass4nfv/compass-project-jobs.yml @@ -20,7 +20,7 @@ gs-pathname: '/{stream}' ppa-pathname: '/{stream}' disabled: false - - euphrates: + - fraser: branch: 'stable/{stream}' gs-pathname: '/{stream}' ppa-pathname: '/{stream}' diff --git a/jjb/container4nfv/container4nfv-project.yml b/jjb/container4nfv/container4nfv-project.yml index 1ab50ae30..194a1a989 100644 --- a/jjb/container4nfv/container4nfv-project.yml +++ b/jjb/container4nfv/container4nfv-project.yml @@ -18,7 +18,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - euphrates: + - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false @@ -36,7 +36,8 @@ - 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." + description: "Used for overriding the GIT URL coming from Global Jenkins\ + \ configuration in case if the stuff is done on none-LF HW." # yamllint enable rule:line-length - 'opnfv-build-ubuntu-defaults' @@ -134,7 +135,8 @@ - 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." + description: "Used for overriding the GIT URL coming from Global Jenkins\ + \ configuration in case if the stuff is done on none-LF HW." # yamllint enable rule:line-length - node: name: SLAVE_NAME diff --git a/jjb/container4nfv/yardstick-arm64.yml b/jjb/container4nfv/yardstick-arm64.yml index 9b8b271df..6ed345ecc 100644 --- a/jjb/container4nfv/yardstick-arm64.yml +++ b/jjb/container4nfv/yardstick-arm64.yml @@ -15,6 +15,11 @@ branch: '{stream}' gs-pathname: '' docker-tag: 'latest' + fraser: &fraser + stream: fraser + branch: '{stream}' + gs-pathname: 'stable/{stream}' + docker-tag: 'stable' # ------------------------------- # POD, INSTALLER, AND BRANCH MAPPING # ------------------------------- diff --git a/jjb/daisy4nfv/daisy-daily-jobs.yml b/jjb/daisy4nfv/daisy-daily-jobs.yml index 2eb27a663..4eaa39ae9 100644 --- a/jjb/daisy4nfv/daisy-daily-jobs.yml +++ b/jjb/daisy4nfv/daisy-daily-jobs.yml @@ -121,6 +121,7 @@ - 'testapi-parameter' - 'daisy-project-parameter': gs-pathname: '{gs-pathname}' + - 'deploy-scenario' builders: - description-setter: @@ -155,9 +156,6 @@ - condition-kind: regex-match regex: 'baremetal' label: '{pod}' - - condition-kind: regex-match - regex: 'master' - label: '{stream}' steps: - trigger-builds: - project: 'yardstick-daisy-{pod}-daily-{stream}' @@ -207,6 +205,7 @@ - 'testapi-parameter' - 'daisy-project-parameter': gs-pathname: '{gs-pathname}' + - 'deploy-scenario' - string: name: DEPLOY_TIMEOUT default: '150' @@ -240,7 +239,7 @@ - trigger: name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-master-trigger' triggers: - - timed: '0 12 * * *' + - timed: '' # Basic NOHA Scenarios - trigger: name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-master-trigger' @@ -250,7 +249,7 @@ - trigger: name: 'daisy-os-odl-nofeature-ha-baremetal-daily-master-trigger' triggers: - - timed: '0 18 * * *' + - timed: '' # ovs_dpdk Scenarios - trigger: name: 'daisy-os-nosdn-ovs_dpdk-noha-baremetal-daily-master-trigger' @@ -288,7 +287,7 @@ - trigger: name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-fraser-trigger' triggers: - - timed: '0 0 * * *' + - timed: '0 0,6 * * *' # Basic NOHA Scenarios - trigger: name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-fraser-trigger' @@ -298,7 +297,7 @@ - trigger: name: 'daisy-os-odl-nofeature-ha-baremetal-daily-fraser-trigger' triggers: - - timed: '0 20 * * *' + - timed: '0 12,18 * * *' # ovs_dpdk Scenarios - trigger: name: 'daisy-os-nosdn-ovs_dpdk-noha-baremetal-daily-fraser-trigger' diff --git a/jjb/doctor/doctor.yml b/jjb/doctor/doctor.yml index 8c04ffd53..5732100be 100644 --- a/jjb/doctor/doctor.yml +++ b/jjb/doctor/doctor.yml @@ -10,16 +10,21 @@ gs-pathname: '' docker-tag: 'latest' disabled: false - - euphrates: + - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' docker-tag: 'stable' disabled: false + # feature projects' tests are not triggered by functest + # doctor verify Pods need to deploy with these scenario installer: - - 'apex' - - 'fuel' - - 'daisy' + - 'apex': + scenario: 'os-nosdn-kvm-ha' + - 'fuel': + scenario: 'os-nosdn-ovs-ha' + - 'daisy': + scenario: 'os-nosdn-ovs_dpdk-noha' arch: - 'x86_64' @@ -36,89 +41,18 @@ arch: 'aarch64' jobs: - - 'doctor-verify-{stream}' - - 'doctor-verify-unit-test-{stream}' - 'doctor-verify-{inspector}-{stream}' - 'doctor-verify-{installer}-{inspector}-{arch}-{stream}' - job-template: - name: 'doctor-verify-{stream}' + name: 'doctor-verify-{inspector}-{stream}' disabled: '{obj:disabled}' project-type: 'multijob' parameters: - project-parameter: project: '{project}' branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - scm: - - git-scm-gerrit - 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: 'doctor_tests/**' - - builders: - - shell: | - #!/bin/bash - # we do nothing here as the main stuff will be done - # in phase jobs - echo "Triggering phase jobs!" - - multijob: - name: 'doctor-build-and-unittest' - execution-type: PARALLEL - projects: - - name: 'doctor-verify-unit-test-{stream}' - predefined-parameters: | - PROJECT=$PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - kill-phase-on: FAILURE - current-parameters: true - git-revision: true - -- job-template: - name: 'doctor-verify-unit-test-{stream}' - disabled: '{obj:disabled}' - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 60 - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - scm: - - git-scm-gerrit - builders: - - 'doctor-verify-unit-test-builders-macro' - publishers: - - 'doctor-verify-unit-test-publishers-macro' - -- job-template: - name: 'doctor-verify-{inspector}-{stream}' - disabled: '{obj:disabled}' - project-type: 'multijob' + - 'doctor-slave-parameter' scm: - git-scm-gerrit triggers: @@ -134,7 +68,7 @@ # in phase jobs echo "Triggering phase jobs!" - multijob: - name: 'doctor-verify-apex-inspector' + name: 'doctor-verify' execution-type: PARALLEL projects: - name: 'doctor-verify-apex-{inspector}-x86_64-{stream}' @@ -145,12 +79,7 @@ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE kill-phase-on: FAILURE - current-parameters: true git-revision: true - - multijob: - name: 'doctor-verify-fuel-inspector' - execution-type: PARALLEL - projects: - name: 'doctor-verify-fuel-{inspector}-x86_64-{stream}' predefined-parameters: | PROJECT=$PROJECT @@ -159,12 +88,7 @@ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE kill-phase-on: FAILURE - current-parameters: true git-revision: true - - multijob: - name: 'doctor-verify-fuel-inspector' - execution-type: PARALLEL - projects: - name: 'doctor-verify-fuel-{inspector}-aarch64-{stream}' predefined-parameters: | GERRIT_BRANCH=$GERRIT_BRANCH @@ -172,12 +96,7 @@ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE kill-phase-on: FAILURE - current-parameters: true git-revision: true - - multijob: - name: 'doctor-verify-daisy-inspector' - execution-type: PARALLEL - projects: - name: 'doctor-verify-daisy-{inspector}-x86_64-{stream}' predefined-parameters: | PROJECT=$PROJECT @@ -186,7 +105,6 @@ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE kill-phase-on: FAILURE - current-parameters: true git-revision: true - job-template: @@ -233,7 +151,7 @@ description: 'Remove downloaded docker images (opnfv/functest:*)' - string: name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' + default: '{scenario}' description: 'Scenario to deploy and test' - parameter: @@ -275,11 +193,6 @@ # builder macros # ------------------------------- -- builder: - name: 'doctor-verify-unit-test-builders-macro' - builders: - - shell: "tox -e pep8" - - builder: name: 'doctor-verify-installer-inspector-builders-macro' builders: @@ -317,13 +230,6 @@ artifacts: 'functest_results/$FUNCTEST_SUITE_NAME.log' - email-jenkins-admins-on-failure -- publisher: - name: 'doctor-verify-unit-test-publishers-macro' - publishers: - - email-jenkins-admins-on-failure - - archive: - artifacts: '.tox/' - ##################################### # trigger macros diff --git a/jjb/domino/domino.yml b/jjb/domino/domino.yml index 7fc818c7a..e91260463 100644 --- a/jjb/domino/domino.yml +++ b/jjb/domino/domino.yml @@ -12,10 +12,6 @@ branch: '{stream}' gs-pathname: '' disabled: false - - euphrates: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - job-template: name: 'domino-verify-{stream}' diff --git a/jjb/dovetail/dovetail-ci-jobs.yml b/jjb/dovetail/dovetail-ci-jobs.yml index 5e5b6e18f..a95617ae4 100644 --- a/jjb/dovetail/dovetail-ci-jobs.yml +++ b/jjb/dovetail/dovetail-ci-jobs.yml @@ -20,8 +20,8 @@ dovetail-branch: '{stream}' gs-pathname: '' docker-tag: 'latest' - euphrates: &euphrates - stream: euphrates + fraser: &fraser + stream: fraser branch: 'stable/{stream}' dovetail-branch: master gs-pathname: '/{stream}' @@ -54,12 +54,12 @@ slave-label: fuel-baremetal SUT: fuel auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - virtual: slave-label: fuel-virtual SUT: fuel auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser # compass CI PODs - baremetal: slave-label: compass-baremetal @@ -75,12 +75,12 @@ slave-label: compass-baremetal SUT: compass auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - virtual: slave-label: compass-virtual SUT: compass auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser # ------------------------------- # Installers not using labels # CI PODs @@ -102,12 +102,12 @@ slave-label: apex-virtual-master SUT: apex auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - baremetal: slave-label: apex-baremetal-master SUT: apex auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser # armband CI PODs - armband-baremetal: slave-label: armband-baremetal @@ -123,12 +123,12 @@ slave-label: armband-baremetal SUT: fuel auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - armband-virtual: slave-label: armband-virtual SUT: fuel auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser # ------------------------------- # None-CI PODs # ------------------------------- @@ -156,22 +156,22 @@ slave-label: zte-pod1 SUT: fuel auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - zte-pod3: slave-label: zte-pod3 SUT: fuel auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - huawei-pod4: slave-label: huawei-pod4 SUT: apex auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - huawei-pod7: slave-label: huawei-pod7 SUT: compass auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser # ------------------------------- testsuite: diff --git a/jjb/functest/functest-alpine.sh b/jjb/functest/functest-alpine.sh index dfadf9a37..440b00af9 100755 --- a/jjb/functest/functest-alpine.sh +++ b/jjb/functest/functest-alpine.sh @@ -28,13 +28,8 @@ check_os_deployment() { run_tiers() { tiers=$1 - if [[ ${BRANCH##*/} == "master" ]]; then - cmd_opt="run_tests -r -t all" - [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="run_tests -t all" - else - cmd_opt="prepare_env start && run_tests -r -t all" - [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="prepare_env start && run_tests -t all" - fi + cmd_opt="run_tests -r -t all" + [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="run_tests -t all" ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value" echo 0 > ${ret_val_file} @@ -58,11 +53,7 @@ run_tiers() { run_test() { test_name=$1 - if [[ ${BRANCH##*/} == "master" ]]; then - cmd_opt="run_tests -t ${test_name}" - else - cmd_opt="prepare_env start && run_tests -t ${test_name}" - fi + cmd_opt="run_tests -t ${test_name}" ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value" echo 0 > ${ret_val_file} # Determine which Functest image should be used for the test case @@ -115,11 +106,7 @@ elif [[ ${INSTALLER_TYPE} == 'fuel' && ${DEPLOY_TYPE} == 'baremetal' ]]; then cacert_file_vol="-v ${HOME}/os_cacert:/etc/ssl/certs/mcp_os_cacert" fi -if [[ ${BRANCH} == "stable/euphrates" ]]; then - rc_file_vol="-v ${rc_file}:${FUNCTEST_DIR}/conf/openstack.creds" -else - rc_file_vol="-v ${rc_file}:${FUNCTEST_DIR}/conf/env_file" -fi +rc_file_vol="-v ${rc_file}:${FUNCTEST_DIR}/conf/env_file" # Set iptables rule to allow forwarding return traffic for container if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then @@ -177,7 +164,6 @@ volumes="${images_vol} ${results_vol} ${sshkey_vol} ${userconfig_vol} ${rc_file_ set +e -[[ ${BRANCH##*/} == "master" ]] && check_os_deployment if [ ${FUNCTEST_MODE} == 'testcase' ]; then echo "FUNCTEST_MODE=testcase, FUNCTEST_SUITE_NAME=${FUNCTEST_SUITE_NAME}" run_test ${FUNCTEST_SUITE_NAME} diff --git a/jjb/functest/functest-daily-jobs.yml b/jjb/functest/functest-daily-jobs.yml index 8ffbe9e63..ae226b665 100644 --- a/jjb/functest/functest-daily-jobs.yml +++ b/jjb/functest/functest-daily-jobs.yml @@ -14,8 +14,8 @@ stream: master branch: '{stream}' gs-pathname: '' - euphrates: &euphrates - stream: euphrates + fraser: &fraser + stream: fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' # ------------------------------- @@ -39,11 +39,11 @@ - baremetal: slave-label: fuel-baremetal installer: fuel - <<: *euphrates + <<: *fraser - virtual: slave-label: fuel-virtual installer: fuel - <<: *euphrates + <<: *fraser # joid CI PODs - baremetal: slave-label: joid-baremetal @@ -56,11 +56,11 @@ - baremetal: slave-label: joid-baremetal installer: joid - <<: *euphrates + <<: *fraser - virtual: slave-label: joid-virtual installer: joid - <<: *euphrates + <<: *fraser # compass CI PODs - baremetal: slave-label: compass-baremetal @@ -73,11 +73,11 @@ - baremetal: slave-label: compass-baremetal installer: compass - <<: *euphrates + <<: *fraser - virtual: slave-label: compass-virtual installer: compass - <<: *euphrates + <<: *fraser # apex CI PODs - virtual: slave-label: apex-virtual-master @@ -88,13 +88,13 @@ installer: apex <<: *master - virtual: - slave-label: apex-virtual-euphrates + slave-label: apex-virtual-fraser installer: apex - <<: *euphrates + <<: *fraser - baremetal: - slave-label: apex-baremetal-euphrates + slave-label: apex-baremetal-fraser installer: apex - <<: *euphrates + <<: *fraser # armband CI PODs - armband-baremetal: slave-label: armband-baremetal @@ -107,11 +107,11 @@ - armband-baremetal: slave-label: armband-baremetal installer: fuel - <<: *euphrates + <<: *fraser - armband-virtual: slave-label: armband-virtual installer: fuel - <<: *euphrates + <<: *fraser # daisy CI PODs - baremetal: slave-label: daisy-baremetal @@ -124,11 +124,11 @@ - baremetal: slave-label: daisy-baremetal installer: daisy - <<: *euphrates + <<: *fraser - virtual: slave-label: daisy-virtual installer: daisy - <<: *euphrates + <<: *fraser # netvirt 3rd party ci - virtual: slave-label: odl-netvirt-virtual @@ -164,7 +164,7 @@ - zte-pod1: slave-label: '{pod}' installer: fuel - <<: *euphrates + <<: *fraser - zte-pod2: slave-label: '{pod}' installer: daisy @@ -172,7 +172,7 @@ - zte-pod2: slave-label: '{pod}' installer: daisy - <<: *euphrates + <<: *fraser - zte-pod3: slave-label: '{pod}' installer: daisy @@ -180,11 +180,15 @@ - zte-pod3: slave-label: '{pod}' installer: daisy - <<: *euphrates + <<: *fraser - zte-pod9: slave-label: '{pod}' installer: daisy <<: *master + - zte-pod9: + slave-label: '{pod}' + installer: daisy + <<: *fraser # ------------------------------- # PODs for verify jobs triggered by each patch upload # - ool-virtual1: diff --git a/jjb/functest/functest-k8.sh b/jjb/functest/functest-k8.sh index 9017354cc..419c4e051 100755 --- a/jjb/functest/functest-k8.sh +++ b/jjb/functest/functest-k8.sh @@ -42,17 +42,23 @@ DOCKER_TAG=`[[ ${BRANCH##*/} == "master" ]] && echo "latest" || echo ${BRANCH##* set +e -FUNCTEST_IMAGE=opnfv/functest-kubernetes:${DOCKER_TAG} -echo "Pulling Docker image ${FUNCTEST_IMAGE} ..." -docker pull ${FUNCTEST_IMAGE}>/dev/null -cmd_opt="run_tests -r -t all" -cmd="docker run --rm ${envs} ${volumes} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'" -echo "Running Functest k8s test cases, CMD: ${cmd}" -eval ${cmd} -ret_value=$? - ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value" echo 0 > ${ret_val_file} -if [ ${ret_value} != 0 ]; then - echo ${ret_value} > ${ret_val_file} -fi + +FUNCTEST_IMAGES="\ +opnfv/functest-kubernetes-healthcheck:${DOCKER_TAG} \ +opnfv/functest-kubernetes-smoke:${DOCKER_TAG} \ +opnfv/functest-kubernetes-features:${DOCKER_TAG}" +cmd_opt="run_tests -r -t all" + +for image in ${FUNCTEST_IMAGES}; do + echo "Pulling Docker image ${image} ..." + docker pull "${image}" >/dev/null + cmd="docker run --rm ${envs} ${volumes} ${image} /bin/bash -c '${cmd_opt}'" + echo "Running Functest k8s test cases, CMD: ${cmd}" + eval ${cmd} + ret_value=$? + if [ ${ret_value} != 0 ]; then + echo ${ret_value} > ${ret_val_file} + fi +done diff --git a/jjb/functest/functest-kubernetes-docker.yml b/jjb/functest/functest-kubernetes-docker.yml new file mode 100644 index 000000000..2085251c6 --- /dev/null +++ b/jjb/functest/functest-kubernetes-docker.yml @@ -0,0 +1,182 @@ +--- +############################################## +# job configuration for docker build and push +############################################## +- project: + + name: functest-kubernetes-docker + + project: functest-kubernetes + + stream: + - master: + branch: '{stream}' + disabled: false + - fraser: + branch: 'stable/{stream}' + disabled: false + + arch_tag: + - 'amd64': + slave_label: 'opnfv-build-ubuntu' + + # yamllint disable rule:key-duplicates + image: + - 'core' + - 'healthcheck' + - 'smoke' + - 'features' + + # settings for jobs run in multijob phases + build-job-settings: &build-job-settings + current-parameters: false + git-revision: true + node-parameters: false + predefined-parameters: | + PUSH_IMAGE=$PUSH_IMAGE + COMMIT_ID=$COMMIT_ID + GERRIT_REFNAME=$GERRIT_REFNAME + DOCKERFILE=$DOCKERFILE + kill-phase-on: FAILURE + abort-all-jobs: false + + manifest-job-settings: &manifest-job-settings + current-parameters: false + git-revision: true + node-parameters: false + predefined-parameters: + GERRIT_REFNAME=$GERRIT_REFNAME + kill-phase-on: FAILURE + abort-all-jobs: false + + # yamllint enable rule:key-duplicates + jobs: + - "functest-kubernetes-docker-{stream}" + - "functest-kubernetes-{image}-docker-build-{arch_tag}-{stream}" + +######################## +# job templates +######################## +- job-template: + name: 'functest-kubernetes-docker-{stream}' + + project-type: multijob + + disabled: '{obj:disabled}' + + parameters: + - functest-kubernetes-job-parameters: + project: '{project}' + branch: '{branch}' + slave_label: 'opnfv-build-ubuntu' + arch_tag: 'amd64' + + properties: + - throttle: + max-per-node: 1 + option: 'project' + + scm: + - git-scm + + triggers: + - pollscm: + cron: "*/30 * * * *" + - gerrit-trigger-tag-created: + project: '{project}' + + builders: + - multijob: + name: 'build functest-kubernetes-core images' + execution-type: PARALLEL + projects: + - name: 'functest-kubernetes-core-docker-build-amd64-{stream}' + <<: *build-job-settings + - multijob: + name: 'build functest-kubernetes-[healthcheck,features] image' + execution-type: PARALLEL + projects: + - name: 'functest-kubernetes-healthcheck-docker-build-amd64-{stream}' + <<: *build-job-settings + - name: 'functest-kubernetes-features-docker-build-amd64-{stream}' + <<: *build-job-settings + - multijob: + name: 'build functest-kubernetes-smoke image' + execution-type: PARALLEL + projects: + - name: 'functest-kubernetes-smoke-docker-build-amd64-{stream}' + <<: *build-job-settings + + publishers: + - 'functest-kubernetes-amd64-recipients' + +- job-template: + name: 'functest-kubernetes-{image}-docker-build-{arch_tag}-{stream}' + disabled: '{obj:disabled}' + parameters: + - functest-kubernetes-job-parameters: + project: '{project}' + branch: '{branch}' + slave_label: '{slave_label}' + arch_tag: '{arch_tag}' + scm: + - git-scm + builders: + - shell: | + #!/bin/bash -ex + sudo amd64_dirs=docker/{image} bash ./build.sh + exit $? + +# parameter macro +- parameter: + name: functest-kubernetes-job-parameters + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - label: + name: SLAVE_LABEL + default: '{slave_label}' + description: 'Slave label on Jenkins' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: PUSH_IMAGE + default: "true" + description: "To enable/disable pushing the image to Dockerhub." + - string: + name: COMMIT_ID + default: "" + description: "commit id to make a snapshot docker image" + - string: + name: GERRIT_REFNAME + default: "" + description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" + - string: + name: DOCKERFILE + default: "Dockerfile" + description: "Dockerfile to use for creating the image." + - string: + name: ARCH_TAG + default: "{arch_tag}" + description: "If set, this value will be added to the docker image tag as a prefix" + - string: + name: PROJECT + default: "{project}" + description: "Project name used to enable job conditions" + - string: + name: REPO + default: "opnfv" + description: "Repository name for functest images" + +- publisher: + name: 'functest-kubernetes-amd64-recipients' + publishers: + - email: + recipients: > + jalausuch@suse.com morgan.richomme@orange.com + cedric.ollivier@orange.com feng.xiaowei@zte.com.cn + juha.kosonen@nokia.com wangwulin@huawei.com + valentin.boucher@kontron.com diff --git a/jjb/functest/functest-kubernetes-project-jobs.yml b/jjb/functest/functest-kubernetes-project-jobs.yml index 55999060a..7f8dd8d53 100644 --- a/jjb/functest/functest-kubernetes-project-jobs.yml +++ b/jjb/functest/functest-kubernetes-project-jobs.yml @@ -18,11 +18,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - fraser: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - euphrates: + - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/functest/functest-project-jobs.yml b/jjb/functest/functest-project-jobs.yml index b3ab3ca37..4468da778 100644 --- a/jjb/functest/functest-project-jobs.yml +++ b/jjb/functest/functest-project-jobs.yml @@ -18,11 +18,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - fraser: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - euphrates: + - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/functest/functest-weekly-jobs.yml b/jjb/functest/functest-weekly-jobs.yml index 5d572aacc..c88fa0050 100644 --- a/jjb/functest/functest-weekly-jobs.yml +++ b/jjb/functest/functest-weekly-jobs.yml @@ -16,11 +16,11 @@ gs-pathname: '' docker-tag: 'latest' disabled: false - euphrates: &euphrates - stream: euphrates + fraser: &fraser + stream: fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' - docker-tag: 'stable' + docker-tag: '{stream}' disabled: false # ------------------------------- # POD, INSTALLER, AND BRANCH MAPPING @@ -43,11 +43,11 @@ - baremetal: slave-label: fuel-baremetal installer: fuel - <<: *euphrates + <<: *fraser - virtual: slave-label: fuel-virtual installer: fuel - <<: *euphrates + <<: *fraser # ------------------------------- jobs: - 'functest-{installer}-{pod}-weekly-{stream}' diff --git a/jjb/functest/xtesting-docker.yml b/jjb/functest/xtesting-docker.yml index dc26344e3..251c3954e 100644 --- a/jjb/functest/xtesting-docker.yml +++ b/jjb/functest/xtesting-docker.yml @@ -12,6 +12,9 @@ - master: branch: '{stream}' disabled: false + - fraser: + branch: 'stable/{stream}' + disabled: false arch_tag: - 'amd64': diff --git a/jjb/functest/xtesting-project-jobs.yml b/jjb/functest/xtesting-project-jobs.yml index bf08775b6..e109387c6 100644 --- a/jjb/functest/xtesting-project-jobs.yml +++ b/jjb/functest/xtesting-project-jobs.yml @@ -18,7 +18,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - euphrates: + - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/global/installer-params.yml b/jjb/global/installer-params.yml index 683ef78ba..f663c4556 100644 --- a/jjb/global/installer-params.yml +++ b/jjb/global/installer-params.yml @@ -146,3 +146,11 @@ name: EXTERNAL_NETWORK default: 'external' description: 'external network for test' + +- parameter: + name: 'deploy-scenario' + parameters: + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + description: "OPNFV deployment scenario" diff --git a/jjb/global/releng-macros.yml b/jjb/global/releng-macros.yml index 205802fab..d70e7e0a5 100644 --- a/jjb/global/releng-macros.yml +++ b/jjb/global/releng-macros.yml @@ -40,6 +40,34 @@ default: 'refs/heads/{branch}' description: "Default refspec needed for manually triggering." +## +# Reporting Deployment Results +# +# To report deployment results to +# http://testresults.opnfv.org/test/#/deployresults, add the following +# parameters, builders, and publishers to a deployment job: +# +# parameters: +# - testapi-parameter +# +# builders: +# - track-begin-timestamp +# +# publishers: +# - report-provision-result +# +# Note: The following string parameter must also exist, as they are used +# when reporting the provision result: +# +# * INSTALLER +# * INSTALLER_VERSION +# * DEPLOY_SCENARIO +# +# most installers include these but you should verify first before +# adding the publisher, otherwise the deployment build may be marked +# unstable. +# +## - parameter: name: testapi-parameter parameters: @@ -47,10 +75,6 @@ name: TESTAPI_URL default: 'http://testresults.opnfv.org/test/api/v1' description: "Default TestAPI URL, currently using v1" - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - description: "OPNFV deployment scenario" - string: name: INSTALLER_VERSION default: 'master' diff --git a/jjb/global/slave-params.yml b/jjb/global/slave-params.yml index 628c13f79..ee6357890 100644 --- a/jjb/global/slave-params.yml +++ b/jjb/global/slave-params.yml @@ -1005,18 +1005,6 @@ - parameter: name: 'doctor-slave-parameter' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - 'doctor-apex-x86_64' - - 'doctor-fuel-x86_64' - - 'doctor-fuel-aarch64' - - 'doctor-joid-x86_64' - - 'doctor-daisy-x86_64' - - 'not-specified' - default-slaves: - - 'not-specified' - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT diff --git a/jjb/nfvbench/nfvbench.yml b/jjb/nfvbench/nfvbench.yml index a01e9aaa6..44e85d2c8 100644 --- a/jjb/nfvbench/nfvbench.yml +++ b/jjb/nfvbench/nfvbench.yml @@ -12,8 +12,13 @@ - master: branch: '{stream}' gs-pathname: '' - disabled: false docker-tag: 'latest' + disabled: false + - fraser: &fraser + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + docker-tag: 'stable' + disabled: false - job-template: name: 'nfvbench-build-{stream}' diff --git a/jjb/ovn4nfv/ovn4nfv-project-jobs.yml b/jjb/ovn4nfv/ovn4nfv-project-jobs.yml index 97d1baefd..2ce4b6df9 100644 --- a/jjb/ovn4nfv/ovn4nfv-project-jobs.yml +++ b/jjb/ovn4nfv/ovn4nfv-project-jobs.yml @@ -9,7 +9,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - euphrates: + - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/parser/parser.yml b/jjb/parser/parser.yml index 87544196a..b711985bd 100644 --- a/jjb/parser/parser.yml +++ b/jjb/parser/parser.yml @@ -16,6 +16,10 @@ branch: '{stream}' gs-pathname: '' disabled: false + - fraser: &fraser + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' diff --git a/jjb/pharos/check-jinja2.yml b/jjb/pharos/check-jinja2.yml index 3ef2f04e5..e3f0df78a 100644 --- a/jjb/pharos/check-jinja2.yml +++ b/jjb/pharos/check-jinja2.yml @@ -15,6 +15,9 @@ - master: branch: '{stream}' disabled: false + - fraser: &fraser + branch: 'stable/{stream}' + disabled: false - euphrates: branch: 'stable/{stream}' disabled: false diff --git a/jjb/qtip/qtip-validate-jobs.yml b/jjb/qtip/qtip-validate-jobs.yml index f20b321ad..0fc623c74 100644 --- a/jjb/qtip/qtip-validate-jobs.yml +++ b/jjb/qtip/qtip-validate-jobs.yml @@ -44,6 +44,21 @@ pod: zte-virtual6 sut: vnf <<: *master + - compute: + installer: apex + pod: zte-virtual5 + sut: node + <<: *fraser + - storage: + installer: apex + pod: zte-virtual5 + sut: '' + <<: *fraser + - compute: + installer: fuel + pod: zte-virtual6 + sut: vnf + <<: *fraser # ------------------------------- diff --git a/jjb/releng/opnfv-docker-arm.yml b/jjb/releng/opnfv-docker-arm.yml index fbf565844..9066b419e 100644 --- a/jjb/releng/opnfv-docker-arm.yml +++ b/jjb/releng/opnfv-docker-arm.yml @@ -15,6 +15,10 @@ stream: euphrates branch: 'stable/{stream}' disabled: false + fraser: &fraser + stream: fraser + branch: 'stable/{stream}' + disabled: false dovetail-arm-receivers: &dovetail-arm-receivers receivers: > cristina.pauna@enea.com @@ -93,39 +97,39 @@ dockerdir: 'docker/storperf-master' docker_repo_name: 'opnfv/storperf-master' arch_tag: 'aarch64' - <<: *euphrates + <<: *fraser <<: *storperf-arm-receivers - 'storperf-graphite': project: 'storperf' dockerdir: 'docker/storperf-graphite' docker_repo_name: 'opnfv/storperf-graphite' arch_tag: 'aarch64' - <<: *euphrates + <<: *fraser <<: *storperf-arm-receivers - 'storperf-httpfrontend': project: 'storperf' dockerdir: 'docker/storperf-httpfrontend' docker_repo_name: 'opnfv/storperf-httpfrontend' arch_tag: 'aarch64' - <<: *euphrates + <<: *fraser <<: *storperf-arm-receivers - 'storperf-reporting': project: 'storperf' dockerdir: 'docker/storperf-reporting' docker_repo_name: 'opnfv/storperf-reporting' arch_tag: 'aarch64' - <<: *euphrates + <<: *fraser <<: *storperf-arm-receivers - 'storperf-swaggerui': project: 'storperf' dockerdir: 'docker/storperf-swaggerui' docker_repo_name: 'opnfv/storperf-swaggerui' arch_tag: 'aarch64' - <<: *euphrates + <<: *fraser <<: *storperf-arm-receivers - 'yardstick': project: 'yardstick' - <<: *euphrates + <<: *fraser <<: *yardstick-arm-receivers # yamllint enable rule:key-duplicates diff --git a/jjb/releng/opnfv-docker.yml b/jjb/releng/opnfv-docker.yml index 5406bc86d..0fe76f029 100644 --- a/jjb/releng/opnfv-docker.yml +++ b/jjb/releng/opnfv-docker.yml @@ -77,6 +77,36 @@ project: 'bottlenecks' <<: *master <<: *other-receivers + - 'clover': + project: 'clover' + dockerdir: '.' + dockerfile: 'docker/Dockerfile' + <<: *master + <<: *other-receivers + - 'clover-ns-nginx-lb': + project: 'clover' + dockerdir: 'samples/services/nginx/docker' + dockerfile: 'subservices/lb/Dockerfile' + <<: *master + <<: *other-receivers + - 'clover-ns-nginx-proxy': + project: 'clover' + dockerdir: 'samples/services/nginx/docker' + dockerfile: 'subservices/proxy/Dockerfile' + <<: *master + <<: *other-receivers + - 'clover-ns-nginx-server': + project: 'clover' + dockerdir: 'samples/services/nginx/docker' + dockerfile: 'subservices/server/Dockerfile' + <<: *master + <<: *other-receivers + - 'clover-ns-snort-ids': + project: 'clover' + dockerdir: 'samples/services/snort_ids/docker' + dockerfile: 'Dockerfile' + <<: *master + <<: *other-receivers - 'cperf': project: 'cperf' <<: *master @@ -134,15 +164,6 @@ project: 'yardstick' <<: *master <<: *other-receivers - - 'functest-kubernetes': - project: 'functest-kubernetes' - <<: *master - <<: *other-receivers - # projects with jobs for fraser - - 'functest-kubernetes': - project: 'functest-kubernetes' - <<: *fraser - <<: *other-receivers # projects with jobs for euphrates - 'bottlenecks': project: 'bottlenecks' @@ -150,52 +171,84 @@ <<: *other-receivers - 'nfvbench': project: 'nfvbench' - <<: *euphrates + <<: *fraser <<: *other-receivers - 'qtip': project: 'qtip' - <<: *euphrates + dockerdir: '.' + dockerfile: 'docker/Dockerfile.local' + <<: *fraser <<: *other-receivers - 'storperf-master': project: 'storperf' dockerdir: 'docker/storperf-master' arch_tag: 'x86_64' - <<: *euphrates + <<: *fraser <<: *storperf-receivers - 'storperf-graphite': project: 'storperf' dockerdir: 'docker/storperf-graphite' arch_tag: 'x86_64' - <<: *euphrates + <<: *fraser <<: *storperf-receivers - 'storperf-httpfrontend': project: 'storperf' dockerdir: 'docker/storperf-httpfrontend' arch_tag: 'x86_64' - <<: *euphrates + <<: *fraser <<: *storperf-receivers - 'storperf-reporting': project: 'storperf' dockerdir: 'docker/storperf-reporting' arch_tag: 'x86_64' - <<: *euphrates + <<: *fraser <<: *storperf-receivers - 'storperf-swaggerui': project: 'storperf' dockerdir: 'docker/storperf-swaggerui' arch_tag: 'x86_64' - <<: *euphrates + <<: *fraser <<: *storperf-receivers - 'yardstick': project: 'yardstick' - <<: *euphrates + <<: *fraser <<: *other-receivers # projects with jobs for danube - 'dovetail': project: 'dovetail' <<: *danube <<: *other-receivers - + # projects with jobs for fraser + - 'clover': + project: 'clover' + dockerdir: '.' + dockerfile: 'docker/Dockerfile' + <<: *fraser + <<: *other-receivers + - 'clover-ns-nginx-lb': + project: 'clover' + dockerdir: 'samples/services/nginx/docker' + dockerfile: 'subservices/lb/Dockerfile' + <<: *fraser + <<: *other-receivers + - 'clover-ns-nginx-proxy': + project: 'clover' + dockerdir: 'samples/services/nginx/docker' + dockerfile: 'subservices/proxy/Dockerfile' + <<: *fraser + <<: *other-receivers + - 'clover-ns-nginx-server': + project: 'clover' + dockerdir: 'samples/services/nginx/docker' + dockerfile: 'subservices/server/Dockerfile' + <<: *fraser + <<: *other-receivers + - 'clover-ns-snort-ids': + project: 'clover' + dockerdir: 'samples/services/snort_ids/docker' + dockerfile: 'Dockerfile' + <<: *fraser + <<: *other-receivers # yamllint enable rule:key-duplicates jobs: - "{dockerrepo}-docker-build-push-{stream}" diff --git a/jjb/securedlab/check-jinja2.yml b/jjb/securedlab/check-jinja2.yml index 155be175d..f7a7941dc 100644 --- a/jjb/securedlab/check-jinja2.yml +++ b/jjb/securedlab/check-jinja2.yml @@ -15,7 +15,7 @@ - master: branch: '{stream}' disabled: false - - euphrates: + - fraser: branch: 'stable/{stream}' disabled: false diff --git a/jjb/sfc/sfc-project-jobs.yml b/jjb/sfc/sfc-project-jobs.yml index 82a2cfb5d..fea792467 100644 --- a/jjb/sfc/sfc-project-jobs.yml +++ b/jjb/sfc/sfc-project-jobs.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - euphrates: + - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/snaps/snaps-verify-jobs.yml b/jjb/snaps/snaps-verify-jobs.yml index a6c86c966..44a1fbf67 100644 --- a/jjb/snaps/snaps-verify-jobs.yml +++ b/jjb/snaps/snaps-verify-jobs.yml @@ -16,6 +16,10 @@ branch: '{stream}' gs-pathname: '' disabled: true + - fraser: &fraser + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false - job-template: name: 'snaps-verify-{stream}' diff --git a/jjb/vswitchperf/vswitchperf.yml b/jjb/vswitchperf/vswitchperf.yml index 01a154aec..ba0742f3b 100644 --- a/jjb/vswitchperf/vswitchperf.yml +++ b/jjb/vswitchperf/vswitchperf.yml @@ -19,10 +19,6 @@ branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false - - euphrates: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - job-template: diff --git a/jjb/xci/bifrost-verify.sh b/jjb/xci/bifrost-verify.sh index 9d524bcb0..c810212e3 100755 --- a/jjb/xci/bifrost-verify.sh +++ b/jjb/xci/bifrost-verify.sh @@ -27,6 +27,9 @@ set -o nounset set -o pipefail cd ~/bifrost +# set path for XCI repository +export XCI_PATH=~/bifrost/releng-xci + # provision 3 VMs; xcimaster, controller, and compute ./scripts/bifrost-provision.sh | ts diff --git a/jjb/xci/xci-run-functest.sh b/jjb/xci/xci-run-functest.sh index aa98e07aa..6d43c9789 100755 --- a/jjb/xci/xci-run-functest.sh +++ b/jjb/xci/xci-run-functest.sh @@ -24,12 +24,6 @@ if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then exit 0 fi -# skip the healthcheck if the scenario is Kubernetes scenario -if [[ "$DEPLOY_SCENARIO" =~ k8 ]]; then - echo "Skipping the healthcheck!" - exit 0 -fi - # if the scenario is external, we need to wipe WORKSPACE to place releng-xci there since # the project where the scenario is coming from is cloned and the patch checked out to the # xci/scenarios/$DEPLOY_SCENARIO to be synched on clean VM @@ -50,17 +44,30 @@ if ! sed -n "/^- scenario: $DEPLOY_SCENARIO$/,/^$/p" $OPNFV_SCENARIO_REQUIREMENT fi # set XCI_VENV for ansible -export XCI_VENV=/home/devuser/releng-xci/venv +export XCI_PATH=/home/devuser/releng-xci +export XCI_VENV=${XCI_PATH}/venv -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "source $XCI_VENV/bin/activate; cd releng-xci/xci && ansible-playbook -i installer/osa/files/$XCI_FLAVOR/inventory playbooks/prepare-functest.yml" +ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "source $XCI_VENV/bin/activate; while read var; do declare -x \"\${var}\" 2>/dev/null; done < ${XCI_PATH}/.cache/xci.env && cd releng-xci/xci && ansible-playbook -i installer/osa/files/$XCI_FLAVOR/inventory playbooks/prepare-functest.yml" echo "Running functest" ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "/root/run-functest.sh" +# Record exit code +functest_exit=$? + +case ${DEPLOY_SCENARIO[0]} in + os-*) + FUNCTEST_LOG=/root/results/functest.log + ;; + k8-*) + FUNCTEST_LOG=/root/results/functest-kubernetes.log + ;; + *) + echo "Unable to determine the installer. Exiting!" + exit 1 + ;; +esac + echo "Functest log" echo "---------------------------------------------------------------------------------" -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "cat /root/results/functest.log" +ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "cat $FUNCTEST_LOG" echo "---------------------------------------------------------------------------------" -# check the log to see if we have any error -if ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "grep -q 'FAIL' /root/results/functest.log"; then - echo "Error: Functest failed!" - exit 1 -fi +exit ${functest_exit} diff --git a/jjb/xci/xci-set-scenario.sh b/jjb/xci/xci-set-scenario.sh index c3012cd88..c28093d27 100755 --- a/jjb/xci/xci-set-scenario.sh +++ b/jjb/xci/xci-set-scenario.sh @@ -7,7 +7,6 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -set -o errexit set -o pipefail #---------------------------------------------------------------------- @@ -96,23 +95,27 @@ function determine_generic_scenario() { # get the changeset cd $WORKSPACE - CHANGESET=$(git diff HEAD^..HEAD --name-only) - for CHANGED_FILE in $CHANGESET; do - case $CHANGED_FILE in - *k8-nosdn*|*kubespray*) - [[ ${DEPLOY_SCENARIO[@]} =~ "k8-nosdn-nofeature" ]] || DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='k8-nosdn-nofeature' - ;; - *os-odl*) - [[ ${DEPLOY_SCENARIO[@]} =~ "os-odl-nofeature" ]] || DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-odl-nofeature' - ;; - *os-nosdn*|*osa*) - [[ ${DEPLOY_SCENARIO[@]} =~ "os-nosdn-nofeature" ]] || DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature' + SCENARIOS=$(git diff HEAD^..HEAD --name-only -- 'xci/scenarios' | cut -d "/" -f 3 | uniq) + # We need to set default scenario for changes that mess with installers + INSTALLERS=$(git diff HEAD^..HEAD --name-only -- 'xci/installer' | cut -d "/" -f 3 | uniq) + for CHANGED_SCENARIO in $SCENARIOS; do + DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]=$CHANGED_SCENARIO + done + for CHANGED_INSTALLER in $INSTALLERS; do + case $CHANGED_INSTALLER in + kubespray) + DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='k8-nosdn-nofeature' ;; + # Default case (including OSA changes) *) - [[ ${DEPLOY_SCENARIO[@]} =~ "os-nosdn-nofeature" ]] || DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature' + DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature' ;; - esac + esac done + # For all other changes, we only need to set a default scenario if it's not set already + if git diff HEAD^..HEAD --name-only | grep -q -v 'xci/installer\|xci/scenario'; then + [[ ${#DEPLOY_SCENARIO[@]} -eq 0 ]] && DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature' + fi # extract releng-xci sha XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD) diff --git a/jjb/yardstick/yardstick-daily-jobs.yml b/jjb/yardstick/yardstick-daily-jobs.yml index 24c7f319b..fefa8e68a 100644 --- a/jjb/yardstick/yardstick-daily-jobs.yml +++ b/jjb/yardstick/yardstick-daily-jobs.yml @@ -15,8 +15,8 @@ branch: '{stream}' gs-pathname: '' docker-tag: 'latest' - euphrates: &euphrates - stream: euphrates + fraser: &fraser + stream: fraser branch: 'stable/{stream}' gs-pathname: '{stream}' docker-tag: 'stable' @@ -41,15 +41,15 @@ auto-trigger-name: 'daily-trigger-disabled' <<: *master - virtual: - slave-label: apex-virtual-euphrates + slave-label: apex-virtual-fraser installer: apex auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - baremetal: - slave-label: apex-baremetal-euphrates + slave-label: apex-baremetal-fraser installer: apex auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser # fuel CI PODs - baremetal: slave-label: fuel-baremetal @@ -65,12 +65,12 @@ slave-label: fuel-baremetal installer: fuel auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - virtual: slave-label: fuel-virtual installer: fuel auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser # armband CI PODs - armband-baremetal: slave-label: armband-baremetal @@ -86,12 +86,12 @@ slave-label: armband-baremetal installer: fuel auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - armband-virtual: slave-label: armband-virtual installer: fuel auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser # joid CI PODs - baremetal: slave-label: joid-baremetal @@ -107,12 +107,12 @@ slave-label: joid-baremetal installer: joid auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - virtual: slave-label: joid-virtual installer: joid auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser # compass CI PODs - baremetal: slave-label: compass-baremetal @@ -128,18 +128,23 @@ slave-label: compass-baremetal installer: compass auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - virtual: slave-label: compass-virtual installer: compass auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser # daisy CI PODs - baremetal: slave-label: daisy-baremetal installer: daisy auto-trigger-name: 'daily-trigger-disabled' <<: *master + - baremetal: + slave-label: daisy-baremetal + installer: daisy + auto-trigger-name: 'daily-trigger-disabled' + <<: *fraser - virtual: slave-label: daisy-virtual installer: daisy @@ -162,7 +167,7 @@ slave-label: '{pod}' installer: fuel auto-trigger-name: 'daily-trigger-disabled' - <<: *euphrates + <<: *fraser - zte-pod2: slave-label: '{pod}' installer: daisy @@ -330,7 +335,7 @@ description: 'Arguments to use in order to choose the backend DB' - parameter: - name: 'yardstick-params-apex-virtual-euphrates' + name: 'yardstick-params-apex-virtual-fraser' parameters: - string: name: YARDSTICK_DB_BACKEND @@ -338,7 +343,7 @@ description: 'Arguments to use in order to choose the backend DB' - parameter: - name: 'yardstick-params-apex-baremetal-euphrates' + name: 'yardstick-params-apex-baremetal-fraser' parameters: - string: name: YARDSTICK_DB_BACKEND diff --git a/jjb/yardstick/yardstick-project-jobs.yml b/jjb/yardstick/yardstick-project-jobs.yml index c03666388..56e825e19 100644 --- a/jjb/yardstick/yardstick-project-jobs.yml +++ b/jjb/yardstick/yardstick-project-jobs.yml @@ -17,7 +17,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - euphrates: + - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false @@ -87,7 +87,8 @@ - string: name: GS_URL default: '$GS_BASE{gs-pathname}' - description: "Directory where the build artifact will be located upon the completion of the build." + description: "Directory where the build artifact will be located upon\ + \ the completion of the build." scm: - git-scm @@ -165,9 +166,17 @@ set -o pipefail sudo apt-get -y autoremove - sudo apt-get install -y build-essential python-dev python3-dev + sudo apt-get install -y build-essential python-dev python3-dev rabbitmq-server sudo apt-get -y clean && sudo apt-get -y autoremove + echo "Configure RabbitMQ service" + sudo service rabbitmq-server restart + sudo rabbitmqctl start_app + if [ -z "$(sudo rabbitmqctl list_users | grep yardstick)" ]; then + sudo rabbitmqctl add_user yardstick yardstick + sudo rabbitmqctl set_permissions yardstick ".*" ".*" ".*" + fi + echo "Running functional tests in Python 2.7 ..." cd $WORKSPACE tox -efunctional @@ -181,9 +190,17 @@ set -o pipefail sudo apt-get -y autoremove - sudo apt-get install -y build-essential python-dev python3-dev + sudo apt-get install -y build-essential python-dev python3-dev rabbitmq-server sudo apt-get -y clean && sudo apt-get -y autoremove + echo "Configure RabbitMQ service" + sudo service rabbitmq-server restart + sudo rabbitmqctl start_app + if [ -z "$(sudo rabbitmqctl list_users | grep yardstick)" ]; then + sudo rabbitmqctl add_user yardstick yardstick + sudo rabbitmqctl set_permissions yardstick ".*" ".*" ".*" + fi + echo "Running functional tests in Python 3 ..." cd $WORKSPACE tox -efunctional-py3 diff --git a/releases/fraser/calipso.yaml b/releases/fraser/calipso.yaml new file mode 100644 index 000000000..e334910a9 --- /dev/null +++ b/releases/fraser/calipso.yaml @@ -0,0 +1,9 @@ +--- +project: calipso +project-type: tools +release-model: stable + +branches: + - name: stable/fraser + location: + calipso: 2e47d8704fa0fe56ced38ddb4fc94f111079bd82 diff --git a/releases/fraser/container4nfv.yaml b/releases/fraser/container4nfv.yaml index f117f33fd..4873937a2 100644 --- a/releases/fraser/container4nfv.yaml +++ b/releases/fraser/container4nfv.yaml @@ -6,4 +6,4 @@ release-model: stable branches: - name: stable/fraser location: - container4nfv: I6145b406450b0846999223f1e4e6783eb06bb0a9 + container4nfv: 84ce45c8bf6e03f0373d9c46e0a8b7e0b3faa605 diff --git a/releases/fraser/functest.yaml b/releases/fraser/functest.yaml index 9956e9681..a070418aa 100644 --- a/releases/fraser/functest.yaml +++ b/releases/fraser/functest.yaml @@ -10,3 +10,6 @@ branches: - name: stable/fraser location: functest-kubernetes: 64d61b6a116d3b12e0f4f42c3240262ea6359fd8 + - name: stable/fraser + location: + functest-xtesting: 4e4d8c583fe403db095e950c06030586f2aa929a diff --git a/releases/fraser/opnfvdocs.yaml b/releases/fraser/opnfvdocs.yaml new file mode 100644 index 000000000..da4835cf5 --- /dev/null +++ b/releases/fraser/opnfvdocs.yaml @@ -0,0 +1,9 @@ +--- +project: opnfvdocs +project-type: infra +release-model: stable + +branches: + - name: stable/fraser + location: + opnfvdocs: 3e010bda69a391f078e581319eccf8de1c4eccb7 diff --git a/releases/fraser/ovno.yaml b/releases/fraser/ovno.yaml new file mode 100644 index 000000000..f014982e7 --- /dev/null +++ b/releases/fraser/ovno.yaml @@ -0,0 +1,9 @@ +--- +project: ovno +project-type: feature +release-model: stable + +branches: + - name: stable/fraser + location: + ovno: 8d1f11e6e6b114bd1a21295e6b47ddf59305ee35 diff --git a/releases/fraser/stor4nfv.yaml b/releases/fraser/stor4nfv.yaml index 4700233aa..5f4f33aa5 100644 --- a/releases/fraser/stor4nfv.yaml +++ b/releases/fraser/stor4nfv.yaml @@ -6,4 +6,4 @@ release-model: stable branches: - name: stable/fraser location: - stor4nfv: I05dd6f833716e36d173f0b4e7f6a317d41f1a039 + stor4nfv: fcedde93eb366867ed428d362e2cb8a6b7f28b3c diff --git a/releases/fraser/storperf.yaml b/releases/fraser/storperf.yaml index 4a1734c76..06a37f6bb 100644 --- a/releases/fraser/storperf.yaml +++ b/releases/fraser/storperf.yaml @@ -4,6 +4,6 @@ project-type: testing release-model: stable branches: - - name: stable/euphrates + - name: stable/fraser location: storperf: ce8adafbccb4bc37930f95561fa24874906013ad diff --git a/tox.ini b/tox.ini index d3489e5b0..6618a8189 100644 --- a/tox.ini +++ b/tox.ini @@ -17,4 +17,4 @@ setenv= deps = jenkins-job-builder==1.6.1 commands= - jenkins-jobs test -o job_output -r jjb/ + jenkins-jobs test -o job_output -r jjb/global:{posargs:"jjb/"}