diff options
28 files changed, 521 insertions, 112 deletions
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-fetch-logs.sh b/jjb/apex/apex-fetch-logs.sh new file mode 100755 index 000000000..f25f456b1 --- /dev/null +++ b/jjb/apex/apex-fetch-logs.sh @@ -0,0 +1,24 @@ +#!/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 + UPLOAD_LOCATION="${GS_URL}/logs/${JOB_NAME}/${BUILD_NUMBER}/" + gsutil cp -r ${LOG_LOCATION} gs://${UPLOAD_LOCATION} > gsutil.latest_logs.log + echo "Logs available at https://${UPLOAD_LOCATION}/$(basename $LOG_LOCATION)" + 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..79b358815 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 @@ -342,7 +342,7 @@ 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..80ba50b71 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}' @@ -234,6 +235,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 +456,7 @@ git-revision: true - multijob: name: functest-smoke - condition: SUCCESSFUL + condition: ALWAYS projects: - name: 'functest-apex-virtual-suite-{stream}' current-parameters: false @@ -442,6 +471,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 +546,7 @@ git-revision: false - multijob: name: 'OPNFV Test Suite' + condition: ALWAYS projects: - name: 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' node-parameters: true @@ -512,7 +556,18 @@ kill-phase-on: NEVER abort-all-job: true git-revision: false - + - multijob: + name: apex-fetch-logs + projects: + - name: 'apex-fetch-logs' + 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: @@ -1826,6 +1881,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..29a93b4d0 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}' @@ -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' + 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/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml index 1c5f14880..c74e3c83d 100644 --- a/jjb/armband/armband-ci-jobs.yml +++ b/jjb/armband/armband-ci-jobs.yml @@ -12,8 +12,8 @@ branch: '{stream}' gs-pathname: '' disabled: false - euphrates: &euphrates - stream: euphrates + fraser: &fraser + stream: fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false @@ -33,16 +33,16 @@ # ------------------------------- # CI POD's # ------------------------------- - # euphrates + # fraser # ------------------------------- pod: # yamllint disable rule:key-duplicates - armband-baremetal: <<: *baremetal - <<: *euphrates + <<: *fraser - armband-virtual: <<: *virtual - <<: *euphrates + <<: *fraser # ------------------------------- # master # ------------------------------- @@ -71,10 +71,6 @@ - 'os-nosdn-nofeature-noha': auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' - exclude: - - scenario: os-ovn-nofeature-ha - stream: euphrates - jobs: - '{installer}-{scenario}-{pod}-daily-{stream}' - '{installer}-deploy-{pod}-daily-{stream}' @@ -302,24 +298,28 @@ triggers: - timed: '0 1 * * 1,3' # --------------------------------------------------------------------- -# Enea Armband CI Baremetal Triggers running against euphrates branch +# Enea Armband CI Baremetal Triggers running against fraser branch # --------------------------------------------------------------------- - trigger: - name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-euphrates-trigger' + name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-fraser-trigger' triggers: - - timed: '' + - timed: '0 1 * * 4,6' - trigger: - name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-euphrates-trigger' + name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-odl-nofeature-ha-armband-baremetal-euphrates-trigger' + name: 'fuel-os-odl-nofeature-ha-armband-baremetal-fraser-trigger' triggers: - - timed: '' + - timed: '0 1 * * 2,5,7' - trigger: - name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-euphrates-trigger' + name: 'fuel-os-ovn-nofeature-ha-armband-baremetal-fraser-trigger' triggers: - timed: '' +- trigger: + name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-fraser-trigger' + triggers: + - timed: '0 1 * * 1,3' # -------------------------------------------------------------- # Enea Armband CI Virtual Triggers running against master branch @@ -345,21 +345,25 @@ triggers: - timed: '' # ------------------------------------------------------------------- -# Enea Armband CI Virtual Triggers running against euphrates branch +# Enea Armband CI Virtual Triggers running against fraser branch # ------------------------------------------------------------------- - trigger: - name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-euphrates-trigger' + name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-fraser-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-euphrates-trigger' + name: 'fuel-os-odl-nofeature-ha-armband-virtual-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-odl-nofeature-ha-armband-virtual-euphrates-trigger' + name: 'fuel-os-ovn-nofeature-ha-armband-virtual-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-ovs-ha-armband-virtual-euphrates-trigger' + name: 'fuel-os-nosdn-ovs-ha-armband-virtual-fraser-trigger' triggers: - timed: '' diff --git a/jjb/armband/armband-verify-jobs.yml b/jjb/armband/armband-verify-jobs.yml index 1ebb7df5c..c800872c7 100644 --- a/jjb/armband/armband-verify-jobs.yml +++ b/jjb/armband/armband-verify-jobs.yml @@ -13,7 +13,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - euphrates: + - fraser: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/clover/clover-project.yml b/jjb/clover/clover-project.yml index b31f3deb2..9744688a7 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' @@ -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 diff --git a/jjb/doctor/doctor.yml b/jjb/doctor/doctor.yml index 8c04ffd53..eba22dc05 100644 --- a/jjb/doctor/doctor.yml +++ b/jjb/doctor/doctor.yml @@ -10,7 +10,7 @@ gs-pathname: '' docker-tag: 'latest' disabled: false - - euphrates: + - fraser: &fraser branch: 'stable/{stream}' gs-pathname: '/{stream}' docker-tag: 'stable' diff --git a/jjb/fuel/fuel-daily-jobs.yml b/jjb/fuel/fuel-daily-jobs.yml index a198751a8..9c7b5da20 100644 --- a/jjb/fuel/fuel-daily-jobs.yml +++ b/jjb/fuel/fuel-daily-jobs.yml @@ -16,8 +16,8 @@ branch: '{stream}' disabled: false gs-pathname: '' - euphrates: &euphrates - stream: euphrates + fraser: &fraser + stream: fraser branch: 'stable/{stream}' disabled: false gs-pathname: '/{stream}' @@ -40,10 +40,10 @@ <<: *master - baremetal: slave-label: fuel-baremetal - <<: *euphrates + <<: *fraser - virtual: slave-label: fuel-virtual - <<: *euphrates + <<: *fraser # ------------------------------- # None-CI PODs # ------------------------------- @@ -102,15 +102,11 @@ - scenario: os-odl_l2-bgpvpn-ha stream: master - scenario: os-odl_l2-bgpvpn-ha - stream: euphrates + stream: fraser - scenario: os-ovn-nofeature-noha stream: danube - - scenario: os-ovn-nofeature-noha - stream: euphrates - scenario: os-ovn-nofeature-ha stream: danube - - scenario: os-ovn-nofeature-ha - stream: euphrates jobs: - 'fuel-{scenario}-{pod}-daily-{stream}' @@ -445,72 +441,80 @@ triggers: - timed: '' # ---------------------------------------------- -# Triggers for job running on fuel-baremetal against euphrates branch +# Triggers for job running on fuel-baremetal against fraser branch # ---------------------------------------------- # HA Scenarios - trigger: - name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-fraser-trigger' triggers: - timed: '' # '0 20 * * *' - trigger: - name: 'fuel-os-odl-nofeature-ha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-odl-nofeature-ha-baremetal-daily-fraser-trigger' triggers: - timed: '' # '0 2 * * *' - trigger: - name: 'fuel-os-onos-sfc-ha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-onos-sfc-ha-baremetal-daily-fraser-trigger' triggers: - timed: '' # '0 5 * * *' - trigger: - name: 'fuel-os-onos-nofeature-ha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-ovn-nofeature-ha-baremetal-daily-fraser-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-onos-nofeature-ha-baremetal-daily-fraser-trigger' triggers: - timed: '' # '0 8 * * *' - trigger: - name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-fraser-trigger' triggers: - timed: '' # '0 17 * * *' - trigger: - name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-fraser-trigger' triggers: - timed: '' # '0 20 * * *' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-fraser-trigger' triggers: - timed: '' # '0 12 * * *' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-fraser-trigger' triggers: - timed: '' # '0 8 * * *' # NOHA Scenarios - trigger: - name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-fraser-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-odl-nofeature-noha-baremetal-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-odl-nofeature-noha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-onos-sfc-noha-baremetal-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-onos-sfc-noha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-onos-nofeature-noha-baremetal-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-onos-nofeature-noha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-fraser-trigger' triggers: - timed: '' # ---------------------------------------------- @@ -590,71 +594,79 @@ triggers: - timed: '' # '30 20 * * *' # ---------------------------------------------- -# Triggers for job running on fuel-virtual against euphrates branch +# Triggers for job running on fuel-virtual against fraser branch # ---------------------------------------------- - trigger: - name: 'fuel-os-nosdn-nofeature-ha-virtual-daily-euphrates-trigger' + name: 'fuel-os-nosdn-nofeature-ha-virtual-daily-fraser-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-odl-nofeature-ha-virtual-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-odl-nofeature-ha-virtual-daily-euphrates-trigger' + name: 'fuel-os-onos-sfc-ha-virtual-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-onos-sfc-ha-virtual-daily-euphrates-trigger' + name: 'fuel-os-onos-nofeature-ha-virtual-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-onos-nofeature-ha-virtual-daily-euphrates-trigger' + name: 'fuel-os-ovn-nofeature-ha-virtual-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm-ha-virtual-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm-ha-virtual-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-ovs-ha-virtual-daily-euphrates-trigger' + name: 'fuel-os-nosdn-ovs-ha-virtual-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-fraser-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-fraser-trigger' triggers: - timed: '' # NOHA Scenarios - trigger: - name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-euphrates-trigger' + name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-fraser-trigger' triggers: - timed: '' # '0 13 * * *' - trigger: - name: 'fuel-os-odl-nofeature-noha-virtual-daily-euphrates-trigger' + name: 'fuel-os-odl-nofeature-noha-virtual-daily-fraser-trigger' triggers: - timed: '' # '0 18 * * *' - trigger: - name: 'fuel-os-onos-sfc-noha-virtual-daily-euphrates-trigger' + name: 'fuel-os-ovn-nofeature-noha-virtual-daily-fraser-trigger' + triggers: + - timed: '5 23 * * *' +- trigger: + name: 'fuel-os-onos-sfc-noha-virtual-daily-fraser-trigger' triggers: - timed: '' # '30 20 * * *' - trigger: - name: 'fuel-os-onos-nofeature-noha-virtual-daily-euphrates-trigger' + name: 'fuel-os-onos-nofeature-noha-virtual-daily-fraser-trigger' triggers: - timed: '' # '0 23 * * *' - trigger: - name: 'fuel-os-nosdn-kvm-noha-virtual-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm-noha-virtual-daily-fraser-trigger' triggers: - timed: '' # '30 6 * * *' - trigger: - name: 'fuel-os-nosdn-ovs-noha-virtual-daily-euphrates-trigger' + name: 'fuel-os-nosdn-ovs-noha-virtual-daily-fraser-trigger' triggers: - timed: '' # '0 9 * * *' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-fraser-trigger' triggers: - timed: '' # '0 16 * * *' - trigger: - name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-virtual-daily-euphrates-trigger' + name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-virtual-daily-fraser-trigger' triggers: - timed: '' # '0 20 * * *' # ---------------------------------------------- diff --git a/jjb/fuel/fuel-project-jobs.yml b/jjb/fuel/fuel-project-jobs.yml index 9e890cde7..fc49f6348 100644 --- a/jjb/fuel/fuel-project-jobs.yml +++ b/jjb/fuel/fuel-project-jobs.yml @@ -14,7 +14,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - euphrates: + - fraser: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/fuel/fuel-verify-jobs.yml b/jjb/fuel/fuel-verify-jobs.yml index 006b4d809..d81b0ce92 100644 --- a/jjb/fuel/fuel-verify-jobs.yml +++ b/jjb/fuel/fuel-verify-jobs.yml @@ -13,7 +13,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - euphrates: + - fraser: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/fuel/fuel-weekly-jobs.yml b/jjb/fuel/fuel-weekly-jobs.yml index f21c58660..459d0d1a7 100644 --- a/jjb/fuel/fuel-weekly-jobs.yml +++ b/jjb/fuel/fuel-weekly-jobs.yml @@ -16,8 +16,8 @@ branch: '{stream}' disabled: false gs-pathname: '' - euphrates: &euphrates - stream: euphrates + fraser: &fraser + stream: fraser branch: 'stable/{stream}' disabled: false gs-pathname: '/{stream}' @@ -35,10 +35,10 @@ <<: *master - baremetal: slave-label: fuel-baremetal - <<: *euphrates + <<: *fraser - virtual: slave-label: fuel-virtual - <<: *euphrates + <<: *fraser # ------------------------------- # scenarios # ------------------------------- diff --git a/jjb/functest/functest-alpine.sh b/jjb/functest/functest-alpine.sh index dfadf9a37..72b94bd18 100755 --- a/jjb/functest/functest-alpine.sh +++ b/jjb/functest/functest-alpine.sh @@ -28,12 +28,12 @@ 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 + if [[ ${BRANCH##*/} == "stable/euphrates" ]]; then cmd_opt="prepare_env start && run_tests -r -t all" [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="prepare_env start && run_tests -t all" + else + cmd_opt="run_tests -r -t all" + [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="run_tests -t all" fi ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value" echo 0 > ${ret_val_file} @@ -58,10 +58,10 @@ run_tiers() { run_test() { test_name=$1 - if [[ ${BRANCH##*/} == "master" ]]; then - cmd_opt="run_tests -t ${test_name}" - else + if [[ ${BRANCH##*/} == "stable/euphrates" ]]; then cmd_opt="prepare_env start && run_tests -t ${test_name}" + else + cmd_opt="run_tests -t ${test_name}" fi ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value" echo 0 > ${ret_val_file} @@ -177,7 +177,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..b93a56bad 100644 --- a/jjb/functest/functest-daily-jobs.yml +++ b/jjb/functest/functest-daily-jobs.yml @@ -14,6 +14,10 @@ stream: master branch: '{stream}' gs-pathname: '' + fraser: &fraser + stream: fraser + branch: 'stable/{stream}' + gs-pathname: '/{stream}' euphrates: &euphrates stream: euphrates branch: 'stable/{stream}' diff --git a/jjb/functest/functest-kubernetes-docker.yml b/jjb/functest/functest-kubernetes-docker.yml new file mode 100644 index 000000000..de1895dce --- /dev/null +++ b/jjb/functest/functest-kubernetes-docker.yml @@ -0,0 +1,174 @@ +--- +############################################## +# 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' + + # 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 + + 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 + case "{stream}" in + "master") + tag="latest" ;; + *) + tag="{stream}" ;; + esac + (cd docker && sudo docker build --pull=true --no-cache --force-rm=true \ + -t "$REPO/functest-kubernetes:$tag" .) + sudo docker push "$REPO/functest-kubernetes:$tag" + sudo docker rmi "$REPO/functest-kubernetes:$tag" + 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-weekly-jobs.yml b/jjb/functest/functest-weekly-jobs.yml index 5d572aacc..d87ac2f76 100644 --- a/jjb/functest/functest-weekly-jobs.yml +++ b/jjb/functest/functest-weekly-jobs.yml @@ -16,11 +16,17 @@ gs-pathname: '' docker-tag: 'latest' disabled: false + fraser: &fraser + stream: fraser + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + docker-tag: '{stream}' + disabled: false euphrates: &euphrates stream: euphrates branch: 'stable/{stream}' gs-pathname: '/{stream}' - docker-tag: 'stable' + docker-tag: '{stream}' disabled: false # ------------------------------- # POD, INSTALLER, AND BRANCH MAPPING diff --git a/jjb/ovn4nfv/ovn4nfv-project-jobs.yml b/jjb/ovn4nfv/ovn4nfv-project-jobs.yml index 97d1baefd..0316ff70e 100644 --- a/jjb/ovn4nfv/ovn4nfv-project-jobs.yml +++ b/jjb/ovn4nfv/ovn4nfv-project-jobs.yml @@ -9,6 +9,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/releng/opnfv-docker-arm.yml b/jjb/releng/opnfv-docker-arm.yml index fbf565844..9d79ea570 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,35 +97,35 @@ 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' diff --git a/jjb/releng/opnfv-docker.yml b/jjb/releng/opnfv-docker.yml index 5406bc86d..630a7ea22 100644 --- a/jjb/releng/opnfv-docker.yml +++ b/jjb/releng/opnfv-docker.yml @@ -134,15 +134,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' @@ -160,31 +151,31 @@ 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' diff --git a/jjb/sfc/sfc-project-jobs.yml b/jjb/sfc/sfc-project-jobs.yml index 82a2cfb5d..1fb4d990a 100644 --- a/jjb/sfc/sfc-project-jobs.yml +++ b/jjb/sfc/sfc-project-jobs.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/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 7fd875bcb..01a154aec 100644 --- a/jjb/vswitchperf/vswitchperf.yml +++ b/jjb/vswitchperf/vswitchperf.yml @@ -15,6 +15,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/yardstick/yardstick-project-jobs.yml b/jjb/yardstick/yardstick-project-jobs.yml index c03666388..63ce2986f 100644 --- a/jjb/yardstick/yardstick-project-jobs.yml +++ b/jjb/yardstick/yardstick-project-jobs.yml @@ -165,9 +165,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" + service rabbitmq-server restart + rabbitmqctl start_app + if [ -z "$(rabbitmqctl list_users | grep yardstick)" ]; then + rabbitmqctl add_user yardstick yardstick + rabbitmqctl set_permissions yardstick ".*" ".*" ".*" + fi + echo "Running functional tests in Python 2.7 ..." cd $WORKSPACE tox -efunctional @@ -181,9 +189,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" + service rabbitmq-server restart + rabbitmqctl start_app + if [ -z "$(rabbitmqctl list_users | grep yardstick)" ]; then + rabbitmqctl add_user yardstick yardstick + rabbitmqctl set_permissions yardstick ".*" ".*" ".*" + fi + echo "Running functional tests in Python 3 ..." cd $WORKSPACE tox -efunctional-py3 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/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 @@ -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/"} |