From: Serena Feng Date: Mon, 4 Sep 2017 01:08:34 +0000 (+0000) Subject: Merge "leverage LFID as Authentication" X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=a137b9d89ae9e982e5edd33670c040fc4d8603c7;hp=16055e19d8d3f6cfc85a443703dabded8bee57bd;p=releng.git Merge "leverage LFID as Authentication" --- diff --git a/.yamllint b/.yamllint new file mode 100644 index 000000000..4402f17fa --- /dev/null +++ b/.yamllint @@ -0,0 +1,8 @@ +--- +extends: default + +rules: + # 120 chars should be enough and don't fail if a line is longer + line-length: + max: 120 + level: warning diff --git a/jjb/apex/apex-download-artifact.sh b/jjb/apex/apex-download-artifact.sh index 860cd60a5..a11fb65b8 100755 --- a/jjb/apex/apex-download-artifact.sh +++ b/jjb/apex/apex-download-artifact.sh @@ -21,7 +21,7 @@ if [[ "$ARTIFACT_VERSION" =~ dev ]]; then tar -xvf apex-${OPNFV_ARTIFACT_VERSION}.tar.gz popd > /dev/null else - echo "Will download RPMs..." + echo "Will use RPMs..." # Must be RPMs/ISO echo "Downloading latest properties file" @@ -33,13 +33,13 @@ else source $BUILD_DIRECTORY/opnfv.properties RPM_INSTALL_PATH=$(echo "http://"$OPNFV_RPM_URL | sed 's/\/'"$(basename $OPNFV_RPM_URL)"'//') - RPM_LIST=${RPM_INSTALL_PATH}/$(basename $OPNFV_RPM_URL) + RPM_LIST=$(basename $OPNFV_RPM_URL) # find version of RPM VERSION_EXTENSION=$(echo $(basename $RPM_LIST) | grep -Eo '[0-9]+\.[0-9]+-([0-9]{8}|[a-z]+-[0-9]\.[0-9]+)') # build RPM List which already includes base Apex RPM - RPM_LIST+=" ${RPM_INSTALL_PATH}/opnfv-apex-undercloud-${VERSION_EXTENSION}.noarch.rpm" - RPM_LIST+=" ${RPM_INSTALL_PATH}/python34-opnfv-apex-${VERSION_EXTENSION}.noarch.rpm" + RPM_LIST+=" opnfv-apex-undercloud-${VERSION_EXTENSION}.noarch.rpm" + RPM_LIST+=" python34-opnfv-apex-${VERSION_EXTENSION}.noarch.rpm" # remove old / install new RPMs if rpm -q opnfv-apex > /dev/null; then @@ -48,10 +48,20 @@ else sudo yum remove -y ${INSTALLED_RPMS} fi fi + # Create an rpms dir on slave + mkdir -p ~/apex_rpms + pushd ~/apex_rpms + # Remove older rpms which do not match this version + find . ! -name "*${VERSION_EXTENSION}.noarch.rpm" -type f -exec rm -f {} + + # Download RPM only if changed on server + for rpm in $RPM_LIST; do + wget -N ${RPM_INSTALL_PATH}/${rpm} + done if ! sudo yum install -y $RPM_LIST; then echo "Unable to install new RPMs: $RPM_LIST" exit 1 fi + popd fi # TODO: Uncomment these lines to verify SHA512SUMs once the sums are diff --git a/jjb/apex/apex-unit-test.sh b/jjb/apex/apex-unit-test.sh index 12cb862b0..abcddcab4 100755 --- a/jjb/apex/apex-unit-test.sh +++ b/jjb/apex/apex-unit-test.sh @@ -9,7 +9,6 @@ echo pushd ci/ > /dev/null -sudo BASE="${WORKSPACE}/build" LIB="${WORKSPACE}/lib" ./clean.sh ./test.sh popd diff --git a/jjb/apex/apex.yml b/jjb/apex/apex.yml index a3cd7b3b1..aeea1c9fb 100644 --- a/jjb/apex/apex.yml +++ b/jjb/apex/apex.yml @@ -377,6 +377,8 @@ pattern: 'lib/**' - compare-type: ANT pattern: 'config/**' + - compare-type: ANT + pattern: 'apex/**' properties: - logrotate-default @@ -410,6 +412,10 @@ kill-phase-on: FAILURE abort-all-job: true git-revision: true + - shell: | + echo DEPLOY_SCENARIO=$(echo $GERRIT_EVENT_COMMENT_TEXT | grep start-gate-scenario | grep -Eo 'os-.*') > detected_scenario + - inject: + properties-file: detected_scenario - multijob: name: functest-smoke condition: SUCCESSFUL @@ -417,7 +423,7 @@ - name: 'functest-apex-virtual-suite-{stream}' current-parameters: false predefined-parameters: | - DEPLOY_SCENARIO={verify-scenario} + DEPLOY_SCENARIO=$DEPLOY_SCENARIO FUNCTEST_SUITE_NAME=healthcheck GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC @@ -791,18 +797,19 @@ enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|nosdn-kvm|odl_l3-fdio)-ha/" abort-all-job: false git-revision: false -# - multijob: -# name: StorPerf -# condition: ALWAYS -# projects: -# - name: 'storperf-apex-baremetal-daily-{scenario_stream}' -# node-parameters: true -# current-parameters: false -# predefined-parameters: -# DEPLOY_SCENARIO=$DEPLOY_SCENARIO -# kill-phase-on: NEVER -# abort-all-job: false -# git-revision: false + - multijob: + name: StorPerf + condition: ALWAYS + projects: + - name: 'storperf-apex-baremetal-daily-{scenario_stream}' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-nosdn-nofeature-ha/" + kill-phase-on: NEVER + abort-all-job: false + git-revision: false # Build status is always success due conditional plugin prefetching # build status before multijob phases execute # - conditional-step: diff --git a/jjb/apex/apex.yml.j2 b/jjb/apex/apex.yml.j2 index 3f69ff622..0d446dcd7 100644 --- a/jjb/apex/apex.yml.j2 +++ b/jjb/apex/apex.yml.j2 @@ -289,6 +289,8 @@ pattern: 'lib/**' - compare-type: ANT pattern: 'config/**' + - compare-type: ANT + pattern: 'apex/**' properties: - logrotate-default @@ -322,6 +324,10 @@ kill-phase-on: FAILURE abort-all-job: true git-revision: true + - shell: | + echo DEPLOY_SCENARIO=$(echo $GERRIT_EVENT_COMMENT_TEXT | grep start-gate-scenario | grep -Eo 'os-.*') > detected_scenario + - inject: + properties-file: detected_scenario - multijob: name: functest-smoke condition: SUCCESSFUL @@ -329,7 +335,7 @@ - name: 'functest-apex-virtual-suite-{stream}' current-parameters: false predefined-parameters: | - DEPLOY_SCENARIO={verify-scenario} + DEPLOY_SCENARIO=$DEPLOY_SCENARIO FUNCTEST_SUITE_NAME=healthcheck GERRIT_BRANCH=$GERRIT_BRANCH GERRIT_REFSPEC=$GERRIT_REFSPEC @@ -703,18 +709,19 @@ enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|nosdn-kvm|odl_l3-fdio)-ha/" abort-all-job: false git-revision: false -# - multijob: -# name: StorPerf -# condition: ALWAYS -# projects: -# - name: 'storperf-apex-baremetal-daily-{scenario_stream}' -# node-parameters: true -# current-parameters: false -# predefined-parameters: -# DEPLOY_SCENARIO=$DEPLOY_SCENARIO -# kill-phase-on: NEVER -# abort-all-job: false -# git-revision: false + - multijob: + name: StorPerf + condition: ALWAYS + projects: + - name: 'storperf-apex-baremetal-daily-{scenario_stream}' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-nosdn-nofeature-ha/" + kill-phase-on: NEVER + abort-all-job: false + git-revision: false # Build status is always success due conditional plugin prefetching # build status before multijob phases execute # - conditional-step: diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml index f1bff072c..a6b781efc 100644 --- a/jjb/armband/armband-ci-jobs.yml +++ b/jjb/armband/armband-ci-jobs.yml @@ -44,65 +44,17 @@ installer: fuel <<: *master #-------------------------------- -# NONE-CI POD's -#-------------------------------- -# euphrates -#-------------------------------- - - arm-pod2: - slave-label: arm-pod2 - installer: fuel - <<: *euphrates - - arm-pod5: - slave-label: arm-pod5 - installer: fuel - <<: *euphrates - - arm-pod4: - slave-label: arm-pod4 - installer: fuel - <<: *euphrates - - arm-virtual2: - slave-label: arm-virtual2 - installer: fuel - <<: *euphrates -#-------------------------------- -# master -#-------------------------------- - - arm-pod2: - slave-label: arm-pod2 - installer: fuel - <<: *master - - arm-pod5: - slave-label: arm-pod5 - installer: fuel - <<: *master - - arm-pod4: - slave-label: arm-pod4 - installer: fuel - <<: *master - - arm-virtual2: - slave-label: arm-virtual2 - installer: fuel - <<: *master -#-------------------------------- # scenarios #-------------------------------- scenario: # HA scenarios - 'os-nosdn-nofeature-ha': auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' - - 'os-odl_l2-nofeature-ha': - auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' - 'os-odl_l3-nofeature-ha': auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' - - 'os-odl_l2-bgpvpn-ha': - auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' - - 'os-odl_l2-sfc-ha': - auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' # NOHA scenarios - - 'os-odl_l2-nofeature-noha': - auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' - - 'os-odl_l2-sfc-noha': + - 'os-nosdn-nofeature-noha': auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' jobs: @@ -187,10 +139,10 @@ # 3.only proposed_tests testsuite here(refstack, ha, ipv6, bgpvpn) # 4.not used for release criteria or compliance, # only to debug the dovetail tool bugs with arm pods - # 5.only run against scenario os-(nosdn|odl_l2)-(nofeature-bgpvpn)-ha + # 5.only run against scenario os-(nosdn|odl_l3)-(nofeature-bgpvpn)-ha - conditional-step: condition-kind: regex-match - regex: os-(nosdn|odl_l2)-(nofeature|bgpvpn)-ha + regex: os-(nosdn|odl|odl_l3)-(nofeature|bgpvpn)-ha label: '{scenario}' steps: - trigger-builds: @@ -233,7 +185,7 @@ installer: '{installer}' - string: name: DEPLOY_SCENARIO - default: 'os-odl_l2-nofeature-ha' + default: 'os-odl_l3-nofeature-ha' - armband-ci-parameter: gs-pathname: '{gs-pathname}' @@ -285,376 +237,60 @@ #----------------------------------------------------------------- # Enea Armband CI Baremetal Triggers running against master branch #----------------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-master-trigger' - triggers: - - timed: '' - trigger: name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger' - triggers: - - timed: '0 1 * * *' -- trigger: - name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-master-trigger' - triggers: - - timed: '0 16 * * *' -- trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-master-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-master-trigger' + name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-master-trigger' + name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-master-trigger' triggers: - timed: '' - #---------------------------------------------------------------------- # Enea Armband CI Baremetal Triggers running against euphrates branch #---------------------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-euphrates-trigger' - triggers: - - timed: '' - trigger: name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-euphrates-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-euphrates-trigger' + name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-euphrates-trigger' triggers: - timed: '' - trigger: name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-euphrates-trigger' triggers: - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-euphrates-trigger' - triggers: - - timed: '' #--------------------------------------------------------------- # Enea Armband CI Virtual Triggers running against master branch #--------------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-master-trigger' - triggers: - - timed: '' - trigger: name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-master-trigger' + name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-master-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-master-trigger' + name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-master-trigger' triggers: - timed: '' #-------------------------------------------------------------------- # Enea Armband CI Virtual Triggers running against euphrates branch #-------------------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-euphrates-trigger' - triggers: - - timed: '' - trigger: name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-euphrates-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-euphrates-trigger' - triggers: - - timed: '' - -#-------------------------------------------------------------------- -# Enea Armband Non CI Virtual Triggers running against euphrates branch -#-------------------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-arm-virtual2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-arm-virtual2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l3-nofeature-ha-arm-virtual2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-arm-virtual2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-arm-virtual2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-ha-arm-virtual2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-noha-arm-virtual2-euphrates-trigger' - triggers: - - timed: '' - -#-------------------------------------------------------------------- -# Enea Armband Non CI Virtual Triggers running against master branch -#-------------------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-arm-virtual2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-arm-virtual2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l3-nofeature-ha-arm-virtual2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-arm-virtual2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-arm-virtual2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-ha-arm-virtual2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-noha-arm-virtual2-master-trigger' - triggers: - - timed: '' - -#---------------------------------------------------------- -# Enea Armband POD 2 Triggers running against master branch -#---------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-master-trigger' - triggers: - - timed: '' -#--------------------------------------------------------------- -# Enea Armband POD 2 Triggers running against euphrates branch -#--------------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-euphrates-trigger' - triggers: - - timed: '' -#---------------------------------------------------------- -# Enea Armband POD 3 Triggers running against master branch -#---------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-arm-pod5-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-arm-pod5-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l3-nofeature-ha-arm-pod5-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod5-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-arm-pod5-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-ha-arm-pod5-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-noha-arm-pod5-master-trigger' - triggers: - - timed: '' -#--------------------------------------------------------------- -# Enea Armband POD 3 Triggers running against euphrates branch -#--------------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-arm-pod5-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-arm-pod5-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l3-nofeature-ha-arm-pod5-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod5-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-arm-pod5-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-ha-arm-pod5-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-noha-arm-pod5-euphrates-trigger' - triggers: - - timed: '' -#-------------------------------------------------------------------------- -# Enea Armband POD 3 Triggers running against master branch (aarch64 slave) -#-------------------------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-arm-pod4-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-arm-pod4-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l3-nofeature-ha-arm-pod4-master-trigger' + name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-euphrates-trigger' triggers: - timed: '' - trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod4-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-arm-pod4-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-ha-arm-pod4-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-noha-arm-pod4-master-trigger' - triggers: - - timed: '' -#-------------------------------------------------------------------------- -# Enea Armband POD 3 Triggers running against euphrates branch (aarch64 slave) -#-------------------------------------------------------------------------- -- trigger: - name: 'fuel-os-odl_l2-nofeature-ha-arm-pod4-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-arm-pod4-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l3-nofeature-ha-arm-pod4-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod4-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-nofeature-noha-arm-pod4-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-ha-arm-pod4-euphrates-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl_l2-sfc-noha-arm-pod4-euphrates-trigger' + name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '' \ No newline at end of file diff --git a/jjb/auto/auto.yml b/jjb/auto/auto.yml new file mode 100644 index 000000000..fefa37626 --- /dev/null +++ b/jjb/auto/auto.yml @@ -0,0 +1,56 @@ +--- +- project: + name: auto + + project: '{name}' + + stream: + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + + jobs: + - 'auto-verify-{stream}' + +- job-template: + name: 'auto-verify-{stream}' + + disabled: '{obj:disabled}' + + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-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}' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**|.gitignore' + + builders: + - shell: | + echo "Nothing to verify!" diff --git a/jjb/ci_gate_security/anteater-report-to-gerrit.sh b/jjb/ci_gate_security/anteater-report-to-gerrit.sh index 00a78ceba..a749d1db4 100644 --- a/jjb/ci_gate_security/anteater-report-to-gerrit.sh +++ b/jjb/ci_gate_security/anteater-report-to-gerrit.sh @@ -13,7 +13,7 @@ if [[ -e securityaudit.log ]] ; then EXITSTATUS=1 fi - cat securityaudit.log | awk -F"ERROR - " '{print $2}' | sed -e "s/\"/\\\\\"/g;s/\'/\\\\\'/g"> shortlog + awk -F"ERROR - " '{print $2}' securityaudit.log | sed -e "s/\"/\\\\\"/g;s/\'/\\\\/g"> shortlog ssh -p 29418 gerrit.opnfv.org \ "gerrit review -p $GERRIT_PROJECT \ diff --git a/jjb/openretriever/openretriever-project.yml b/jjb/container4nfv/container4nfv-project.yml similarity index 94% rename from jjb/openretriever/openretriever-project.yml rename to jjb/container4nfv/container4nfv-project.yml index 3bcfab6d3..3b29b36f8 100644 --- a/jjb/openretriever/openretriever-project.yml +++ b/jjb/container4nfv/container4nfv-project.yml @@ -3,12 +3,12 @@ # They will only be enabled on request by projects! ################################################### - project: - name: openretriever + name: container4nfv project: '{name}' jobs: - - 'openretriever-verify-{stream}' + - 'container4nfv-verify-{stream}' stream: - master: @@ -21,7 +21,7 @@ disabled: false - job-template: - name: 'openretriever-verify-{stream}' + name: 'container4nfv-verify-{stream}' disabled: '{obj:disabled}' diff --git a/jjb/doctor/doctor.yml b/jjb/doctor/doctor.yml index d535d6109..b007e1432 100644 --- a/jjb/doctor/doctor.yml +++ b/jjb/doctor/doctor.yml @@ -37,9 +37,9 @@ is-python: true pod: - - arm-pod2: + - armband-baremetal: slave-label: '{pod}' - - arm-pod5: + - armband-virtual: slave-label: '{pod}' jobs: diff --git a/jjb/dovetail/dovetail-ci-jobs.yml b/jjb/dovetail/dovetail-ci-jobs.yml index 92b1db356..c13c93859 100644 --- a/jjb/dovetail/dovetail-ci-jobs.yml +++ b/jjb/dovetail/dovetail-ci-jobs.yml @@ -137,21 +137,6 @@ SUT: compass auto-trigger-name: 'daily-trigger-disabled' <<: *master - - arm-pod2: - slave-label: '{pod}' - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - arm-pod5: - slave-label: '{pod}' - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - arm-virtual2: - slave-label: '{pod}' - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - zte-pod1: slave-label: zte-pod1 SUT: fuel @@ -177,6 +162,11 @@ SUT: fuel auto-trigger-name: 'daily-trigger-disabled' <<: *danube + - huawei-pod4: + slave-label: huawei-pod4 + SUT: apex + auto-trigger-name: 'apex-huawei-pod4-danube-trigger' + <<: *danube #-------------------------------- testsuite: - 'compliance_set' @@ -206,7 +196,7 @@ - build-name: name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - timeout: - timeout: 180 + timeout: 240 abort: true - fix-workspace-permissions @@ -273,3 +263,11 @@ builders: - shell: !include-raw: ./dovetail-cleanup.sh + +#-------------------------- +# trigger macros +#-------------------------- +- trigger: + name: 'apex-huawei-pod4-danube-trigger' + triggers: + - timed: '* 1 * * *' diff --git a/jjb/dovetail/dovetail-cleanup.sh b/jjb/dovetail/dovetail-cleanup.sh index 3ae0cbcc9..2d66fe022 100755 --- a/jjb/dovetail/dovetail-cleanup.sh +++ b/jjb/dovetail/dovetail-cleanup.sh @@ -12,16 +12,16 @@ # clean up dependent project docker images, which has no containers and image tag None clean_images=(opnfv/functest opnfv/yardstick opnfv/testapi mongo) for clean_image in "${clean_images[@]}"; do - echo "Removing image $image_id, which has no containers and image tag is None" dangling_images=($(docker images -f "dangling=true" | grep ${clean_image} | awk '{print $3}')) if [[ -n ${dangling_images} ]]; then for image_id in "${dangling_images[@]}"; do + echo "Removing image $image_id, which has no containers and image tag is None" docker rmi $image_id >${redirect} done fi done -echo "Remove containers with image opnfv/dovetail:..." +echo "Remove dovetail images with tag None and containers with these images ..." dangling_images=($(docker images -f "dangling=true" | grep opnfv/dovetail | awk '{print $3}')) if [[ -n ${dangling_images} ]]; then for image_id in "${dangling_images[@]}"; do @@ -37,13 +37,13 @@ if [[ ! -z $(docker ps -a | grep opnfv/dovetail) ]]; then docker ps -a | grep opnfv/dovetail | awk '{print $1}' | xargs docker rm -f >${redirect} fi -echo "Remove dovetail existing images if exist..." -if [[ ! -z $(docker images | grep opnfv/dovetail) ]]; then - echo "Docker images to remove:" - docker images | head -1 && docker images | grep opnfv/dovetail >${redirect} - image_tags=($(docker images | grep opnfv/dovetail | awk '{print $2}')) - for tag in "${image_tags[@]}"; do - echo "Removing docker image opnfv/dovetail:$tag..." - docker rmi opnfv/dovetail:$tag >${redirect} - done -fi +#echo "Remove dovetail existing images if exist..." +#if [[ ! -z $(docker images | grep opnfv/dovetail) ]]; then +# echo "Docker images to remove:" +# docker images | head -1 && docker images | grep opnfv/dovetail >${redirect} +# image_tags=($(docker images | grep opnfv/dovetail | awk '{print $2}')) +# for tag in "${image_tags[@]}"; do +# echo "Removing docker image opnfv/dovetail:$tag..." +# docker rmi opnfv/dovetail:$tag >${redirect} +# done +#fi diff --git a/jjb/dpacc/dpacc.yml b/jjb/dpacc/dpacc.yml index 63eb044ad..39f3d563c 100644 --- a/jjb/dpacc/dpacc.yml +++ b/jjb/dpacc/dpacc.yml @@ -1,3 +1,4 @@ +--- ################################################### # All the jobs except verify have been removed! # They will only be enabled on request by projects! @@ -8,17 +9,17 @@ project: '{name}' jobs: - - 'dpacc-verify-{stream}' + - 'dpacc-verify-{stream}' stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - danube: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false - job-template: name: 'dpacc-verify-{stream}' @@ -26,38 +27,38 @@ disabled: '{obj:disabled}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-ubuntu-defaults' scm: - - git-scm-gerrit + - 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}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**|.gitignore' + - 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}' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**|.gitignore' builders: - - shell: | - echo "Nothing to verify!" + - shell: | + echo "Nothing to verify!" diff --git a/jjb/fuel/fuel-daily-jobs.yml b/jjb/fuel/fuel-daily-jobs.yml index cbdd3ddba..e5bb4091d 100644 --- a/jjb/fuel/fuel-daily-jobs.yml +++ b/jjb/fuel/fuel-daily-jobs.yml @@ -20,6 +20,11 @@ branch: 'stable/{stream}' disabled: true gs-pathname: '/{stream}' + danube: &danube + stream: danube + branch: 'stable/{stream}' + disabled: false + gs-pathname: '/{stream}' #-------------------------------- # POD, INSTALLER, AND BRANCH MAPPING #-------------------------------- @@ -53,6 +58,9 @@ - zte-pod3: slave-label: zte-pod3 <<: *euphrates + - zte-pod1: + slave-label: zte-pod1 + <<: *danube #-------------------------------- # scenarios #-------------------------------- @@ -190,11 +198,12 @@ # 2.here the stream means the SUT stream, dovetail stream is defined in its own job # 3.only debug testsuite here(refstack, ha, ipv6, bgpvpn) # 4.not used for release criteria or compliance, - # only to debug the dovetail tool bugs with bgpvpn - # 5,only run against scenario os-odl_l2-bgpvpn-ha(regex used here, can extend to more scenarios future) + # only to debug the dovetail tool bugs with bgpvpn and nosdn-nofeature + # 5.only run against scenario os-odl_l2-bgpvpn-ha(regex used here, can extend to more scenarios future) + # 6.ZTE pod1, os-nosdn-nofeature-ha and os-odl_l2-bgpvpn-ha, run against danube - conditional-step: condition-kind: regex-match - regex: os-odl_l2-bgpvpn-ha + regex: os-(nosdn-nofeature|odl_l2-bgpvpn)-ha label: '{scenario}' steps: - trigger-builds: @@ -208,33 +217,6 @@ build-step-failure-threshold: 'never' failure-threshold: 'never' unstable-threshold: 'FAILURE' - # ZTE pod1 weekly(Sunday), os-odl_l2-nofeature-ha, run against master and euphrates - - conditional-step: - condition-kind: and - condition-operands: - - condition-kind: regex-match - regex: os-odl_l2-nofeature-ha - label: '{scenario}' - - condition-kind: regex-match - regex: zte-pod1 - label: '{pod}' - - condition-kind: day-of-week - day-selector: select-days - days: - SAT: true - use-build-time: true - steps: - - trigger-builds: - - project: 'dovetail-fuel-zte-pod1-proposed_tests-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' publishers: - email: @@ -1064,3 +1046,95 @@ name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod3-daily-euphrates-trigger' triggers: - timed: '' +#------------------------------------------------ +# ZTE POD1 Triggers running against danube branch +#------------------------------------------------ +- trigger: + name: 'fuel-os-nosdn-nofeature-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '0 2 * * 6' +- trigger: + name: 'fuel-os-odl_l2-nofeature-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-odl_l3-nofeature-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-onos-sfc-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '0 2 * * 1,3,5' +- trigger: + name: 'fuel-os-odl_l2-sfc-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-ovs-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +# NOHA Scenarios +- trigger: + name: 'fuel-os-nosdn-nofeature-noha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-odl_l2-nofeature-noha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-odl_l3-nofeature-noha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-onos-sfc-noha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-odl_l2-sfc-noha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-odl_l2-bgpvpn-noha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-ovs-noha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' diff --git a/jjb/functest/functest-daily-jobs.yml b/jjb/functest/functest-daily-jobs.yml index 23649fc08..d34437265 100644 --- a/jjb/functest/functest-daily-jobs.yml +++ b/jjb/functest/functest-daily-jobs.yml @@ -150,22 +150,6 @@ slave-label: '{pod}' installer: apex <<: *master - - arm-pod2: - slave-label: '{pod}' - installer: fuel - <<: *master - - arm-pod5: - slave-label: '{pod}' - installer: fuel - <<: *master - - arm-pod4: - slave-label: '{pod}' - installer: fuel - <<: *master - - arm-virtual2: - slave-label: '{pod}' - installer: fuel - <<: *master - zte-pod1: slave-label: '{pod}' installer: fuel @@ -186,22 +170,6 @@ slave-label: '{pod}' installer: fuel <<: *danube - - arm-pod2: - slave-label: '{pod}' - installer: fuel - <<: *danube - - arm-pod5: - slave-label: '{pod}' - installer: fuel - <<: *danube - - arm-pod4: - slave-label: '{pod}' - installer: fuel - <<: *danube - - arm-virtual2: - slave-label: '{pod}' - installer: fuel - <<: *danube # PODs for verify jobs triggered by each patch upload # - ool-virtual1: # slave-label: '{pod}' diff --git a/jjb/functest/set-functest-env.sh b/jjb/functest/set-functest-env.sh index e54c3bf13..f18f054a5 100755 --- a/jjb/functest/set-functest-env.sh +++ b/jjb/functest/set-functest-env.sh @@ -6,15 +6,20 @@ set +o pipefail [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" +DEPLOY_TYPE=baremetal +[[ $BUILD_TAG =~ "virtual" ]] && DEPLOY_TYPE=virt +HOST_ARCH=$(uname -m) + # Prepare OpenStack credentials volume +rc_file_vol="-v ${HOME}/opnfv-openrc.sh:/home/opnfv/functest/conf/openstack.creds" + if [[ ${INSTALLER_TYPE} == 'joid' ]]; then rc_file_vol="-v $LAB_CONFIG/admin-openrc:/home/opnfv/functest/conf/openstack.creds" elif [[ ${INSTALLER_TYPE} == 'compass' && ${BRANCH} == 'master' ]]; then cacert_file_vol="-v ${HOME}/os_cacert:/home/opnfv/functest/conf/os_cacert" echo "export OS_CACERT=/home/opnfv/functest/conf/os_cacert" >> ${HOME}/opnfv-openrc.sh - rc_file_vol="-v ${HOME}/opnfv-openrc.sh:/home/opnfv/functest/conf/openstack.creds" -else - rc_file_vol="-v ${HOME}/opnfv-openrc.sh:/home/opnfv/functest/conf/openstack.creds" +elif [[ ${INSTALLER_TYPE} == 'fuel' && ${DEPLOY_TYPE} == 'baremetal' ]]; then + cacert_file_vol="-v ${HOME}/os_cacert:/etc/ssl/certs/mcp_os_cacert" fi @@ -23,17 +28,13 @@ if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FOR sudo iptables -I FORWARD -j RETURN fi -DEPLOY_TYPE=baremetal -[[ $BUILD_TAG =~ "virtual" ]] && DEPLOY_TYPE=virt -HOST_ARCH=$(uname -m) - echo "Functest: Start Docker and prepare environment" if [ "$BRANCH" != 'stable/danube' ]; then echo "Functest: Download images that will be used by test cases" images_dir="${HOME}/opnfv/functest/images" chmod +x ${WORKSPACE}/functest/ci/download_images.sh - ${WORKSPACE}/functest/ci/download_images.sh ${images_dir} > ${redirect} 2>&1 + ${WORKSPACE}/functest/ci/download_images.sh ${images_dir} > ${redirect} images_vol="-v ${images_dir}:/home/opnfv/functest/images" echo "Functest: Images successfully downloaded" fi diff --git a/jjb/global/installer-params.yml b/jjb/global/installer-params.yml index a81dce3fe..10afd6f8c 100644 --- a/jjb/global/installer-params.yml +++ b/jjb/global/installer-params.yml @@ -1,142 +1,144 @@ +--- - parameter: name: 'apex-defaults' parameters: - - string: - name: INSTALLER_IP - default: '192.168.X.X' - description: 'IP of the installer' - - string: - name: INSTALLER_TYPE - default: apex - description: 'Installer used for deploying OPNFV on this POD' - - string: - name: EXTERNAL_NETWORK - default: 'external' - description: 'external network for test' + - string: + name: INSTALLER_IP + default: '192.168.X.X' + description: 'IP of the installer' + - string: + name: INSTALLER_TYPE + default: apex + description: 'Installer used for deploying OPNFV on this POD' + - string: + name: EXTERNAL_NETWORK + default: 'external' + description: 'external network for test' - parameter: name: 'compass-defaults' parameters: - - string: - name: INSTALLER_IP - default: '192.168.200.2' - description: 'IP of the installer' - - string: - name: INSTALLER_TYPE - default: compass - description: 'Installer used for deploying OPNFV on this POD' - - string: - name: EXTERNAL_NETWORK - default: 'ext-net' - description: 'external network for test' + - string: + name: INSTALLER_IP + default: '192.168.200.2' + description: 'IP of the installer' + - string: + name: INSTALLER_TYPE + default: compass + description: 'Installer used for deploying OPNFV on this POD' + - string: + name: EXTERNAL_NETWORK + default: 'ext-net' + description: 'external network for test' - parameter: name: 'fuel-defaults' parameters: - - string: - name: INSTALLER_IP - default: '10.20.0.2' - description: 'IP of the installer' - - string: - name: SALT_MASTER_IP - default: '192.168.10.100' - description: 'IP of the salt master (for mcp deployments)' - - string: - name: SSH_KEY - default: '/tmp/mcp.rsa' - description: 'Path to private SSH key to access environment nodes' - - string: - name: INSTALLER_TYPE - default: fuel - description: 'Installer used for deploying OPNFV on this POD' - - string: - name: EXTERNAL_NETWORK - default: 'admin_floating_net' - description: 'external network for test' - - string: - name: BRIDGE - default: 'pxebr' - description: 'Bridge(s) to be used by salt master' + - string: + name: INSTALLER_IP + default: '10.20.0.2' + description: 'IP of the installer' + - string: + name: SALT_MASTER_IP + default: '192.168.10.100' + description: 'IP of the salt master (for mcp deployments)' + - string: + name: SSH_KEY + default: '/tmp/mcp.rsa' + description: 'Path to private SSH key to access environment nodes' + - string: + name: INSTALLER_TYPE + default: fuel + description: 'Installer used for deploying OPNFV on this POD' + - string: + name: EXTERNAL_NETWORK + default: 'admin_floating_net' + description: 'external network for test' + - string: + name: BRIDGE + default: 'pxebr' + description: 'Bridge(s) to be used by salt master' - parameter: name: 'joid-defaults' parameters: - - string: - name: INSTALLER_IP - default: '192.168.122.5' - description: 'IP of the installer' - - string: - name: INSTALLER_TYPE - default: joid - description: 'Installer used for deploying OPNFV on this POD' - - string: - name: MODEL - default: 'os' - description: 'Model to deploy (os|k8)' - - string: - name: OS_RELEASE - default: 'ocata' - description: 'OpenStack release (mitaka|newton|ocata)' - - string: - name: EXTERNAL_NETWORK - default: ext-net - description: "External network used for Floating ips." - - string: - name: LAB_CONFIG - default: "$HOME/joid_config" - description: "Local lab config and Openstack openrc location" - - string: - name: MAAS_REINSTALL - default: 'false' - description: "Reinstall MAAS and Bootstrap before deploy [true/false]" - - string: - name: UBUNTU_DISTRO - default: 'xenial' - description: "Ubuntu distribution to use for Openstack (xenial)" - - string: - name: CPU_ARCHITECTURE - default: 'amd64' - description: "CPU Architecture to use for Ubuntu distro " + - string: + name: INSTALLER_IP + default: '192.168.122.5' + description: 'IP of the installer' + - string: + name: INSTALLER_TYPE + default: joid + description: 'Installer used for deploying OPNFV on this POD' + - string: + name: MODEL + default: 'os' + description: 'Model to deploy (os|k8)' + - string: + name: OS_RELEASE + default: 'ocata' + description: 'OpenStack release (mitaka|newton|ocata)' + - string: + name: EXTERNAL_NETWORK + default: ext-net + description: "External network used for Floating ips." + - string: + name: LAB_CONFIG + default: "$HOME/joid_config" + description: "Local lab config and Openstack openrc location" + - string: + name: MAAS_REINSTALL + default: 'false' + description: "Reinstall MAAS and Bootstrap before deploy [true/false]" + - string: + name: UBUNTU_DISTRO + default: 'xenial' + description: "Ubuntu distribution to use for Openstack (xenial)" + - string: + name: CPU_ARCHITECTURE + default: 'amd64' + description: "CPU Architecture to use for Ubuntu distro " - parameter: name: 'daisy-defaults' parameters: - - string: - name: INSTALLER_IP - default: '10.20.7.3' - description: 'IP of the installer' - - string: - name: INSTALLER_TYPE - default: daisy - description: 'Installer used for deploying OPNFV on this POD' - - string: - name: BRIDGE - default: 'br7' - description: 'pxe bridge for booting of Daisy master' + - string: + name: INSTALLER_IP + default: '10.20.7.3' + description: 'IP of the installer' + - string: + name: INSTALLER_TYPE + default: daisy + description: 'Installer used for deploying OPNFV on this POD' + - string: + name: BRIDGE + default: 'br7' + description: 'pxe bridge for booting of Daisy master' - parameter: name: 'infra-defaults' parameters: - - string: - name: INSTALLER_IP - default: '192.168.122.2' - description: 'IP of the installer' - - string: - name: INSTALLER_TYPE - default: infra - description: 'Installer used for deploying OPNFV on this POD' + - string: + name: INSTALLER_IP + default: '192.168.122.2' + description: 'IP of the installer' + - string: + name: INSTALLER_TYPE + default: infra + description: 'Installer used for deploying OPNFV on this POD' + - parameter: name: 'netvirt-defaults' parameters: - - string: - name: INSTALLER_IP - default: '192.168.X.X' - description: 'IP of the installer' - - string: - name: INSTALLER_TYPE - default: apex - description: 'Installer used for deploying OPNFV on this POD' - - string: - name: EXTERNAL_NETWORK - default: 'external' - description: 'external network for test' + - string: + name: INSTALLER_IP + default: '192.168.X.X' + description: 'IP of the installer' + - string: + name: INSTALLER_TYPE + default: apex + description: 'Installer used for deploying OPNFV on this POD' + - string: + name: EXTERNAL_NETWORK + default: 'external' + description: 'external network for test' diff --git a/jjb/global/releng-defaults.yml b/jjb/global/releng-defaults.yml index 75e00f983..2e94767e8 100644 --- a/jjb/global/releng-defaults.yml +++ b/jjb/global/releng-defaults.yml @@ -1,17 +1,18 @@ +--- # jjb defaults - defaults: name: global wrappers: - - ssh-agent-wrapper + - ssh-agent-wrapper project-type: freestyle node: master properties: - - logrotate-default + - logrotate-default publishers: # Any project that has a publisher will not have this macro diff --git a/jjb/global/releng-macros.yml b/jjb/global/releng-macros.yml index 75fe8b3c3..20b13b8be 100644 --- a/jjb/global/releng-macros.yml +++ b/jjb/global/releng-macros.yml @@ -1,3 +1,4 @@ +--- # Releng macros # # NOTE: make sure macros are listed in execution ordered. @@ -14,155 +15,155 @@ - parameter: name: project-parameter parameters: - - string: - name: PROJECT - default: '{project}' - description: "JJB configured PROJECT parameter to identify an opnfv Gerrit project" - - string: - name: GS_BASE - default: artifacts.opnfv.org/$PROJECT - description: "URL to Google Storage." - - string: - name: GS_BASE_PROXY - default: build.opnfv.org/artifacts.opnfv.org/$PROJECT - description: "URL to Google Storage proxy" - - string: - name: BRANCH - default: '{branch}' - description: "JJB configured BRANCH parameter (e.g. master, stable/danube)" - - string: - name: GERRIT_BRANCH - default: '{branch}' - description: "JJB configured GERRIT_BRANCH parameter (deprecated)" + - string: + name: PROJECT + default: '{project}' + description: "JJB configured PROJECT parameter to identify an opnfv Gerrit project" + - string: + name: GS_BASE + default: artifacts.opnfv.org/$PROJECT + description: "URL to Google Storage." + - string: + name: GS_BASE_PROXY + default: build.opnfv.org/artifacts.opnfv.org/$PROJECT + description: "URL to Google Storage proxy" + - string: + name: BRANCH + default: '{branch}' + description: "JJB configured BRANCH parameter (e.g. master, stable/danube)" + - string: + name: GERRIT_BRANCH + default: '{branch}' + description: "JJB configured GERRIT_BRANCH parameter (deprecated)" - property: name: logrotate-default properties: - - build-discarder: - days-to-keep: 60 - num-to-keep: 200 - artifact-days-to-keep: 60 - artifact-num-to-keep: 200 + - build-discarder: + days-to-keep: 60 + num-to-keep: 200 + artifact-days-to-keep: 60 + artifact-num-to-keep: 200 - scm: name: git-scm scm: - - git: &git-scm-defaults - credentials-id: '$SSH_CREDENTIAL_ID' - url: '$GIT_BASE' - branches: - - 'origin/$BRANCH' - timeout: 15 + - git: &git-scm-defaults + credentials-id: '$SSH_CREDENTIAL_ID' + url: '$GIT_BASE' + branches: + - 'origin/$BRANCH' + timeout: 15 - scm: name: git-scm-gerrit scm: - - git: - choosing-strategy: 'gerrit' - refspec: '$GERRIT_REFSPEC' - <<: *git-scm-defaults + - git: + choosing-strategy: 'gerrit' + refspec: '$GERRIT_REFSPEC' + <<: *git-scm-defaults - scm: name: git-scm-with-submodules scm: - - git: - credentials-id: '$SSH_CREDENTIAL_ID' - url: '$GIT_BASE' - refspec: '' - branches: - - 'refs/heads/{branch}' - skip-tag: true - wipe-workspace: true - submodule: - recursive: true - timeout: 20 + - git: + credentials-id: '$SSH_CREDENTIAL_ID' + url: '$GIT_BASE' + refspec: '' + branches: + - 'refs/heads/{branch}' + skip-tag: true + wipe-workspace: true + submodule: + recursive: true + timeout: 20 - trigger: name: 'daily-trigger-disabled' triggers: - - timed: '' + - timed: '' - trigger: name: 'weekly-trigger-disabled' triggers: - - timed: '' + - timed: '' - trigger: name: gerrit-trigger-patchset-created 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: '{files}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false + - 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: '{files}' + skip-vote: + successful: false + failed: false + unstable: false + notbuilt: false - trigger: name: gerrit-trigger-change-merged triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: 'ANT' - pattern: '{files}' + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' - trigger: name: 'experimental' triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - comment-added-contains-event: - comment-contains-value: 'check-experimental' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: 'ANT' - pattern: '{files}' - skip-vote: - successful: true - failed: true - unstable: true - notbuilt: true + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - comment-added-contains-event: + comment-contains-value: 'check-experimental' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' + skip-vote: + successful: true + failed: true + unstable: true + notbuilt: true - wrapper: name: ssh-agent-wrapper wrappers: - - ssh-agent-credentials: - users: - - 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e' + - ssh-agent-credentials: + users: + - 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e' - wrapper: name: build-timeout @@ -175,97 +176,97 @@ - wrapper: name: fix-workspace-permissions wrappers: - - pre-scm-buildstep: + - pre-scm-buildstep: - shell: | - #!/bin/bash - sudo chown -R $USER:$USER $WORKSPACE || exit 1 + #!/bin/bash + sudo chown -R $USER:$USER $WORKSPACE || exit 1 - builder: name: build-html-and-pdf-docs-output builders: - - shell: | - #!/bin/bash - set -o errexit - set -o xtrace - export PATH=$PATH:/usr/local/bin/ - git clone ssh://gerrit.opnfv.org:29418/opnfvdocs docs_build/_opnfvdocs - GERRIT_COMMENT=gerrit_comment.txt ./docs_build/_opnfvdocs/scripts/docs-build.sh + - shell: | + #!/bin/bash + set -o errexit + set -o xtrace + export PATH=$PATH:/usr/local/bin/ + git clone ssh://gerrit.opnfv.org:29418/opnfvdocs docs_build/_opnfvdocs + GERRIT_COMMENT=gerrit_comment.txt ./docs_build/_opnfvdocs/scripts/docs-build.sh - builder: name: upload-under-review-docs-to-opnfv-artifacts builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - set -o xtrace - export PATH=$PATH:/usr/local/bin/ - - [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] - [[ -d docs_output ]] || exit 0 - - echo - echo "###########################" - echo "UPLOADING DOCS UNDER REVIEW" - echo "###########################" - echo - - gs_base="artifacts.opnfv.org/$PROJECT/review" - gs_path="$gs_base/$GERRIT_CHANGE_NUMBER" - local_path="upload/$GERRIT_CHANGE_NUMBER" - - mkdir -p upload - mv docs_output "$local_path" - gsutil -m cp -r "$local_path" "gs://$gs_base" - - gsutil -m setmeta \ - -h "Content-Type:text/html" \ - -h "Cache-Control:private, max-age=0, no-transform" \ - "gs://$gs_path"/**.html > /dev/null 2>&1 - - echo "Document link(s):" >> gerrit_comment.txt - find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \ - sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace + export PATH=$PATH:/usr/local/bin/ + + [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] + [[ -d docs_output ]] || exit 0 + + echo + echo "###########################" + echo "UPLOADING DOCS UNDER REVIEW" + echo "###########################" + echo + + gs_base="artifacts.opnfv.org/$PROJECT/review" + gs_path="$gs_base/$GERRIT_CHANGE_NUMBER" + local_path="upload/$GERRIT_CHANGE_NUMBER" + + mkdir -p upload + mv docs_output "$local_path" + gsutil -m cp -r "$local_path" "gs://$gs_base" + + gsutil -m setmeta \ + -h "Content-Type:text/html" \ + -h "Cache-Control:private, max-age=0, no-transform" \ + "gs://$gs_path"/**.html > /dev/null 2>&1 + + echo "Document link(s):" >> gerrit_comment.txt + find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \ + sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt - builder: name: upload-generated-docs-to-opnfv-artifacts builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - set -o xtrace - export PATH=$PATH:/usr/local/bin/ + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace + export PATH=$PATH:/usr/local/bin/ - [[ -d docs_output ]] || exit 0 + [[ -d docs_output ]] || exit 0 - echo - echo "########################" - echo "UPLOADING GENERATED DOCS" - echo "########################" - echo + echo + echo "########################" + echo "UPLOADING GENERATED DOCS" + echo "########################" + echo - echo "gs_path="$GS_URL/docs"" - echo "local_path="upload/docs"" + echo "gs_path="$GS_URL/docs"" + echo "local_path="upload/docs"" - gs_path="$GS_URL/docs" - local_path="upload/docs" + gs_path="$GS_URL/docs" + local_path="upload/docs" - mkdir -p upload - mv docs_output "$local_path" - ls "$local_path" + mkdir -p upload + mv docs_output "$local_path" + ls "$local_path" - echo "gsutil -m cp -r "$local_path"/* "gs://$gs_path"" - gsutil -m cp -r "$local_path"/* "gs://$gs_path" + echo "gsutil -m cp -r "$local_path"/* "gs://$gs_path"" + gsutil -m cp -r "$local_path"/* "gs://$gs_path" - gsutil -m setmeta \ - -h "Content-Type:text/html" \ - -h "Cache-Control:private, max-age=0, no-transform" \ - "gs://$gs_path"/**.html > /dev/null 2>&1 + gsutil -m setmeta \ + -h "Content-Type:text/html" \ + -h "Cache-Control:private, max-age=0, no-transform" \ + "gs://$gs_path"/**.html > /dev/null 2>&1 - echo "Document link(s):" >> gerrit_comment.txt - find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \ - sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt + echo "Document link(s):" >> gerrit_comment.txt + find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \ + sed -e "s|^$local_path| http://$gs_path|" >> gerrit_comment.txt # To take advantage of this macro, have your build write # out the file 'gerrit_comment.txt' with information to post @@ -273,213 +274,213 @@ - builder: name: report-build-result-to-gerrit builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - set -o xtrace - export PATH=$PATH:/usr/local/bin/ - if [[ -e gerrit_comment.txt ]] ; then - echo - echo "posting review comment to gerrit..." - echo - cat gerrit_comment.txt - echo - ssh -p 29418 gerrit.opnfv.org \ - "gerrit review -p $GERRIT_PROJECT \ - -m '$(cat gerrit_comment.txt)' \ - $GERRIT_PATCHSET_REVISION \ - --notify NONE" - fi + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace + export PATH=$PATH:/usr/local/bin/ + if [[ -e gerrit_comment.txt ]] ; then + echo + echo "posting review comment to gerrit..." + echo + cat gerrit_comment.txt + echo + ssh -p 29418 gerrit.opnfv.org \ + "gerrit review -p $GERRIT_PROJECT \ + -m '$(cat gerrit_comment.txt)' \ + $GERRIT_PATCHSET_REVISION \ + --notify NONE" + fi - builder: name: remove-old-docs-from-opnfv-artifacts builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - set -o xtrace - export PATH=$PATH:/usr/local/bin/ - - [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] - - gs_path="artifacts.opnfv.org/$PROJECT/review/$GERRIT_CHANGE_NUMBER" - - if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then - echo - echo "Deleting Out-of-dated Documents..." - gsutil -m rm -r "gs://$gs_path" - fi - gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER" - - if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then - echo - echo "Deleting Out-of-dated Documents..." - gsutil -m rm -r "gs://$gs_path" - fi + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace + export PATH=$PATH:/usr/local/bin/ + + [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] + + gs_path="artifacts.opnfv.org/$PROJECT/review/$GERRIT_CHANGE_NUMBER" + + if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then + echo + echo "Deleting Out-of-dated Documents..." + gsutil -m rm -r "gs://$gs_path" + fi + gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER" + + if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then + echo + echo "Deleting Out-of-dated Documents..." + gsutil -m rm -r "gs://$gs_path" + fi - builder: name: build-and-upload-artifacts-json-api builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - export PATH=$PATH:/usr/local/bin/ + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + export PATH=$PATH:/usr/local/bin/ - virtualenv -p python2.7 $WORKSPACE/releng_artifacts - source $WORKSPACE/releng_artifacts/bin/activate + virtualenv -p python2.7 $WORKSPACE/releng_artifacts + source $WORKSPACE/releng_artifacts/bin/activate - # install python packages - pip install google-api-python-client + # install python packages + pip install google-api-python-client - # generate and upload index file - echo "Generating Artifacts API ..." - python $WORKSPACE/utils/opnfv-artifacts.py > index.json - gsutil cp index.json gs://artifacts.opnfv.org/index.json + # generate and upload index file + echo "Generating Artifacts API ..." + python $WORKSPACE/utils/opnfv-artifacts.py > index.json + gsutil cp index.json gs://artifacts.opnfv.org/index.json - deactivate + deactivate - builder: name: lint-python-code builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - set -o xtrace - export PATH=$PATH:/usr/local/bin/ - - virtualenv -p python2.7 $WORKSPACE/releng_flake8 - source $WORKSPACE/releng_flake8/bin/activate - - # install python packages - pip install "flake8==2.6.2" - - # generate and upload lint log - echo "Running flake8 code on $PROJECT ..." - - # Get number of flake8 violations. If none, this will be an - # empty string: "" - FLAKE_COUNT="$(find . \ + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace + export PATH=$PATH:/usr/local/bin/ + + virtualenv -p python2.7 $WORKSPACE/releng_flake8 + source $WORKSPACE/releng_flake8/bin/activate + + # install python packages + pip install "flake8==2.6.2" + + # generate and upload lint log + echo "Running flake8 code on $PROJECT ..." + + # Get number of flake8 violations. If none, this will be an + # empty string: "" + FLAKE_COUNT="$(find . \ + -path './releng_flake8' -prune -o \ + -path './.tox' -prune -o \ + -type f -name "*.py" -print | \ + xargs flake8 --exit-zero -qq --count 2>&1)" + + # Ensure we start with a clean environment + rm -f lint.log + + if [ ! -z $FLAKE_COUNT ]; then + echo "Flake8 Violations: $FLAKE_COUNT" > lint.log + find . \ -path './releng_flake8' -prune -o \ -path './.tox' -prune -o \ -type f -name "*.py" -print | \ - xargs flake8 --exit-zero -qq --count 2>&1)" - - # Ensure we start with a clean environment - rm -f lint.log - - if [ ! -z $FLAKE_COUNT ]; then - echo "Flake8 Violations: $FLAKE_COUNT" > lint.log - find . \ - -path './releng_flake8' -prune -o \ - -path './.tox' -prune -o \ - -type f -name "*.py" -print | \ - xargs flake8 --exit-zero --first >> violation.log - SHOWN=$(wc -l violation.log | cut -d' ' -f1) - echo -e "First $SHOWN shown\n---" >> lint.log - cat violation.log >> lint.log - sed -r -i '4,$s/^/ /g' lint.log - rm violation.log - fi - - deactivate + xargs flake8 --exit-zero --first >> violation.log + SHOWN=$(wc -l violation.log | cut -d' ' -f1) + echo -e "First $SHOWN shown\n---" >> lint.log + cat violation.log >> lint.log + sed -r -i '4,$s/^/ /g' lint.log + rm violation.log + fi + + deactivate - builder: name: report-lint-result-to-gerrit builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - set -o xtrace - export PATH=$PATH:/usr/local/bin/ + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace + export PATH=$PATH:/usr/local/bin/ - # If no violations were found, no lint log will exist. - if [[ -e lint.log ]] ; then - echo -e "\nposting linting report to gerrit...\n" + # If no violations were found, no lint log will exist. + if [[ -e lint.log ]] ; then + echo -e "\nposting linting report to gerrit...\n" - cat lint.log - echo + cat lint.log + echo - ssh -p 29418 gerrit.opnfv.org \ - "gerrit review -p $GERRIT_PROJECT \ - -m \"$(cat lint.log)\" \ - $GERRIT_PATCHSET_REVISION \ - --notify NONE" + ssh -p 29418 gerrit.opnfv.org \ + "gerrit review -p $GERRIT_PROJECT \ + -m \"$(cat lint.log)\" \ + $GERRIT_PATCHSET_REVISION \ + --notify NONE" - exit 1 - fi + exit 1 + fi - builder: name: upload-review-docs builders: - - build-html-and-pdf-docs-output - - upload-under-review-docs-to-opnfv-artifacts - - report-build-result-to-gerrit + - build-html-and-pdf-docs-output + - upload-under-review-docs-to-opnfv-artifacts + - report-build-result-to-gerrit - builder: name: upload-merged-docs builders: - - build-html-and-pdf-docs-output - - upload-generated-docs-to-opnfv-artifacts - - report-build-result-to-gerrit - - remove-old-docs-from-opnfv-artifacts + - build-html-and-pdf-docs-output + - upload-generated-docs-to-opnfv-artifacts + - report-build-result-to-gerrit + - remove-old-docs-from-opnfv-artifacts - builder: name: check-bash-syntax builders: - - shell: "find . -name '*.sh' | xargs bash -n" + - shell: "find . -name '*.sh' | xargs bash -n" - builder: name: lint-yaml-code builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - set -o xtrace - export PATH=$PATH:/usr/local/bin/ - - # install python packages - pip install "yamllint==1.6.0" - - # generate and upload lint log - echo "Running yaml code on $PROJECT ..." - - # Ensure we start with a clean environment - rm -f yaml-violation.log lint.log - - # Get number of yaml violations. If none, this will be an - # empty string: "" - find . \ - -type f -name "*.yml" -print \ - -o -name "*.yaml" -print | \ - xargs yamllint > yaml-violation.log || true - - if [ -s "yaml-violation.log" ]; then - SHOWN=$(cat yaml-violation.log| grep -v "^$" |wc -l) - echo -e "First $SHOWN shown\n---" > lint.log - cat yaml-violation.log >> lint.log - sed -r -i '4,$s/^/ /g' lint.log - fi + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace + export PATH=$PATH:/usr/local/bin/ + + # install python packages + pip install "yamllint==1.6.0" + + # generate and upload lint log + echo "Running yaml code on $PROJECT ..." + + # Ensure we start with a clean environment + rm -f yaml-violation.log lint.log + + # Get number of yaml violations. If none, this will be an + # empty string: "" + find . \ + -type f -name "*.yml" -print \ + -o -name "*.yaml" -print | \ + xargs yamllint > yaml-violation.log || true + + if [ -s "yaml-violation.log" ]; then + SHOWN=$(cat yaml-violation.log| grep -v "^$" |wc -l) + echo -e "First $SHOWN shown\n---" > lint.log + cat yaml-violation.log >> lint.log + sed -r -i '4,$s/^/ /g' lint.log + fi - builder: name: clean-workspace-log builders: - - shell: | - find $WORKSPACE -type f -name '*.log' | xargs rm -f + - shell: | + find $WORKSPACE -type f -name '*.log' | xargs rm -f - publisher: name: archive-artifacts publishers: - - archive: - artifacts: '{artifacts}' - allow-empty: true - fingerprint: true - latest-only: true + - archive: + artifacts: '{artifacts}' + allow-empty: true + fingerprint: true + latest-only: true - publisher: name: publish-coverage diff --git a/jjb/global/slave-params.yml b/jjb/global/slave-params.yml index 9234206a5..75c4323e6 100644 --- a/jjb/global/slave-params.yml +++ b/jjb/global/slave-params.yml @@ -1,3 +1,4 @@ +--- ##################################################### # Parameters for slaves using old labels # This will be cleaned up once the new job structure and @@ -6,1046 +7,1039 @@ - parameter: name: 'apex-baremetal-master-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'apex-baremetal-master' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - lf-pod1 - default-slaves: - - lf-pod1 + - label: + name: SLAVE_LABEL + default: 'apex-baremetal-master' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: SSH_KEY + default: /root/.ssh/id_rsa + description: 'SSH key to use for Apex' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - lf-pod1 + default-slaves: + - lf-pod1 + - parameter: name: 'apex-baremetal-danube-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'apex-baremetal-danube' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - lf-pod1 - default-slaves: - - lf-pod1 + - label: + name: SLAVE_LABEL + default: 'apex-baremetal-danube' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: SSH_KEY + default: /root/.ssh/id_rsa + description: 'SSH key to use for Apex' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - lf-pod1 + default-slaves: + - lf-pod1 + - parameter: name: 'apex-virtual-master-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'apex-virtual-master' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - lf-virtual2 - - lf-virtual3 - default-slaves: - - lf-virtual2 - - lf-virtual3 + - label: + name: SLAVE_LABEL + default: 'apex-virtual-master' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: SSH_KEY + default: /root/.ssh/id_rsa + description: 'SSH key to use for Apex' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - lf-virtual2 + - lf-virtual3 + default-slaves: + - lf-virtual2 + - lf-virtual3 - parameter: name: 'apex-virtual-danube-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'apex-virtual-danube' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - lf-pod3 - default-slaves: - - lf-pod3 + - label: + name: SLAVE_LABEL + default: 'apex-virtual-danube' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: SSH_KEY + default: /root/.ssh/id_rsa + description: 'SSH key to use for Apex' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - lf-pod3 + default-slaves: + - lf-pod3 + - parameter: name: 'lf-pod1-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - lf-pod1 - default-slaves: - - lf-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - lf-pod1 + default-slaves: + - lf-pod1 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: SSH_KEY + default: /root/.ssh/id_rsa + description: 'SSH key to use for Apex' + - parameter: name: 'lf-pod3-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - lf-pod3 - default-slaves: - - lf-pod3 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - lf-pod3 + default-slaves: + - lf-pod3 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: SSH_KEY + default: /root/.ssh/id_rsa + description: 'SSH key to use for Apex' + ##################################################### # Parameters for CI baremetal PODs ##################################################### - parameter: name: 'apex-baremetal-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'apex-baremetal' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' + - label: + name: SLAVE_LABEL + default: 'apex-baremetal' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: SSH_KEY + default: /root/.ssh/id_rsa + description: 'SSH key to use for Apex' - parameter: name: 'compass-baremetal-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'compass-baremetal' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'compass-baremetal' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'compass-baremetal-master-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'compass-baremetal-master' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'compass-baremetal-master' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'compass-baremetal-branch-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'compass-baremetal-branch' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'compass-baremetal-branch' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'fuel-baremetal-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'fuel-baremetal' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'fuel-baremetal' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'armband-baremetal-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'armband-baremetal' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: LAB_CONFIG_URL - default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab - description: 'Base URI to the configuration directory' + - label: + name: SLAVE_LABEL + default: 'armband-baremetal' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: LAB_CONFIG_URL + default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab + description: 'Base URI to the configuration directory' + - parameter: name: 'joid-baremetal-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'joid-baremetal' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: EXTERNAL_NETWORK - default: ext-net - description: "External network floating ips" + - label: + name: SLAVE_LABEL + default: 'joid-baremetal' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: EXTERNAL_NETWORK + default: ext-net + description: "External network floating ips" + - parameter: name: 'daisy-baremetal-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-pod2 - default-slaves: - - zte-pod2 - - label: - name: SLAVE_LABEL - default: 'daisy-baremetal' - - string: - name: INSTALLER_IP - default: '10.20.7.3' - description: 'IP of the installer' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - zte-pod2 + default-slaves: + - zte-pod2 + - label: + name: SLAVE_LABEL + default: 'daisy-baremetal' + - string: + name: INSTALLER_IP + default: '10.20.7.3' + description: 'IP of the installer' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + ##################################################### # Parameters for CI virtual PODs ##################################################### - parameter: name: 'apex-virtual-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'apex-virtual' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' + - label: + name: SLAVE_LABEL + default: 'apex-virtual' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: SSH_KEY + default: /root/.ssh/id_rsa + description: 'SSH key to use for Apex' + - parameter: name: 'compass-virtual-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'compass-virtual' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'compass-virtual' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'compass-virtual-master-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'compass-virtual-master' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'compass-virtual-master' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'compass-virtual-branch-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'compass-virtual-branch' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'compass-virtual-branch' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'fuel-virtual-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'fuel-virtual' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'fuel-virtual' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'armband-virtual-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'armband-virtual' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: LAB_CONFIG_URL - default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab - description: 'Base URI to the configuration directory' + - label: + name: SLAVE_LABEL + default: 'armband-virtual' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: LAB_CONFIG_URL + default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab + description: 'Base URI to the configuration directory' + - parameter: name: 'joid-virtual-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'joid-virtual' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'joid-virtual' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'daisy-virtual-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-virtual1 - - zte-virtual2 - default-slaves: - - zte-virtual1 - - label: - name: SLAVE_LABEL - default: 'daisy-virtual' - - string: - name: INSTALLER_IP - default: '10.20.11.2' - description: 'IP of the installer' - - string: - name: BRIDGE - default: 'daisy1' - description: 'pxe bridge for booting of Daisy master' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - zte-virtual1 + - zte-virtual2 + default-slaves: + - zte-virtual1 + - label: + name: SLAVE_LABEL + default: 'daisy-virtual' + - string: + name: INSTALLER_IP + default: '10.20.11.2' + description: 'IP of the installer' + - string: + name: BRIDGE + default: 'daisy1' + description: 'pxe bridge for booting of Daisy master' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + ##################################################### # Parameters for build slaves ##################################################### - parameter: name: 'opnfv-build-enea-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'opnfv-build-enea' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." + - label: + name: SLAVE_LABEL + default: 'opnfv-build-enea' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - parameter: name: 'opnfv-build-centos-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'opnfv-build-centos' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." + - label: + name: SLAVE_LABEL + default: 'opnfv-build-centos' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - parameter: name: 'opnfv-build-ubuntu-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'opnfv-build-ubuntu' - 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: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." + - label: + name: SLAVE_LABEL + default: 'opnfv-build-ubuntu' + 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: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - parameter: name: 'opnfv-build-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'opnfv-build' - 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: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." + - label: + name: SLAVE_LABEL + default: 'opnfv-build' + 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: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - parameter: name: 'huawei-build-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-build - default-slaves: - - huawei-build - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - huawei-build + default-slaves: + - huawei-build + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'opnfv-build-ubuntu-arm-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'opnfv-build-ubuntu-arm' - 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: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." + - label: + name: SLAVE_LABEL + default: 'opnfv-build-ubuntu-arm' + 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: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + ##################################################### # Parameters for none-CI PODs ##################################################### - parameter: name: 'ericsson-pod1-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - ericsson-pod1 - default-slaves: - - ericsson-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - ericsson-pod1 + default-slaves: + - ericsson-pod1 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'cengn-pod1-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - cengn-pod1 - default-slaves: - - cengn-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - cengn-pod1 + default-slaves: + - cengn-pod1 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'intel-pod1-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod1 - default-slaves: - - intel-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - intel-pod1 + default-slaves: + - intel-pod1 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'intel-pod2-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod2 - default-slaves: - - intel-pod2 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - intel-pod2 + default-slaves: + - intel-pod2 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: SSH_KEY + default: /root/.ssh/id_rsa + description: 'SSH key to use for Apex' + - parameter: name: 'intel-pod9-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod9 - default-slaves: - - intel-pod9 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - intel-pod9 + default-slaves: + - intel-pod9 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'intel-pod10-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod10 - default-slaves: - - intel-pod10 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - intel-pod10 + default-slaves: + - intel-pod10 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'intel-pod12-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod12 - default-slaves: - - intel-pod12 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - intel-pod12 + default-slaves: + - intel-pod12 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'huawei-pod3-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-pod3 - default-slaves: - - huawei-pod3 - - label: - name: SLAVE_LABEL - default: 'huawei-test' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - huawei-pod3 + default-slaves: + - huawei-pod3 + - label: + name: SLAVE_LABEL + default: 'huawei-test' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'huawei-pod4-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-pod4 - default-slaves: - - huawei-pod4 - - label: - name: SLAVE_LABEL - default: 'huawei-test' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - huawei-pod4 + default-slaves: + - huawei-pod4 + - label: + name: SLAVE_LABEL + default: 'huawei-test' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'intel-pod8-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod8 - default-slaves: - - intel-pod8 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - intel-pod8 + default-slaves: + - intel-pod8 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + - parameter: name: 'huawei-virtual5-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'huawei-virtual5' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT + - label: + name: SLAVE_LABEL + default: 'huawei-virtual5' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + - parameter: name: 'huawei-virtual7-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-virtual7 - default-slaves: - - huawei-virtual7 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - huawei-virtual7 + default-slaves: + - huawei-virtual7 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + - parameter: name: 'huawei-pod7-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-pod7 - default-slaves: - - huawei-pod7 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - huawei-pod7 + default-slaves: + - huawei-pod7 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + - parameter: name: 'zte-pod1-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-pod1 - default-slaves: - - zte-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: INSTALLER_IP - default: '10.20.6.2' - description: 'IP of the installer' - - string: - name: BRIDGE - default: 'br6' - description: 'pxe bridge for booting of Fuel master' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - zte-pod1 + default-slaves: + - zte-pod1 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: INSTALLER_IP + default: '10.20.6.2' + description: 'IP of the installer' + - string: + name: BRIDGE + default: 'br6' + description: 'pxe bridge for booting of Fuel master' + - parameter: name: 'zte-pod2-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-pod2 - default-slaves: - - zte-pod2 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: INSTALLER_IP - default: '10.20.7.3' - description: 'IP of the installer' - - string: - name: BRIDGE - default: 'br7' - description: 'pxe bridge for booting of Fuel master' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - zte-pod2 + default-slaves: + - zte-pod2 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: INSTALLER_IP + default: '10.20.7.3' + description: 'IP of the installer' + - string: + name: BRIDGE + default: 'br7' + description: 'pxe bridge for booting of Fuel master' + - parameter: name: 'zte-pod3-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-pod3 - default-slaves: - - zte-pod3 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BRIDGE - default: 'br0' - description: 'pxe bridge for booting of Fuel master' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - zte-pod3 + default-slaves: + - zte-pod3 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: BRIDGE + default: 'br0' + description: 'pxe bridge for booting of Fuel master' + - parameter: name: zte-pod4-defaults parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-pod4 - default-slaves: - - zte-pod4 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - zte-pod4 + default-slaves: + - zte-pod4 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'juniper-pod1-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - juniper-pod1 - default-slaves: - - juniper-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: CEPH_DISKS - default: /srv - description: "Disks to use by ceph (comma separated list)" + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - juniper-pod1 + default-slaves: + - juniper-pod1 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: CEPH_DISKS + default: /srv + description: "Disks to use by ceph (comma separated list)" + - parameter: name: 'orange-pod1-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - orange-pod1 - default-slaves: - - orange-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - orange-pod1 + default-slaves: + - orange-pod1 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'orange-pod2-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - orange-pod2 - default-slaves: - - orange-pod2 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - orange-pod2 + default-slaves: + - orange-pod2 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'orange-pod5-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - orange-pod5 - default-slaves: - - orange-pod5 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - orange-pod5 + default-slaves: + - orange-pod5 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'dell-pod1-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - dell-pod1 - default-slaves: - - dell-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - dell-pod1 + default-slaves: + - dell-pod1 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'dell-pod2-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - dell-pod2 - default-slaves: - - dell-pod2 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - dell-pod2 + default-slaves: + - dell-pod2 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'nokia-pod1-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - nokia-pod1 - default-slaves: - - nokia-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' -- parameter: - name: 'arm-pod2-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - arm-pod2 - default-slaves: - - arm-pod2 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: LAB_CONFIG_URL - default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab - description: 'Base URI to the configuration directory' -- parameter: - name: 'arm-pod5-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - arm-pod5 - default-slaves: - - arm-pod5 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: LAB_CONFIG_URL - default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab - description: 'Base URI to the configuration directory' -- parameter: - name: 'arm-pod4-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - arm-pod4 - default-slaves: - - arm-pod4 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: LAB_CONFIG_URL - default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab - description: 'Base URI to the configuration directory' -- parameter: - name: 'arm-virtual2-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - arm-virtual2 - default-slaves: - - arm-virtual2 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: LAB_CONFIG_URL - default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab - description: 'Base URI to the configuration directory' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - nokia-pod1 + default-slaves: + - nokia-pod1 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: SSH_KEY + default: /root/.ssh/id_rsa + description: 'SSH key to use for Apex' + - parameter: name: 'intel-virtual6-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-virtual6 - default-slaves: - - intel-virtual6 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - intel-virtual6 + default-slaves: + - intel-virtual6 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'intel-virtual10-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-virtual10 - default-slaves: - - intel-virtual10 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - intel-virtual10 + default-slaves: + - intel-virtual10 + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'doctor-defaults' parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - '{default-slave}' - default-slaves: - - '{default-slave}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to be used' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - '{default-slave}' + default-slaves: + - '{default-slave}' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: SSH_KEY + default: /root/.ssh/id_rsa + description: 'SSH key to be used' + - parameter: name: 'doctor-apex-verify-defaults' parameters: - - 'doctor-defaults': - default-slave: 'doctor-apex-verify' + - 'doctor-defaults': + default-slave: 'doctor-apex-verify' + - parameter: name: 'doctor-fuel-verify-defaults' parameters: - - 'doctor-defaults': - default-slave: 'doctor-fuel-verify' + - 'doctor-defaults': + default-slave: 'doctor-fuel-verify' + - parameter: name: 'doctor-joid-verify-defaults' parameters: - - 'doctor-defaults': - default-slave: 'doctor-joid-verify' + - 'doctor-defaults': + default-slave: 'doctor-joid-verify' + - parameter: name: 'multisite-virtual-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'multisite-virtual' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'multisite-virtual' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'ericsson-virtual5-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'ericsson-virtual5' - - string: - name: GIT_BASE - default: https://git.opendaylight.org/gerrit/p/$PROJECT.git - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'ericsson-virtual5' + - string: + name: GIT_BASE + default: https://git.opendaylight.org/gerrit/p/$PROJECT.git + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'ericsson-virtual12-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'ericsson-virtual12' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'ericsson-virtual12' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'ericsson-virtual13-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'ericsson-virtual13' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'ericsson-virtual13' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'ericsson-virtual-pod1bl01-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'ericsson-virtual-pod1bl01' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'ericsson-virtual-pod1bl01' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'odl-netvirt-virtual-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'odl-netvirt-virtual' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'odl-netvirt-virtual' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - parameter: name: 'odl-netvirt-virtual-intel-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'odl-netvirt-virtual-intel' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'odl-netvirt-virtual-intel' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + ##################################################### # These slaves are just dummy slaves for sandbox jobs ##################################################### - parameter: name: 'sandbox-baremetal-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'sandbox-baremetal' - 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: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." + - label: + name: SLAVE_LABEL + default: 'sandbox-baremetal' + 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: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - parameter: name: 'sandbox-virtual-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'sandbox-virtual' - 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: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." + - label: + name: SLAVE_LABEL + default: 'sandbox-virtual' + 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: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - parameter: name: 'dummy-pod1-defaults' parameters: - - label: - name: SLAVE_LABEL - default: 'dummy-pod1' - 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: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." + - label: + name: SLAVE_LABEL + default: 'dummy-pod1' + 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: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." diff --git a/jjb/opnfvdocs/project.cfg b/jjb/opnfvdocs/project.cfg index 1ea05c1d4..0722b4036 100644 --- a/jjb/opnfvdocs/project.cfg +++ b/jjb/opnfvdocs/project.cfg @@ -5,6 +5,7 @@ bottlenecks compass4nfv copper conductor +container4nfv daisy doctor domino @@ -24,7 +25,6 @@ movie multisite octopus onosfw -openretriever ovno ovsnfv parser diff --git a/jjb/releng/opnfv-repo-archiver.sh b/jjb/releng/opnfv-repo-archiver.sh new file mode 100644 index 000000000..c9fdba379 --- /dev/null +++ b/jjb/releng/opnfv-repo-archiver.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2016 Linux Foundation and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +set -o errexit +set -o pipefail +export PATH=$PATH:/usr/local/bin/ + +DATE="$(date +%Y%m%d)" + +declare -a PROJECT_LIST +EXCLUDE_PROJECTS="All-Projects|All-Users|securedlab" +CLONE_PATH="$WORKSPACE/opnfv-repos" + +# Generate project list from gerrit +PROJECT_LIST=($(ssh -p 29418 jenkins-ci@gerrit.opnfv.org gerrit ls-projects | egrep -v $EXCLUDE_PROJECTS)) + +echo "Cloning all OPNFV repositories" +echo "------------------------------" + +for PROJECT in "${PROJECT_LIST[@]}"; do + echo "> Cloning $PROJECT" + if [ ! -d "$CLONE_PATH/$PROJECT" ]; then + git clone "https://gerrit.opnfv.org/gerrit/$PROJECT.git" $CLONE_PATH/$PROJECT + else + pushd "$CLONE_PATH/$PROJECT" &>/dev/null + git pull -f + popd &> /dev/null + fi + + # Don't license scan kernel or qemu in kvmfornfv + if [ "$PROJECT" == "kvmfornfv" ]; then + rm -rf "$CLONE_PATH/$PROJECT/{kernel,qemu}" + fi +done + +echo "Finished cloning OPNFV repositories" +echo "-----------------------------------" + +# Copy repos and clear git data +echo "Copying repos to $WORKSPACE/opnfv-archive and removing .git files" +cp -R $CLONE_PATH $WORKSPACE/opnfv-archive +find $WORKSPACE/opnfv-archive -type d -iname '.git' -exec rm -rf {} + +find $WORKSPACE/opnfv-archive -type f -iname '.git*' -exec rm -rf {} + + +# Create archive +echo "Creating archive: opnfv-archive-$DATE.tar.gz" +echo "--------------------------------------" +cd $WORKSPACE +tar -czf "opnfv-archive-$DATE.tar.gz" opnfv-archive && rm -rf opnfv-archive +echo "Archiving Complete." + +echo "Uploading artifacts" +echo "--------------------------------------" + +gsutil cp "$WORKSPACE/opnfv-archive-$DATE.tar.gz" \ + "gs://opnfv-archive/opnfv-archive-$DATE.tar.gz" 2>&1 + +rm -f opnfv-archive-$DATE.tar.gz + +echo "Finished" diff --git a/jjb/releng/opnfv-utils.yml b/jjb/releng/opnfv-utils.yml index 717bb3cbc..ac1ec07f4 100644 --- a/jjb/releng/opnfv-utils.yml +++ b/jjb/releng/opnfv-utils.yml @@ -4,6 +4,8 @@ jobs: - 'prune-docker-images' + - 'archive-repositories' + ######################## # job templates ######################## @@ -37,3 +39,26 @@ triggers: - timed: '@midnight' + +- job-template: + name: 'archive-repositories' + + disabled: false + + concurrent: true + + parameters: + - node: + name: SLAVE_NAME + description: Where to create the archive + default-slaves: + - master + allowed-multiselect: false + ignore-offline-nodes: true + + triggers: + - timed: '@monthly' + + builders: + - shell: + !include-raw-escape: opnfv-repo-archiver.sh diff --git a/jjb/sfc/sfc-project-jobs.yml b/jjb/sfc/sfc-project-jobs.yml new file mode 100644 index 000000000..379fe793a --- /dev/null +++ b/jjb/sfc/sfc-project-jobs.yml @@ -0,0 +1,70 @@ +################################################### +# All the jobs except verify have been removed! +# They will only be enabled on request by projects! +################################################### +- project: + name: sfc-project-jobs + + project: 'sfc' + + jobs: + - 'sfc-verify-{stream}' + stream: + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - danube: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: true + +- job-template: + name: 'sfc-verify-{stream}' + + disabled: '{obj:disabled}' + + 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}' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**|.gitignore' + + builders: + - sfc-unit-tests + +################################ +# job builders +################################ + +- builder: + name: sfc-unit-tests + builders: + - shell: | + cd $WORKSPACE && yamllint $(git ls-tree -r HEAD --name-only | egrep 'yml$|yaml$') diff --git a/jjb/xci/bifrost-periodic-jobs.yml b/jjb/xci/bifrost-periodic-jobs.yml index 7ef11a4cf..a1892fc5f 100644 --- a/jjb/xci/bifrost-periodic-jobs.yml +++ b/jjb/xci/bifrost-periodic-jobs.yml @@ -49,7 +49,7 @@ - 'suse': disabled: true slave-label: xci-suse-virtual - dib-os-release: '42.2' + dib-os-release: '42.3' dib-os-element: 'opensuse-minimal' dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' extra-dib-elements: 'openssh-server' diff --git a/jjb/xci/bifrost-verify-jobs.yml b/jjb/xci/bifrost-verify-jobs.yml index ef604fcfc..af51c2b79 100644 --- a/jjb/xci/bifrost-verify-jobs.yml +++ b/jjb/xci/bifrost-verify-jobs.yml @@ -34,7 +34,7 @@ extra-dib-elements: 'openssh-server' - 'suse': disabled: false - dib-os-release: '42.2' + dib-os-release: '42.3' dib-os-element: 'opensuse-minimal' dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' extra-dib-elements: 'openssh-server' diff --git a/jjb/xci/osa-periodic-jobs.yml b/jjb/xci/osa-periodic-jobs.yml index 833575039..7311baab4 100644 --- a/jjb/xci/osa-periodic-jobs.yml +++ b/jjb/xci/osa-periodic-jobs.yml @@ -127,8 +127,10 @@ - 'xci-verify-healthcheck-.*' - 'bifrost-verify-.*' - 'bifrost-periodic-.*' - - 'osa-verify-.*' - - 'osa-periodic-.*' + - 'osa-verify-deploy-.*' + - 'osa-verify-halthcheck-.*' + - 'osa-periodic-deploy-.*' + - 'osa-periodic-healthcheck-.*' block-level: 'NODE' parameters: diff --git a/jjb/xci/xci-daily-jobs.yml b/jjb/xci/xci-daily-jobs.yml index 42079b2f5..c39d07e39 100644 --- a/jjb/xci/xci-daily-jobs.yml +++ b/jjb/xci/xci-daily-jobs.yml @@ -16,10 +16,6 @@ stream: master opnfv-releng-version: master gs-pathname: '' - ocata: &ocata - stream: ocata - opnfv-releng-version: master - gs-pathname: '/{stream}' #-------------------------------- # Scenarios #-------------------------------- @@ -30,14 +26,18 @@ - 'os-nosdn-nofeature-noha': auto-trigger-name: 'daily-trigger-disabled' xci-flavor: 'noha' + - 'os-odl-sfc-ha': + auto-trigger-name: 'daily-trigger-disabled' + xci-flavor: 'ha' + - 'os-odl-sfc-noha': + auto-trigger-name: 'daily-trigger-disabled' + xci-flavor: 'noha' #-------------------------------- # XCI PODs #-------------------------------- pod: - virtual: <<: *master - - virtual: - <<: *ocata #-------------------------------- # Supported Distros #-------------------------------- @@ -59,7 +59,7 @@ - 'suse': disabled: true slave-label: xci-suse-virtual - dib-os-release: '42.2' + dib-os-release: '42.3' dib-os-element: 'opensuse-minimal' dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' extra-dib-elements: 'openssh-server' diff --git a/jjb/yardstick/yardstick-daily-jobs.yml b/jjb/yardstick/yardstick-daily-jobs.yml index 4536543a0..937e83fb5 100644 --- a/jjb/yardstick/yardstick-daily-jobs.yml +++ b/jjb/yardstick/yardstick-daily-jobs.yml @@ -166,36 +166,6 @@ installer: fuel auto-trigger-name: 'daily-trigger-disabled' <<: *danube - - arm-pod2: - slave-label: '{pod}' - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - arm-pod2: - slave-label: '{pod}' - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - arm-pod5: - slave-label: '{pod}' - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - arm-pod5: - slave-label: '{pod}' - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - arm-virtual2: - slave-label: '{pod}' - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - arm-virtual2: - slave-label: '{pod}' - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - orange-pod2: slave-label: '{pod}' installer: joid @@ -387,13 +357,6 @@ name: YARDSTICK_DB_BACKEND default: '-i 104.197.68.199:8086' description: 'Arguments to use in order to choose the backend DB' -- parameter: - name: 'yardstick-params-arm-virtual2' - parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' - parameter: name: 'yardstick-params-joid-baremetal' parameters: @@ -462,22 +425,6 @@ default: '-i 104.197.68.199:8086' description: 'Arguments to use in order to choose the backend DB' -- parameter: - name: 'yardstick-params-arm-pod2' - parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' - -- parameter: - name: 'yardstick-params-arm-pod5' - parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' - - parameter: name: 'yardstick-params-virtual' parameters: diff --git a/jjb/yardstick/yardstick-daily.sh b/jjb/yardstick/yardstick-daily.sh index ccee9715f..aaefba26e 100755 --- a/jjb/yardstick/yardstick-daily.sh +++ b/jjb/yardstick/yardstick-daily.sh @@ -20,7 +20,7 @@ fi if [[ ${INSTALLER_TYPE} == 'joid' ]]; then if [[ "${DEPLOY_SCENARIO:0:2}" == "k8" ]];then - rc_file_vol="-v $LAB_CONFIG/admin.conf:/etc/yardstick/admin.conf" + rc_file_vol="-v /home/ubuntu/config:/etc/yardstick/admin.conf" else # If production lab then creds may be retrieved dynamically # creds are on the jumphost, always in the same folder @@ -59,8 +59,14 @@ sudo rm -rf ${dir_result}/* map_log_dir="-v ${dir_result}:/tmp/yardstick" # Run docker -cmd="sudo docker run ${opts} ${envs} ${rc_file_vol} ${cacert_file_vol} ${map_log_dir} ${sshkey} opnfv/yardstick:${DOCKER_TAG} \ +if [[ ${INSTALLER_TYPE} == "joid" && "${DEPLOY_SCENARIO:0:2}" == "k8" ]];then + juju ssh kubernetes-master/0 sudo apt-get install -y docker.io + cmd="juju ssh kubernetes-master/0 sudo docker run ${opts} ${envs} ${rc_file_vol} ${cacert_file_vol} ${map_log_dir} ${sshkey} opnfv/yardstick:${DOCKER_TAG} exec_tests.sh ${YARDSTICK_DB_BACKEND} ${YARDSTICK_SCENARIO_SUITE_NAME}" +else + cmd="sudo docker run ${opts} ${envs} ${rc_file_vol} ${cacert_file_vol} ${map_log_dir} ${sshkey} opnfv/yardstick:${DOCKER_TAG} \ exec_tests.sh ${YARDSTICK_DB_BACKEND} ${YARDSTICK_SCENARIO_SUITE_NAME}" +fi + echo "Yardstick: Running docker cmd: ${cmd}" ${cmd} diff --git a/jjb/yardstick/yardstick-get-k8s-conf.sh b/jjb/yardstick/yardstick-get-k8s-conf.sh index ce1e94dde..e93367f9a 100755 --- a/jjb/yardstick/yardstick-get-k8s-conf.sh +++ b/jjb/yardstick/yardstick-get-k8s-conf.sh @@ -1,3 +1,4 @@ +#!/bin/bash set -e dest_path="$HOME/admin.conf" diff --git a/utils/fetch_os_creds.sh b/utils/fetch_os_creds.sh index 312e1ac5c..0e2a2b93f 100755 --- a/utils/fetch_os_creds.sh +++ b/utils/fetch_os_creds.sh @@ -112,6 +112,10 @@ if [ "$installer_type" == "fuel" ]; then info "Fetching rc file from controller $controller_ip..." ssh ${ssh_options} ubuntu@${controller_ip} "sudo cat /root/keystonercv3" > $dest_path + + if [[ $BUILD_TAG =~ "baremetal" ]]; then + ssh ${ssh_options} ubuntu@${installer_ip} "cat /etc/ssl/certs/os_cacert" > $os_cacert + fi else #ip_fuel="10.20.0.2" env=$(sshpass -p r00tme ssh 2>/dev/null ${ssh_options} root@${installer_ip} \ @@ -144,6 +148,13 @@ if [ "$installer_type" == "fuel" ]; then echo $auth_url >> $dest_path elif [ "$installer_type" == "apex" ]; then + if ! ipcalc -c $installer_ip; then + installer_ip=$(sudo virsh domifaddr undercloud | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') + if [ -z "$installer_ip" ] || ! $(ipcalc -c $installer_ip); then + echo "Unable to find valid IP for Apex undercloud: ${installer_ip}" + exit 1 + fi + fi verify_connectivity $installer_ip # The credentials file is located in the Instack VM (192.0.2.1) diff --git a/utils/test/reporting/reporting/functest/reporting-tempest.py b/utils/test/reporting/reporting/functest/reporting-tempest.py index bc2885639..d78d9a19d 100755 --- a/utils/test/reporting/reporting/functest/reporting-tempest.py +++ b/utils/test/reporting/reporting/functest/reporting-tempest.py @@ -8,58 +8,57 @@ # http://www.apache.org/licenses/LICENSE-2.0 # SPDX-license-identifier: Apache-2.0 -from urllib2 import Request, urlopen, URLError from datetime import datetime import json -import jinja2 import os -# manage conf -import utils.reporting_utils as rp_utils +from urllib2 import Request, urlopen, URLError +import jinja2 + +import reporting.utils.reporting_utils as rp_utils -installers = rp_utils.get_config('general.installers') -items = ["tests", "Success rate", "duration"] +INSTALLERS = rp_utils.get_config('general.installers') +ITEMS = ["tests", "Success rate", "duration"] CURRENT_DIR = os.getcwd() PERIOD = rp_utils.get_config('general.period') -criteria_nb_test = 165 -criteria_duration = 1800 -criteria_success_rate = 90 +CRITERIA_NB_TEST = 100 +CRITERIA_DURATION = 1800 +CRITERIA_SUCCESS_RATE = 100 logger = rp_utils.getLogger("Tempest") logger.info("************************************************") logger.info("* Generating reporting Tempest_smoke_serial *") -logger.info("* Data retention = %s days *" % PERIOD) +logger.info("* Data retention = %s days *", PERIOD) logger.info("* *") logger.info("************************************************") logger.info("Success criteria:") -logger.info("nb tests executed > %s s " % criteria_nb_test) -logger.info("test duration < %s s " % criteria_duration) -logger.info("success rate > %s " % criteria_success_rate) +logger.info("nb tests executed > %s s ", CRITERIA_NB_TEST) +logger.info("test duration < %s s ", CRITERIA_DURATION) +logger.info("success rate > %s ", CRITERIA_SUCCESS_RATE) # For all the versions for version in rp_utils.get_config('general.versions'): - for installer in installers: + for installer in INSTALLERS: # we consider the Tempest results of the last PERIOD days url = ("http://" + rp_utils.get_config('testapi.url') + - "?case=tempest_smoke_serial") - request = Request(url + '&period=' + str(PERIOD) + - '&installer=' + installer + - '&version=' + version) - logger.info("Search tempest_smoke_serial results for installer %s" - " for version %s" - % (installer, version)) + "?case=tempest_smoke_serial&period=" + str(PERIOD) + + "&installer=" + installer + "&version=" + version) + request = Request(url) + logger.info(("Search tempest_smoke_serial results for installer %s" + " for version %s"), installer, version) try: response = urlopen(request) k = response.read() results = json.loads(k) - except URLError as e: - logger.error("Error code: %s" % e) - + except URLError as err: + logger.error("Error code: %s", err) + logger.debug("request sent: %s", url) + logger.debug("Results from API: %s", results) test_results = results['results'] - + logger.debug("Test results: %s", test_results) scenario_results = {} criteria = {} errors = {} @@ -72,27 +71,37 @@ for version in rp_utils.get_config('general.versions'): scenario_results[r['scenario']] = [] scenario_results[r['scenario']].append(r) + logger.debug("Scenario results: %s", scenario_results) + for s, s_result in scenario_results.items(): scenario_results[s] = s_result[0:5] # For each scenario, we build a result object to deal with # results, criteria and error handling for result in scenario_results[s]: result["start_date"] = result["start_date"].split(".")[0] + logger.debug("start_date= %s", result["start_date"]) # retrieve results # **************** nb_tests_run = result['details']['tests'] nb_tests_failed = result['details']['failures'] - if nb_tests_run != 0: - success_rate = 100 * ((int(nb_tests_run) - + logger.debug("nb_tests_run= %s", nb_tests_run) + logger.debug("nb_tests_failed= %s", nb_tests_failed) + + try: + success_rate = (100 * (int(nb_tests_run) - int(nb_tests_failed)) / - int(nb_tests_run)) - else: + int(nb_tests_run)) + except ZeroDivisionError: success_rate = 0 result['details']["tests"] = nb_tests_run result['details']["Success rate"] = str(success_rate) + "%" + logger.info("nb_tests_run= %s", result['details']["tests"]) + logger.info("test rate = %s", + result['details']["Success rate"]) + # Criteria management # ******************* crit_tests = False @@ -100,11 +109,11 @@ for version in rp_utils.get_config('general.versions'): crit_time = False # Expect that at least 165 tests are run - if nb_tests_run >= criteria_nb_test: + if nb_tests_run >= CRITERIA_NB_TEST: crit_tests = True # Expect that at least 90% of success - if success_rate >= criteria_success_rate: + if success_rate >= CRITERIA_SUCCESS_RATE: crit_rate = True # Expect that the suite duration is inferior to 30m @@ -114,28 +123,27 @@ for version in rp_utils.get_config('general.versions'): '%Y-%m-%d %H:%M:%S') delta = stop_date - start_date - if (delta.total_seconds() < criteria_duration): + + if delta.total_seconds() < CRITERIA_DURATION: crit_time = True result['criteria'] = {'tests': crit_tests, 'Success rate': crit_rate, 'duration': crit_time} try: - logger.debug("Scenario %s, Installer %s" - % (s_result[1]['scenario'], installer)) - logger.debug("Nb Test run: %s" % nb_tests_run) - logger.debug("Test duration: %s" - % result['details']['duration']) - logger.debug("Success rate: %s" % success_rate) - except: + logger.debug("Nb Test run: %s", nb_tests_run) + logger.debug("Test duration: %s", delta) + logger.debug("Success rate: %s", success_rate) + except Exception: # pylint: disable=broad-except logger.error("Data format error") # Error management # **************** try: errors = result['details']['errors'] - result['errors'] = errors.replace('{0}', '') - except: + logger.info("errors: %s", errors) + result['errors'] = errors + except Exception: # pylint: disable=broad-except logger.error("Error field not present (Brahamputra runs?)") templateLoader = jinja2.FileSystemLoader(".") @@ -146,7 +154,7 @@ for version in rp_utils.get_config('general.versions'): template = templateEnv.get_template(TEMPLATE_FILE) outputText = template.render(scenario_results=scenario_results, - items=items, + items=ITEMS, installer=installer) with open("./display/" + version + diff --git a/utils/test/reporting/reporting/qtip/reporting-status.py b/utils/test/reporting/reporting/qtip/reporting-status.py index f0127b50f..56f9e0aee 100644 --- a/utils/test/reporting/reporting/qtip/reporting-status.py +++ b/utils/test/reporting/reporting/qtip/reporting-status.py @@ -33,8 +33,7 @@ def prepare_profile_file(version): if not os.path.exists(profile_dir): os.makedirs(profile_dir) - profile_file = "{}/{}/scenario_history.txt".format(profile_dir, - version) + profile_file = "{}/scenario_history.txt".format(profile_dir) if not os.path.exists(profile_file): with open(profile_file, 'w') as f: info = 'date,scenario,installer,details,score\n' diff --git a/utils/test/reporting/reporting/qtip/template/index-status-tmpl.html b/utils/test/reporting/reporting/qtip/template/index-status-tmpl.html index 26da36ceb..92f3395dc 100644 --- a/utils/test/reporting/reporting/qtip/template/index-status-tmpl.html +++ b/utils/test/reporting/reporting/qtip/template/index-status-tmpl.html @@ -46,10 +46,11 @@ diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/pods/pods.html b/utils/test/testapi/3rd_party/static/testapi-ui/components/pods/pods.html index cdfcfaf36..7ce36ca7c 100644 --- a/utils/test/testapi/3rd_party/static/testapi-ui/components/pods/pods.html +++ b/utils/test/testapi/3rd_party/static/testapi-ui/components/pods/pods.html @@ -63,7 +63,7 @@ - +