diff options
Diffstat (limited to 'jjb')
115 files changed, 10483 insertions, 9136 deletions
diff --git a/jjb/3rd_party_ci/odl-netvirt.yml b/jjb/3rd_party_ci/odl-netvirt.yml index 01017f307..863eb94dd 100644 --- a/jjb/3rd_party_ci/odl-netvirt.yml +++ b/jjb/3rd_party_ci/odl-netvirt.yml @@ -137,6 +137,7 @@ - name: 'functest-netvirt-virtual-suite-master' predefined-parameters: | DEPLOY_SCENARIO=os-odl_l3-nofeature-ha + FUNCTEST_MODE=testcase FUNCTEST_SUITE_NAME=odl_netvirt RC_FILE_PATH=$HOME/cloner-info/overcloudrc node-parameters: true diff --git a/jjb/apex/apex-build.sh b/jjb/apex/apex-build.sh index 23ce81015..cf5999832 100755 --- a/jjb/apex/apex-build.sh +++ b/jjb/apex/apex-build.sh @@ -46,6 +46,12 @@ echo "Cache Directory Contents:" echo "-------------------------" ls -al $CACHE_DIRECTORY +if [[ "$BUILD_ARGS" =~ '--iso' ]]; then + mkdir -p /tmp/apex-iso/ + rm -f /tmp/apex-iso/*.iso + cp -f $BUILD_DIRECTORY/../.build/release/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso /tmp/apex-iso/ +fi + if ! echo $ARTIFACT_VERSION | grep "dev" 1> /dev/null; then echo "Writing opnfv.properties file" # save information regarding artifact into file diff --git a/jjb/apex/apex-deploy.sh b/jjb/apex/apex-deploy.sh index bfed67ea5..b8ae75a1f 100755 --- a/jjb/apex/apex-deploy.sh +++ b/jjb/apex/apex-deploy.sh @@ -10,8 +10,6 @@ echo "Starting the Apex deployment." echo "--------------------------------------------------------" echo -sudo rm -rf /tmp/tmp* - if [ -z "$DEPLOY_SCENARIO" ]; then echo "Deploy scenario not set!" exit 1 @@ -38,7 +36,7 @@ if [[ "$ARTIFACT_VERSION" =~ dev ]]; then DEPLOY_SETTINGS_DIR="${WORKSPACE}/config/deploy" NETWORK_SETTINGS_DIR="${WORKSPACE}/config/network" DEPLOY_CMD="opnfv-deploy --image-dir ${WORKSPACE}/.build" - CLEAN_CMD="${WORKSPACE}/ci/clean.sh" + CLEAN_CMD="opnfv-clean" RESOURCES="${WORKSPACE}/.build/" CONFIG="${WORKSPACE}/build" BASE=$CONFIG diff --git a/jjb/apex/apex-download-artifact.sh b/jjb/apex/apex-download-artifact.sh index a11fb65b8..68baf59da 100755 --- a/jjb/apex/apex-download-artifact.sh +++ b/jjb/apex/apex-download-artifact.sh @@ -39,7 +39,13 @@ else 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+=" opnfv-apex-undercloud-${VERSION_EXTENSION}.noarch.rpm" - RPM_LIST+=" python34-opnfv-apex-${VERSION_EXTENSION}.noarch.rpm" + + # add back legacy support for danube + if [ "$BRANCH" == 'stable/danube' ]; then + RPM_LIST+=" opnfv-apex-common-${VERSION_EXTENSION}.noarch.rpm" + else + RPM_LIST+=" python34-opnfv-apex-${VERSION_EXTENSION}.noarch.rpm" + fi # remove old / install new RPMs if rpm -q opnfv-apex > /dev/null; then diff --git a/jjb/apex/apex-iso-verify.sh b/jjb/apex/apex-iso-verify.sh index f102421f3..4faeb607e 100755 --- a/jjb/apex/apex-iso-verify.sh +++ b/jjb/apex/apex-iso-verify.sh @@ -8,7 +8,14 @@ echo "Starting the Apex iso verify." echo "--------------------------------------------------------" echo -source $BUILD_DIRECTORY/../opnfv.properties +# Must be RPMs/ISO +echo "Downloading latest properties file" + +# get the properties file in order to get info regarding artifacts +curl --fail -s -o opnfv.properties http://$GS_URL/latest.properties + +# source the file so we get OPNFV vars +source opnfv.properties if ! rpm -q virt-install > /dev/null; then sudo yum -y install virt-install @@ -35,9 +42,9 @@ sudo rm -f /var/log/libvirt/qemu/apex-iso-verify-console.log sudo virt-install -n apex-iso-verify -r 4096 --vcpus 4 --os-variant=rhel7 \ --accelerate -v --noautoconsole \ --disk path=/var/lib/libvirt/images/apex-iso-verify.qcow2,size=30,format=qcow2 \ - -l $BUILD_DIRECTORY/release/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso \ + -l /tmp/apex-iso/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso \ --extra-args 'console=ttyS0 console=ttyS0,115200n8 serial inst.ks=file:/iso-verify.ks inst.stage2=hd:LABEL=OPNFV\x20CentOS\x207\x20x86_64:/' \ - --initrd-inject $BUILD_DIRECTORY/../ci/iso-verify.ks \ + --initrd-inject ci/iso-verify.ks \ --serial file,path=/var/log/libvirt/qemu/apex-iso-verify-console.log echo "Waiting for install to finish..." diff --git a/jjb/apex/apex-project-jobs.yml b/jjb/apex/apex-project-jobs.yml index 973ad913a..58072865d 100644 --- a/jjb/apex/apex-project-jobs.yml +++ b/jjb/apex/apex-project-jobs.yml @@ -9,7 +9,11 @@ gs-pathname: '' concurrent-builds: 3 disabled: false - + - euphrates: &euphrates + branch: 'stable/euphrates' + gs-pathname: '/euphrates' + concurrent-builds: 3 + disabled: true - danube: &danube branch: 'stable/danube' gs-pathname: '/danube' @@ -29,7 +33,7 @@ # Required Variables: # stream: branch with - in place of / (eg. stable) # branch: branch (eg. stable) - node: 'apex-build-{stream}' + node: 'apex-build-master' disabled: false @@ -78,7 +82,7 @@ # Required Variables: # stream: branch with - in place of / (eg. stable) # branch: branch (eg. stable) - node: 'apex-virtual-{stream}' + node: 'apex-virtual-master' disabled: false diff --git a/jjb/apex/apex-snapshot-deploy.sh b/jjb/apex/apex-snapshot-deploy.sh index 3eb3cf23a..a93421c8e 100644 --- a/jjb/apex/apex-snapshot-deploy.sh +++ b/jjb/apex/apex-snapshot-deploy.sh @@ -22,7 +22,7 @@ echo echo "Cleaning server" pushd ci > /dev/null -sudo BASE=../build/ LIB=../lib ./clean.sh +sudo opnfv-clean popd > /dev/null echo "Downloading latest snapshot properties file" diff --git a/jjb/apex/apex.yml b/jjb/apex/apex.yml index c71bee1d0..4ec6efbd4 100644 --- a/jjb/apex/apex.yml +++ b/jjb/apex/apex.yml @@ -1,142 +1,198 @@ +--- - project: name: 'apex' project: 'apex' jobs: - - 'apex-verify-{stream}' - - 'apex-verify-gate-{stream}' - - 'apex-verify-unit-tests-{stream}' - - 'apex-runner-cperf-{stream}' - - 'apex-deploy-{platform}-{stream}' - - 'apex-daily-master' - - 'apex-daily-danube' - - 'apex-csit-promote-daily-{stream}' - - 'apex-fdio-promote-daily-{stream}' - - 'apex-{scenario}-baremetal-{scenario_stream}' - - 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' - - 'apex-upload-snapshot' - - 'apex-create-snapshot' - - 'apex-flex-daily-os-nosdn-nofeature-ha-{stream}' + - 'apex-verify-{stream}' + - 'apex-verify-gate-{stream}' + - 'apex-verify-unit-tests-{stream}' + - 'apex-runner-cperf-{stream}' + - 'apex-virtual-{stream}' + - 'apex-deploy-{platform}-{stream}' + - 'apex-daily-{stream}' + - 'apex-csit-promote-daily-{stream}' + - 'apex-fdio-promote-daily-{stream}' + - 'apex-{scenario}-baremetal-{scenario_stream}' + - 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' + - 'apex-upload-snapshot' + - 'apex-create-snapshot' + - 'apex-flex-daily-os-nosdn-nofeature-ha-{stream}' + - 'apex-dovetail-daily-os-nosdn-nofeature-ha-baremetal-danube' # stream: branch with - in place of / (eg. stable-arno) # branch: branch (eg. stable/arno) stream: - - master: &master - branch: 'master' - gs-pathname: '' - build-slave: 'apex-build-master' - virtual-slave: 'apex-virtual-master' - baremetal-slave: 'apex-baremetal-master' - verify-scenario: 'os-odl-nofeature-ha' - scenario_stream: 'master' - - - danube: &danube - branch: 'stable/danube' - gs-pathname: '/danube' - build-slave: 'apex-build-danube' - virtual-slave: 'apex-virtual-danube' - baremetal-slave: 'apex-baremetal-danube' - verify-scenario: 'os-odl_l3-nofeature-ha' - scenario_stream: 'danube' - disabled: true + - master: &master + branch: 'master' + gs-pathname: '' + build-slave: 'apex-build-master' + virtual-slave: 'apex-virtual-master' + baremetal-slave: 'apex-baremetal-master' + verify-scenario: 'os-odl-nofeature-ha' + scenario_stream: 'master' + disable_daily: true + - euphrates: &euphrates + branch: 'stable/euphrates' + gs-pathname: '/euphrates' + build-slave: 'apex-build-master' + virtual-slave: 'apex-virtual-master' + baremetal-slave: 'apex-baremetal-master' + verify-scenario: 'os-odl-nofeature-ha' + scenario_stream: 'euphrates' + disable_daily: false + - danube: &danube + branch: 'stable/danube' + gs-pathname: '/danube' + build-slave: 'apex-build-danube' + virtual-slave: 'apex-virtual-danube' + baremetal-slave: 'apex-baremetal-danube' + verify-scenario: 'os-odl_l3-nofeature-ha' + scenario_stream: 'danube' + disabled: true + disable_daily: true scenario: - - 'os-nosdn-nofeature-noha': - <<: *danube - - 'os-nosdn-nofeature-ha': - <<: *danube - - 'os-nosdn-nofeature-ha-ipv6': - <<: *danube - - 'os-nosdn-ovs-noha': - <<: *danube - - 'os-nosdn-ovs-ha': - <<: *danube - - 'os-nosdn-fdio-noha': - <<: *danube - - 'os-nosdn-fdio-ha': - <<: *danube - - 'os-nosdn-kvm-ha': - <<: *danube - - 'os-nosdn-kvm-noha': - <<: *danube - - 'os-odl_l2-fdio-noha': - <<: *danube - - 'os-odl_l2-fdio-ha': - <<: *danube - - 'os-odl_netvirt-fdio-noha': - <<: *danube - - 'os-odl_l2-sfc-noha': - <<: *danube - - 'os-odl_l3-nofeature-noha': - <<: *danube - - 'os-odl_l3-nofeature-ha': - <<: *danube - - 'os-odl_l3-ovs-noha': - <<: *danube - - 'os-odl_l3-ovs-ha': - <<: *danube - - 'os-odl-bgpvpn-ha': - <<: *danube - - 'os-odl-gluon-noha': - <<: *danube - - 'os-odl_l3-fdio-noha': - <<: *danube - - 'os-odl_l3-fdio-ha': - <<: *danube - - 'os-odl_l3-fdio_dvr-noha': - <<: *danube - - 'os-odl_l3-fdio_dvr-ha': - <<: *danube - - 'os-odl_l3-csit-noha': - <<: *danube - - 'os-onos-nofeature-ha': - <<: *danube - - 'os-ovn-nofeature-noha': - <<: *danube - - 'os-nosdn-nofeature-noha': - <<: *master - - 'os-nosdn-nofeature-ha': - <<: *master - - 'os-odl-nofeature-ha': - <<: *master - - 'os-odl-nofeature-noha': - <<: *master - - 'os-odl-bgpvpn-ha': - <<: *master - - 'os-ovn-nofeature-noha': - <<: *master - - 'os-nosdn-fdio-noha': - <<: *master - - 'os-nosdn-fdio-ha': - <<: *master - - 'os-odl-fdio-noha': - <<: *master - - 'os-odl-fdio-ha': - <<: *master - - 'os-nosdn-bar-ha': - <<: *master - - 'os-nosdn-bar-noha': - <<: *master - - 'os-nosdn-nofeature-ha-ipv6': - <<: *master - - 'os-nosdn-ovs_dpdk-noha': - <<: *master - - 'os-nosdn-ovs_dpdk-ha': - <<: *master - - 'os-nosdn-kvm_ovs_dpdk-noha': - <<: *master - - 'os-nosdn-kvm_ovs_dpdk-ha': - <<: *master - - 'os-odl-sfc-noha': - <<: *master - - 'os-odl-sfc-ha': - <<: *master - - 'os-odl-fdio-dvr-noha': - <<: *master - - 'os-odl-fdio-dvr-ha': - <<: *master + - 'os-nosdn-nofeature-noha': + <<: *danube + - 'os-nosdn-nofeature-ha': + <<: *danube + - 'os-nosdn-nofeature-ha-ipv6': + <<: *danube + - 'os-nosdn-ovs-noha': + <<: *danube + - 'os-nosdn-ovs-ha': + <<: *danube + - 'os-nosdn-fdio-noha': + <<: *danube + - 'os-nosdn-fdio-ha': + <<: *danube + - 'os-nosdn-kvm-ha': + <<: *danube + - 'os-nosdn-kvm-noha': + <<: *danube + - 'os-odl_l2-fdio-noha': + <<: *danube + - 'os-odl_l2-fdio-ha': + <<: *danube + - 'os-odl_netvirt-fdio-noha': + <<: *danube + - 'os-odl_l2-sfc-noha': + <<: *danube + - 'os-odl_l3-nofeature-noha': + <<: *danube + - 'os-odl_l3-nofeature-ha': + <<: *danube + - 'os-odl_l3-ovs-noha': + <<: *danube + - 'os-odl_l3-ovs-ha': + <<: *danube + - 'os-odl-bgpvpn-ha': + <<: *danube + - 'os-odl-gluon-noha': + <<: *danube + - 'os-odl_l3-fdio-noha': + <<: *danube + - 'os-odl_l3-fdio-ha': + <<: *danube + - 'os-odl_l3-fdio_dvr-noha': + <<: *danube + - 'os-odl_l3-fdio_dvr-ha': + <<: *danube + - 'os-odl_l3-csit-noha': + <<: *danube + - 'os-onos-nofeature-ha': + <<: *danube + - 'os-ovn-nofeature-noha': + <<: *danube + - 'os-nosdn-nofeature-noha': + <<: *master + - 'os-nosdn-nofeature-ha': + <<: *master + - 'os-odl-nofeature-ha': + <<: *master + - 'os-odl-nofeature-noha': + <<: *master + - 'os-odl-bgpvpn-ha': + <<: *master + - 'os-ovn-nofeature-noha': + <<: *master + - 'os-nosdn-fdio-noha': + <<: *master + - 'os-nosdn-fdio-ha': + <<: *master + - 'os-odl-fdio-noha': + <<: *master + - 'os-odl-fdio-ha': + <<: *master + - 'os-nosdn-bar-ha': + <<: *master + - 'os-nosdn-bar-noha': + <<: *master + - 'os-nosdn-nofeature-ha-ipv6': + <<: *master + - 'os-nosdn-ovs_dpdk-noha': + <<: *master + - 'os-nosdn-ovs_dpdk-ha': + <<: *master + - 'os-nosdn-kvm_ovs_dpdk-noha': + <<: *master + - 'os-nosdn-kvm_ovs_dpdk-ha': + <<: *master + - 'os-odl-sfc-noha': + <<: *master + - 'os-odl-sfc-ha': + <<: *master + - 'os-odl-fdio_dvr-noha': + <<: *master + - 'os-odl-fdio_dvr-ha': + <<: *master + - 'os-nosdn-nofeature-noha': + <<: *euphrates + - 'os-nosdn-nofeature-ha': + <<: *euphrates + - 'os-odl-nofeature-ha': + <<: *euphrates + - 'os-odl-nofeature-noha': + <<: *euphrates + - 'os-odl-bgpvpn-ha': + <<: *euphrates + - 'os-ovn-nofeature-noha': + <<: *euphrates + - 'os-nosdn-fdio-noha': + <<: *euphrates + - 'os-nosdn-fdio-ha': + <<: *euphrates + - 'os-odl-fdio-noha': + <<: *euphrates + - 'os-odl-fdio-ha': + <<: *euphrates + - 'os-nosdn-bar-ha': + <<: *euphrates + - 'os-nosdn-bar-noha': + <<: *euphrates + - 'os-nosdn-nofeature-ha-ipv6': + <<: *euphrates + - 'os-nosdn-ovs_dpdk-noha': + <<: *euphrates + - 'os-nosdn-ovs_dpdk-ha': + <<: *euphrates + - 'os-nosdn-kvm_ovs_dpdk-noha': + <<: *euphrates + - 'os-nosdn-kvm_ovs_dpdk-ha': + <<: *euphrates + - 'os-odl-sfc-noha': + <<: *euphrates + - 'os-odl-sfc-ha': + <<: *euphrates + - 'os-odl-fdio_dvr-noha': + <<: *euphrates + - 'os-odl-fdio_dvr-ha': + <<: *euphrates + - 'os-nosdn-calipso-noha': + <<: *euphrates platform: - - 'baremetal' - - 'virtual' + - 'baremetal' + - 'virtual' # Unit Test - job-template: @@ -147,75 +203,76 @@ concurrent: true parameters: - - apex-parameter: - gs-pathname: '{gs-pathname}' - - project-parameter: - project: '{project}' - branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' 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: 'true' - - 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: 'apex' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'false' - file-paths: - - compare-type: ANT - pattern: 'apex/tests/**' - forbidden-file-paths: - - compare-type: ANT - pattern: '*' - - compare-type: ANT - pattern: 'apex/*' - - compare-type: ANT - pattern: 'build/**' - - compare-type: ANT - pattern: 'lib/**' - - compare-type: ANT - pattern: 'config/**' - - compare-type: ANT - pattern: 'apex/build/**' - - compare-type: ANT - pattern: 'apex/common/**' - - compare-type: ANT - pattern: 'apex/inventory/**' - - compare-type: ANT - pattern: 'apex/network/**' - - compare-type: ANT - pattern: 'apex/overcloud/**' - - compare-type: ANT - pattern: 'apex/settings/**' - - compare-type: ANT - pattern: 'apex/undercloud/**' - - compare-type: ANT - pattern: 'apex/virtual/**' + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'true' + - 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: 'apex' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + disable-strict-forbidden-file-verification: 'false' + file-paths: + - compare-type: ANT + pattern: 'apex/tests/**' + forbidden-file-paths: + - compare-type: ANT + pattern: '*' + - compare-type: ANT + pattern: 'apex/*' + - compare-type: ANT + pattern: 'build/**' + - compare-type: ANT + pattern: 'lib/**' + - compare-type: ANT + pattern: 'config/**' + - compare-type: ANT + pattern: 'apex/build/**' + - compare-type: ANT + pattern: 'apex/common/**' + - compare-type: ANT + pattern: 'apex/inventory/**' + - compare-type: ANT + pattern: 'apex/network/**' + - compare-type: ANT + pattern: 'apex/overcloud/**' + - compare-type: ANT + pattern: 'apex/settings/**' + - compare-type: ANT + pattern: 'apex/undercloud/**' + - compare-type: ANT + pattern: 'apex/virtual/**' + properties: - - logrotate-default - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' builders: - - shell: - !include-raw-escape: ./apex-unit-test.sh + - shell: + !include-raw-escape: ./apex-unit-test.sh # Verify - job-template: @@ -228,152 +285,130 @@ project-type: 'multijob' parameters: - - apex-parameter: - gs-pathname: '{gs-pathname}/dev' - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: ARTIFACT_VERSION - default: dev - description: "Used for overriding the ARTIFACT_VERSION" + - apex-parameter: + gs-pathname: '{gs-pathname}/dev' + - project-parameter: + project: '{project}' + branch: '{branch}' + - string: + name: ARTIFACT_VERSION + default: dev + description: "Used for overriding the ARTIFACT_VERSION" 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: 'true' - - 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: 'apex' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - file-paths: - - compare-type: ANT - pattern: '*' - - compare-type: ANT - pattern: 'apex/*' - - compare-type: ANT - pattern: 'build/**' - - compare-type: ANT - pattern: 'lib/**' - - compare-type: ANT - pattern: 'config/**' - - compare-type: ANT - pattern: 'apex/build/**' - - compare-type: ANT - pattern: 'apex/common/**' - - compare-type: ANT - pattern: 'apex/inventory/**' - - compare-type: ANT - pattern: 'apex/network/**' - - compare-type: ANT - pattern: 'apex/overcloud/**' - - compare-type: ANT - pattern: 'apex/settings/**' - - compare-type: ANT - pattern: 'apex/undercloud/**' - - compare-type: ANT - pattern: 'apex/virtual/**' - forbidden-file-paths: - - compare-type: ANT - pattern: 'apex/tests/**' - - compare-type: ANT - pattern: 'docs/**' + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'true' + - 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: 'apex' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + disable-strict-forbidden-file-verification: 'true' + file-paths: + - compare-type: ANT + pattern: '*' + - compare-type: ANT + pattern: 'apex/*' + - compare-type: ANT + pattern: 'build/**' + - compare-type: ANT + pattern: 'lib/**' + - compare-type: ANT + pattern: 'config/**' + - compare-type: ANT + pattern: 'apex/build/**' + - compare-type: ANT + pattern: 'apex/common/**' + - compare-type: ANT + pattern: 'apex/inventory/**' + - compare-type: ANT + pattern: 'apex/network/**' + - compare-type: ANT + pattern: 'apex/overcloud/**' + - compare-type: ANT + pattern: 'apex/settings/**' + - compare-type: ANT + pattern: 'apex/undercloud/**' + - compare-type: ANT + pattern: 'apex/virtual/**' + forbidden-file-paths: + - compare-type: ANT + pattern: 'apex/tests/**' + - compare-type: ANT + pattern: 'docs/**' properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - throttle: + max-per-node: 3 + max-total: 10 + option: 'project' builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: basic - condition: SUCCESSFUL - projects: - - name: 'apex-verify-unit-tests-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'apex-build-{stream}' - current-parameters: false - predefined-parameters: | - ARTIFACT_VERSION=$ARTIFACT_VERSION - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - ARTIFACT_VERSION=$ARTIFACT_VERSION - DEPLOY_SCENARIO={verify-scenario} - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: functest-smoke - condition: SUCCESSFUL - projects: - - name: 'functest-apex-virtual-suite-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={verify-scenario} - FUNCTEST_SUITE_NAME=healthcheck - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true - git-revision: false + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: basic + condition: SUCCESSFUL + projects: + - name: 'apex-verify-unit-tests-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: 'apex-build-{stream}' + current-parameters: false + predefined-parameters: | + ARTIFACT_VERSION=$ARTIFACT_VERSION + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'apex-virtual-{stream}' + current-parameters: false + predefined-parameters: | + ARTIFACT_VERSION=$ARTIFACT_VERSION + DEPLOY_SCENARIO={verify-scenario} + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true # Verify Scenario Gate - job-template: @@ -386,100 +421,104 @@ project-type: 'multijob' parameters: - - apex-parameter: - gs-pathname: '{gs-pathname}/dev' - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from parameters macro." - - string: - name: ARTIFACT_VERSION - default: dev - description: "Used for overriding the ARTIFACT_VERSION" + - apex-parameter: + gs-pathname: '{gs-pathname}/dev' + - project-parameter: + project: '{project}' + branch: '{branch}' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: "Used for overriding the GIT URL coming from parameters macro." + - string: + name: ARTIFACT_VERSION + default: dev + description: "Used for overriding the ARTIFACT_VERSION" scm: - - git-scm-gerrit + - git-scm-gerrit triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - comment-added-contains-event: - comment-contains-value: '^Patch Set [0-9]+: Code-Review\+2.*start-gate-scenario:.*' - projects: - - project-compare-type: 'ANT' - project-pattern: 'apex' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'ci/**' - - compare-type: ANT - pattern: 'build/**' - - compare-type: ANT - pattern: 'lib/**' - - compare-type: ANT - pattern: 'config/**' - - compare-type: ANT - pattern: 'apex/**' + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - comment-added-contains-event: + comment-contains-value: '^Patch Set [0-9]+: Code-Review\+2.*start-gate-scenario:.*' + projects: + - project-compare-type: 'ANT' + project-pattern: 'apex' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'ci/**' + - compare-type: ANT + pattern: 'build/**' + - compare-type: ANT + pattern: 'lib/**' + - compare-type: ANT + pattern: 'config/**' + - compare-type: ANT + pattern: 'apex/**' properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-virtual.*' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' builders: - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - ARTIFACT_VERSION=$ARTIFACT_VERSION - DEPLOY_SCENARIO=gate - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - GERRIT_EVENT_COMMENT_TEXT=$GERRIT_EVENT_COMMENT_TEXT - node-parameters: true - 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 - projects: - - name: 'functest-apex-virtual-suite-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - FUNCTEST_SUITE_NAME=healthcheck - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true - git-revision: false + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-virtual-{stream}' + current-parameters: false + predefined-parameters: | + ARTIFACT_VERSION=$ARTIFACT_VERSION + DEPLOY_SCENARIO=gate + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + GERRIT_EVENT_COMMENT_TEXT=$GERRIT_EVENT_COMMENT_TEXT + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + # yamllint disable rule:line-length + - shell: | + echo DEPLOY_SCENARIO=$(echo $GERRIT_EVENT_COMMENT_TEXT | grep start-gate-scenario | grep -Eo 'os-.*') > detected_scenario + # yamllint enable rule:line-length + - inject: + properties-file: detected_scenario + - multijob: + name: functest-smoke + condition: SUCCESSFUL + projects: + - name: 'functest-apex-virtual-suite-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + FUNCTEST_MODE=tier + FUNCTEST_TIER=healthcheck + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true + git-revision: false - job-template: name: 'apex-runner-cperf-{stream}' @@ -491,61 +530,61 @@ disabled: false parameters: - - apex-parameter: - gs-pathname: '{gs-pathname}' - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from parameters macro." + - apex-parameter: + gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: "Used for overriding the GIT URL coming from parameters macro." scm: - - git-scm + - git-scm properties: - - logrotate-default - - build-blocker: - use-build-blocker: false - block-level: 'NODE' - blocking-jobs: - - 'apex-deploy.*' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: false + block-level: 'NODE' + blocking-jobs: + - 'apex-deploy.*' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' builders: - - description-setter: - description: "Deployed on $NODE_NAME" - - multijob: - name: 'Baremetal Deploy' - condition: ALWAYS - projects: - - name: 'apex-deploy-baremetal-{stream}' - node-parameters: false - current-parameters: true - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - OPNFV_CLEAN=yes - DEPLOY_SCENARIO={verify-scenario} - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: CPERF - condition: SUCCESSFUL - projects: - - name: 'cperf-apex-intel-pod2-daily-master' - node-parameters: true - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={verify-scenario} - kill-phase-on: NEVER - abort-all-job: false - git-revision: false + - description-setter: + description: "Deployed on $NODE_NAME" + - multijob: + name: 'Baremetal Deploy' + condition: ALWAYS + projects: + - name: 'apex-deploy-baremetal-{stream}' + node-parameters: false + current-parameters: true + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + OPNFV_CLEAN=yes + DEPLOY_SCENARIO={verify-scenario} + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: CPERF + condition: SUCCESSFUL + projects: + - name: 'cperf-apex-intel-pod2-daily-master' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={verify-scenario} + kill-phase-on: NEVER + abort-all-job: false + git-revision: false # Deploy job - job-template: @@ -558,52 +597,137 @@ disabled: false quiet-period: 30 scm: - - git-scm-gerrit + - git-scm-gerrit wrappers: - - timeout: - timeout: 140 - fail: true + - timeout: + timeout: 140 + fail: true parameters: - - '{project}-{platform}-{stream}-defaults' - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_SCENARIO - default: '{verify-scenario}' - description: "Scenario to deploy with." - - string: - name: OPNFV_CLEAN - default: 'no' - description: "Use yes in lower case to invoke clean. Indicates if the deploy environment should be cleaned before deployment" - + - '{project}-{platform}-{stream}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_SCENARIO + default: '{verify-scenario}' + description: "Scenario to deploy with." + # yamllint disable rule:line-length + - string: + name: OPNFV_CLEAN + default: 'no' + description: "Use yes in lower case to invoke clean. Indicates if the deploy environment should be cleaned before deployment" + + # yamllint enable rule:line-length properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-deploy.*' - - 'functest.*' - - 'yardstick.*' - - 'dovetail.*' - - 'storperf.*' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-deploy.*' + - 'functest.*' + - 'yardstick.*' + - 'dovetail.*' + - 'storperf.*' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' builders: - - description-setter: - description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" - - 'apex-download-artifact' - - 'apex-deploy' - - 'clean-workspace' + - description-setter: + description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - 'apex-download-artifact' + - 'apex-deploy' + - 'clean-workspace' + + +# Virtual Deploy and Test +- job-template: + name: 'apex-virtual-{stream}' + project-type: 'multijob' + + disabled: false + + scm: + - git-scm-gerrit + + parameters: + - '{project}-defaults' + - '{project}-virtual-{stream}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_SCENARIO + default: '{verify-scenario}' + description: "Scenario to deploy with." + - string: + name: ARTIFACT_VERSION + default: dev + description: "Used for overriding the ARTIFACT_VERSION" + + properties: + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-runner.*' + - 'apex-.*-promote.*' + - 'apex-run.*' + - 'apex-virtual-.*' + - 'apex-verify-gate-.*' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' + + builders: + - description-setter: + description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-virtual-{stream}' + current-parameters: false + predefined-parameters: | + ARTIFACT_VERSION=$ARTIFACT_VERSION + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: functest-smoke + condition: SUCCESSFUL + projects: + - name: 'functest-apex-virtual-suite-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + FUNCTEST_SUITE_NAME=healthcheck + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true + git-revision: false # Baremetal Deploy and Test - job-template: @@ -614,69 +738,71 @@ disabled: false scm: - - git-scm + - git-scm parameters: - - '{project}-defaults' - - '{project}-baremetal-{scenario_stream}-defaults' - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - description: "Scenario to deploy with." + - '{project}-defaults' + - '{project}-baremetal-{scenario_stream}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' + description: "Scenario to deploy with." + properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - 'apex-runner.*' - - 'apex-.*-promote.*' - - 'apex-run.*' - - 'apex-.+-baremetal-.+' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-runner.*' + - 'apex-.*-promote.*' + - 'apex-run.*' + - 'apex-.+-baremetal-.+' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' + builders: - - description-setter: - description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" - - multijob: - name: 'Baremetal Deploy' - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-baremetal-{scenario_stream}' - node-parameters: true - current-parameters: true - predefined-parameters: | - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: 'OPNFV Test Suite' - projects: - - name: 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' - node-parameters: true - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - kill-phase-on: NEVER - abort-all-job: true - git-revision: false + - description-setter: + description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - multijob: + name: 'Baremetal Deploy' + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-baremetal-{scenario_stream}' + node-parameters: true + current-parameters: true + predefined-parameters: | + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: 'OPNFV Test Suite' + projects: + - name: 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: NEVER + abort-all-job: true + git-revision: false publishers: - - groovy-postbuild: - script: - !include-raw-escape: ./update-build-result.groovy + - groovy-postbuild: + script: + !include-raw-escape: ./update-build-result.groovy # Baremetal test job - job-template: @@ -687,85 +813,87 @@ disabled: false parameters: - - '{project}-defaults' - - '{project}-baremetal-{scenario_stream}-defaults' - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - description: "Scenario to deploy with." + - '{project}-defaults' + - '{project}-baremetal-{scenario_stream}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' + description: "Scenario to deploy with." + properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - 'apex-runner.*' - - 'apex-.*-promote.*' - - 'apex-run.*' - - 'apex-testsuite-.+-baremetal-.+' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-runner.*' + - 'apex-.*-promote.*' + - 'apex-run.*' + - 'apex-testsuite-.+-baremetal-.+' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' + builders: - - description-setter: - description: "Testing on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" - - multijob: - name: Functest - condition: ALWAYS - projects: - - name: 'functest-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: Yardstick - condition: ALWAYS - projects: - - name: 'yardstick-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: Dovetail - condition: ALWAYS - projects: - - name: 'dovetail-apex-baremetal-proposed_tests-{scenario_stream}' - node-parameters: true - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - kill-phase-on: NEVER - 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 - enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-nosdn-nofeature-ha/" - kill-phase-on: NEVER - abort-all-job: false - git-revision: false + - description-setter: + description: "Testing on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - multijob: + name: Functest + condition: ALWAYS + projects: + - name: 'functest-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: Yardstick + condition: ALWAYS + projects: + - name: 'yardstick-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: Dovetail + condition: ALWAYS + projects: + - name: 'dovetail-apex-baremetal-proposed_tests-{scenario_stream}' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: NEVER + 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 + 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: @@ -776,315 +904,8 @@ # steps: # - shell: 'echo "Tests Passed"' - -# danube Daily -- job-template: - name: 'apex-daily-danube' - - # Job template for daily build - # - # Required Variables: - # stream: branch with - in place of / (eg. stable) - # branch: branch (eg. stable) - project-type: 'multijob' - - node: 'apex-baremetal-danube' - - disabled: false - - scm: - - git-scm - - parameters: - - '{project}-defaults' - - '{project}-baremetal-danube-defaults' - - project-parameter: - project: '{project}' - branch: 'stable/danube' - - apex-parameter: - gs-pathname: '/danube' - - properties: - - logrotate-default - - triggers: - - 'apex-danube' - - builders: - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'apex-build-danube' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: 'Verify and upload ISO' - condition: SUCCESSFUL - projects: - - name: 'apex-verify-iso-danube' - current-parameters: false - predefined-parameters: | - BUILD_DIRECTORY=$WORKSPACE/../apex-build-danube/.build - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: Baremetal Deploy and Test Phase - condition: SUCCESSFUL - projects: - - - name: 'apex-os-nosdn-nofeature-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-nofeature-ha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-nofeature-ha-ipv6-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-ovs-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-ovs-ha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-fdio-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-fdio-ha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-kvm-ha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-kvm-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l2-fdio-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l2-fdio-ha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_netvirt-fdio-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l2-sfc-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l3-nofeature-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l3-nofeature-ha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l3-ovs-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l3-ovs-ha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl-bgpvpn-ha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl-gluon-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l3-fdio-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l3-fdio-ha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l3-fdio_dvr-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l3-fdio_dvr-ha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl_l3-csit-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-onos-nofeature-ha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-ovn-nofeature-noha-baremetal-danube' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - -# master Daily - job-template: - name: 'apex-daily-master' + name: 'apex-daily-{stream}' # Job template for daily build # @@ -1093,255 +914,66 @@ # branch: branch (eg. stable) project-type: 'multijob' - node: 'apex-baremetal-master' + node: '{baremetal-slave}' - disabled: false + disabled: '{obj:disable_daily}' scm: - - git-scm + - git-scm parameters: - - '{project}-defaults' - - '{project}-baremetal-master-defaults' - - project-parameter: - project: '{project}' - branch: 'master' - - apex-parameter: - gs-pathname: '' + - '{project}-defaults' + - '{project}-baremetal-{stream}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' properties: - - logrotate-default + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-daily.*' triggers: - - 'apex-master' + - 'apex-{stream}' builders: - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'apex-build-master' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: 'Verify and upload ISO' - condition: SUCCESSFUL - projects: - - name: 'apex-verify-iso-master' - current-parameters: false - predefined-parameters: | - BUILD_DIRECTORY=$WORKSPACE/../apex-build-master/.build - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: Baremetal Deploy and Test Phase - condition: SUCCESSFUL - projects: - - - name: 'apex-os-nosdn-nofeature-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-nofeature-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl-nofeature-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl-nofeature-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl-bgpvpn-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-ovn-nofeature-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-fdio-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-fdio-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl-fdio-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl-fdio-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-bar-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-bar-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-nofeature-ha-ipv6-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-ovs_dpdk-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-ovs_dpdk-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-kvm_ovs_dpdk-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-nosdn-kvm_ovs_dpdk-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl-sfc-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl-sfc-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl-fdio-dvr-noha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - - name: 'apex-os-odl-fdio-dvr-ha-baremetal-master' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false - - + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: 'apex-build-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: 'Verify and upload ISO' + condition: SUCCESSFUL + projects: + - name: 'apex-verify-iso-{stream}' + current-parameters: false + predefined-parameters: | + BUILD_DIRECTORY=$WORKSPACE/../apex-build-{stream}/.build + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - apex-builder-{stream} # snapshot create - job-template: @@ -1355,8 +987,8 @@ disabled: false builders: - - shell: - !include-raw-escape: ./apex-snapshot-create.sh + - shell: + !include-raw-escape: ./apex-snapshot-create.sh # snapshot upload - job-template: @@ -1370,9 +1002,9 @@ disabled: false builders: - - inject: - properties-content: ARTIFACT_TYPE=snapshot - - 'apex-upload-artifact' + - inject: + properties-content: ARTIFACT_TYPE=snapshot + - 'apex-upload-artifact' # CSIT promote - job-template: @@ -1388,103 +1020,103 @@ disabled: false scm: - - git-scm + - git-scm parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' properties: - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - 'apex-deploy.*' - - 'apex-runner.*' - - 'apex-daily.*' + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-deploy.*' + - 'apex-runner.*' + - 'apex-daily.*' triggers: - - timed: '0 12 * * 0' + - timed: '0 12 * * 0' builders: - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'apex-build-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=os-odl_l3-csit-noha - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - PROMOTE=True - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: functest-smoke - condition: SUCCESSFUL - projects: - - name: 'functest-apex-virtual-suite-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=os-odl_l3-nofeature-noha - FUNCTEST_SUITE_NAME=tempest_smoke_serial - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: create snapshot - condition: SUCCESSFUL - projects: - - name: 'apex-create-snapshot' - current-parameters: false - predefined-parameters: | - SNAP_TYPE=csit - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: upload snapshot - condition: SUCCESSFUL - projects: - - name: 'apex-upload-snapshot' - current-parameters: false - predefined-parameters: | - SNAP_TYPE=csit - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: 'apex-build-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-virtual-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=os-odl_l3-csit-noha + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + PROMOTE=True + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: functest-smoke + condition: SUCCESSFUL + projects: + - name: 'functest-apex-virtual-suite-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=os-odl_l3-nofeature-noha + FUNCTEST_SUITE_NAME=tempest_smoke_serial + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: create snapshot + condition: SUCCESSFUL + projects: + - name: 'apex-create-snapshot' + current-parameters: false + predefined-parameters: | + SNAP_TYPE=csit + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: upload snapshot + condition: SUCCESSFUL + projects: + - name: 'apex-upload-snapshot' + current-parameters: false + predefined-parameters: | + SNAP_TYPE=csit + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false # FDIO promote - job-template: @@ -1500,83 +1132,83 @@ disabled: false scm: - - git-scm + - git-scm parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' properties: - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - 'apex-deploy.*' - - 'apex-runner.*' - - 'apex-daily.*' + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-deploy.*' + - 'apex-runner.*' + - 'apex-daily.*' builders: - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'apex-build-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=os-odl_netvirt-fdio-noha - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - PROMOTE=True - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: create snapshot - condition: SUCCESSFUL - projects: - - name: 'apex-create-snapshot' - current-parameters: false - predefined-parameters: | - SNAP_TYPE=fdio - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: upload snapshot - condition: SUCCESSFUL - projects: - - name: 'apex-upload-snapshot' - current-parameters: false - predefined-parameters: | - SNAP_TYPE=fdio - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: 'apex-build-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-virtual-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=os-odl_netvirt-fdio-noha + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + PROMOTE=True + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: create snapshot + condition: SUCCESSFUL + projects: + - name: 'apex-create-snapshot' + current-parameters: false + predefined-parameters: | + SNAP_TYPE=fdio + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: upload snapshot + condition: SUCCESSFUL + projects: + - name: 'apex-upload-snapshot' + current-parameters: false + predefined-parameters: | + SNAP_TYPE=fdio + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false # Flex job - job-template: @@ -1589,73 +1221,144 @@ node: 'flex-pod2' scm: - - git-scm + - git-scm + triggers: - - 'apex-{stream}' + - 'apex-{stream}' + parameters: - - '{project}-defaults' - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - description: "Scenario to deploy with." - - 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' + - '{project}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + description: "Scenario to deploy with." + - 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' + properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - 'apex-runner.*' - - 'apex-.*-promote.*' - - 'apex-run.*' - - 'apex-.+-baremetal-.+' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-runner.*' + - 'apex-.*-promote.*' + - 'apex-run.*' + - 'apex-.+-baremetal-.+' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' + builders: - - description-setter: - description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" - - multijob: - name: 'Baremetal Deploy' - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-baremetal-{stream}' - node-parameters: true - current-parameters: true - predefined-parameters: | - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: Yardstick - condition: ALWAYS - projects: - - name: 'yardstick-apex-baremetal-daily-{stream}' - node-parameters: true - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - kill-phase-on: NEVER - abort-all-job: false - git-revision: false + - description-setter: + description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - multijob: + name: 'Baremetal Deploy' + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-baremetal-{stream}' + node-parameters: true + current-parameters: true + predefined-parameters: | + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: Yardstick + condition: ALWAYS + projects: + - name: 'yardstick-apex-baremetal-daily-{stream}' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: NEVER + abort-all-job: false + git-revision: false + +# Dovetail Danube test job +- job-template: + name: 'apex-dovetail-daily-os-nosdn-nofeature-ha-baremetal-danube' + + project-type: 'multijob' + + node: 'huawei-pod4' + + disabled: false + + parameters: + - '{project}-defaults' + - project-parameter: + project: '{project}' + branch: 'stable/danube' + - apex-parameter: + gs-pathname: '/danube' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + description: "Scenario to deploy with." + + properties: + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-runner.*' + - 'apex-.*-promote.*' + - 'apex-run.*' + + triggers: + - timed: '' # '0 1 * * *' + + builders: + - description-setter: + description: "Testing on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - multijob: + name: 'Baremetal Deploy' + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-baremetal-danube' + node-parameters: true + current-parameters: true + predefined-parameters: | + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: Dovetail + condition: ALWAYS + projects: + - name: 'dovetail-apex-baremetal-proposed_tests-danube' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: NEVER + abort-all-job: false + git-revision: false ######################## # parameter macros @@ -1663,65 +1366,646 @@ - parameter: name: apex-parameter parameters: - - string: - name: ARTIFACT_NAME - default: 'latest' - description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact" - - string: - name: ARTIFACT_VERSION - default: 'daily' - description: "Artifact version type" - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/.build - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: CACHE_DIRECTORY - default: $HOME/opnfv/apex-cache{gs-pathname} - description: "Directory where the cache to be used during the build is located." - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." - - string: - name: GS_PATHNAME - default: '{gs-pathname}' - description: "Version directory where opnfv artifacts are stored in gs repository" - - string: - name: GS_URL - default: $GS_BASE{gs-pathname} - description: "URL to Google Storage." - - string: - name: PROMOTE - default: 'False' - description: "Flag to know if we should promote/upload snapshot artifacts." + - string: + name: ARTIFACT_NAME + default: 'latest' + description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact" + - string: + name: ARTIFACT_VERSION + default: 'daily' + description: "Artifact version type" + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/.build + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: CACHE_DIRECTORY + default: $HOME/opnfv/apex-cache{gs-pathname} + description: "Directory where the cache to be used during the build is located." + # yamllint disable rule:line-length + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." + # yamllint enable rule:line-length + - string: + name: GS_PATHNAME + default: '{gs-pathname}' + description: "Version directory where opnfv artifacts are stored in gs repository" + - string: + name: GS_URL + default: $GS_BASE{gs-pathname} + description: "URL to Google Storage." + - string: + name: PROMOTE + default: 'False' + description: "Flag to know if we should promote/upload snapshot artifacts." ######################## # builder macros ######################## + +# danube Builder +- builder: + name: apex-builder-danube + builders: + - multijob: + name: Baremetal Deploy and Test Phase + condition: SUCCESSFUL + projects: + - name: 'apex-os-nosdn-nofeature-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-nofeature-ha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-nofeature-ha-ipv6-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-ovs-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-ovs-ha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-fdio-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-fdio-ha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-kvm-ha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-kvm-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l2-fdio-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l2-fdio-ha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_netvirt-fdio-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l2-sfc-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l3-nofeature-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l3-nofeature-ha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l3-ovs-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l3-ovs-ha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-bgpvpn-ha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-gluon-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l3-fdio-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l3-fdio-ha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l3-fdio_dvr-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l3-fdio_dvr-ha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl_l3-csit-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-onos-nofeature-ha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-ovn-nofeature-noha-baremetal-danube' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + +# master Builder +- builder: + name: apex-builder-master + builders: + - multijob: + name: Baremetal Deploy and Test Phase + condition: SUCCESSFUL + projects: + - name: 'apex-os-nosdn-nofeature-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-nofeature-ha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-nofeature-ha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-nofeature-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-bgpvpn-ha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-ovn-nofeature-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-fdio-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-fdio-ha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-fdio-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-fdio-ha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-bar-ha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-bar-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-nofeature-ha-ipv6-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-ovs_dpdk-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-ovs_dpdk-ha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-kvm_ovs_dpdk-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-kvm_ovs_dpdk-ha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-sfc-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-sfc-ha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-fdio_dvr-noha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-fdio_dvr-ha-baremetal-master' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + +# euphrates Builder +- builder: + name: apex-builder-euphrates + builders: + - multijob: + name: Baremetal Deploy and Test Phase + condition: SUCCESSFUL + projects: + - name: 'apex-os-nosdn-nofeature-noha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-nofeature-ha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-nofeature-ha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-nofeature-noha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-bgpvpn-ha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-ovn-nofeature-noha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-fdio-noha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-fdio-ha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-fdio-noha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-fdio-ha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-bar-ha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-bar-noha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-nofeature-ha-ipv6-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-ovs_dpdk-noha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-ovs_dpdk-ha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-kvm_ovs_dpdk-noha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-kvm_ovs_dpdk-ha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-sfc-noha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-sfc-ha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-fdio_dvr-noha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-odl-fdio_dvr-ha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false + - name: 'apex-os-nosdn-calipso-noha-baremetal-euphrates' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false - builder: name: 'apex-unit-test' builders: - - shell: - !include-raw: ./apex-unit-test.sh + - shell: + !include-raw: ./apex-unit-test.sh - builder: name: 'apex-upload-artifact' builders: - - shell: - !include-raw: ./apex-upload-artifact.sh + - shell: + !include-raw: ./apex-upload-artifact.sh - builder: name: 'apex-download-artifact' builders: - - shell: - !include-raw: ./apex-download-artifact.sh + - shell: + !include-raw: ./apex-download-artifact.sh - builder: name: 'apex-deploy' builders: - - shell: - !include-raw: ./apex-deploy.sh + - shell: + !include-raw: ./apex-deploy.sh ####################### # trigger macros @@ -1729,8 +2013,14 @@ - trigger: name: 'apex-master' triggers: - - timed: '0 12 * * *' + - timed: '0 3 1 1 7' + +- trigger: + name: 'apex-euphrates' + triggers: + - timed: '0 12 * * *' + - trigger: name: 'apex-danube' triggers: - - timed: '0 3 1 1 7' + - timed: '0 3 1 1 7' diff --git a/jjb/apex/apex.yml.j2 b/jjb/apex/apex.yml.j2 index 356c718d5..31415499c 100644 --- a/jjb/apex/apex.yml.j2 +++ b/jjb/apex/apex.yml.j2 @@ -1,54 +1,66 @@ +--- - project: name: 'apex' project: 'apex' jobs: - - 'apex-verify-{stream}' - - 'apex-verify-gate-{stream}' - - 'apex-verify-unit-tests-{stream}' - - 'apex-runner-cperf-{stream}' - - 'apex-deploy-{platform}-{stream}' - - 'apex-daily-master' - - 'apex-daily-danube' - - 'apex-csit-promote-daily-{stream}' - - 'apex-fdio-promote-daily-{stream}' - - 'apex-{scenario}-baremetal-{scenario_stream}' - - 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' - - 'apex-upload-snapshot' - - 'apex-create-snapshot' - - 'apex-flex-daily-os-nosdn-nofeature-ha-{stream}' + - 'apex-verify-{stream}' + - 'apex-verify-gate-{stream}' + - 'apex-verify-unit-tests-{stream}' + - 'apex-runner-cperf-{stream}' + - 'apex-virtual-{stream}' + - 'apex-deploy-{platform}-{stream}' + - 'apex-daily-{stream}' + - 'apex-csit-promote-daily-{stream}' + - 'apex-fdio-promote-daily-{stream}' + - 'apex-{scenario}-baremetal-{scenario_stream}' + - 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' + - 'apex-upload-snapshot' + - 'apex-create-snapshot' + - 'apex-flex-daily-os-nosdn-nofeature-ha-{stream}' + - 'apex-dovetail-daily-os-nosdn-nofeature-ha-baremetal-danube' # stream: branch with - in place of / (eg. stable-arno) # branch: branch (eg. stable/arno) stream: - - master: &master - branch: 'master' - gs-pathname: '' - build-slave: 'apex-build-master' - virtual-slave: 'apex-virtual-master' - baremetal-slave: 'apex-baremetal-master' - verify-scenario: 'os-odl-nofeature-ha' - scenario_stream: 'master' - - - danube: &danube - branch: 'stable/danube' - gs-pathname: '/danube' - build-slave: 'apex-build-danube' - virtual-slave: 'apex-virtual-danube' - baremetal-slave: 'apex-baremetal-danube' - verify-scenario: 'os-odl_l3-nofeature-ha' - scenario_stream: 'danube' - disabled: true + - master: &master + branch: 'master' + gs-pathname: '' + build-slave: 'apex-build-master' + virtual-slave: 'apex-virtual-master' + baremetal-slave: 'apex-baremetal-master' + verify-scenario: 'os-odl-nofeature-ha' + scenario_stream: 'master' + disable_daily: true + - euphrates: &euphrates + branch: 'stable/euphrates' + gs-pathname: '/euphrates' + build-slave: 'apex-build-master' + virtual-slave: 'apex-virtual-master' + baremetal-slave: 'apex-baremetal-master' + verify-scenario: 'os-odl-nofeature-ha' + scenario_stream: 'euphrates' + disable_daily: false + - danube: &danube + branch: 'stable/danube' + gs-pathname: '/danube' + build-slave: 'apex-build-danube' + virtual-slave: 'apex-virtual-danube' + baremetal-slave: 'apex-baremetal-danube' + verify-scenario: 'os-odl_l3-nofeature-ha' + scenario_stream: 'danube' + disabled: true + disable_daily: true scenario: - {%- for stream in scenarios %} - {%- for scenario in scenarios[stream] %} - - '{{scenario}}': - <<: *{{stream}} - {%- endfor %} - {%- endfor %} + {%- for stream in scenarios %} + {%- for scenario in scenarios[stream] %} + - '{{scenario}}': + <<: *{{stream}} + {%- endfor %} + {%- endfor %} platform: - - 'baremetal' - - 'virtual' + - 'baremetal' + - 'virtual' # Unit Test - job-template: @@ -59,75 +71,76 @@ concurrent: true parameters: - - apex-parameter: - gs-pathname: '{gs-pathname}' - - project-parameter: - project: '{project}' - branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' 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: 'true' - - 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: 'apex' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'false' - file-paths: - - compare-type: ANT - pattern: 'apex/tests/**' - forbidden-file-paths: - - compare-type: ANT - pattern: '*' - - compare-type: ANT - pattern: 'apex/*' - - compare-type: ANT - pattern: 'build/**' - - compare-type: ANT - pattern: 'lib/**' - - compare-type: ANT - pattern: 'config/**' - - compare-type: ANT - pattern: 'apex/build/**' - - compare-type: ANT - pattern: 'apex/common/**' - - compare-type: ANT - pattern: 'apex/inventory/**' - - compare-type: ANT - pattern: 'apex/network/**' - - compare-type: ANT - pattern: 'apex/overcloud/**' - - compare-type: ANT - pattern: 'apex/settings/**' - - compare-type: ANT - pattern: 'apex/undercloud/**' - - compare-type: ANT - pattern: 'apex/virtual/**' + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'true' + - 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: 'apex' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + disable-strict-forbidden-file-verification: 'false' + file-paths: + - compare-type: ANT + pattern: 'apex/tests/**' + forbidden-file-paths: + - compare-type: ANT + pattern: '*' + - compare-type: ANT + pattern: 'apex/*' + - compare-type: ANT + pattern: 'build/**' + - compare-type: ANT + pattern: 'lib/**' + - compare-type: ANT + pattern: 'config/**' + - compare-type: ANT + pattern: 'apex/build/**' + - compare-type: ANT + pattern: 'apex/common/**' + - compare-type: ANT + pattern: 'apex/inventory/**' + - compare-type: ANT + pattern: 'apex/network/**' + - compare-type: ANT + pattern: 'apex/overcloud/**' + - compare-type: ANT + pattern: 'apex/settings/**' + - compare-type: ANT + pattern: 'apex/undercloud/**' + - compare-type: ANT + pattern: 'apex/virtual/**' + properties: - - logrotate-default - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' builders: - - shell: - !include-raw-escape: ./apex-unit-test.sh + - shell: + !include-raw-escape: ./apex-unit-test.sh # Verify - job-template: @@ -140,152 +153,130 @@ project-type: 'multijob' parameters: - - apex-parameter: - gs-pathname: '{gs-pathname}/dev' - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: ARTIFACT_VERSION - default: dev - description: "Used for overriding the ARTIFACT_VERSION" + - apex-parameter: + gs-pathname: '{gs-pathname}/dev' + - project-parameter: + project: '{project}' + branch: '{branch}' + - string: + name: ARTIFACT_VERSION + default: dev + description: "Used for overriding the ARTIFACT_VERSION" 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: 'true' - - 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: 'apex' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - file-paths: - - compare-type: ANT - pattern: '*' - - compare-type: ANT - pattern: 'apex/*' - - compare-type: ANT - pattern: 'build/**' - - compare-type: ANT - pattern: 'lib/**' - - compare-type: ANT - pattern: 'config/**' - - compare-type: ANT - pattern: 'apex/build/**' - - compare-type: ANT - pattern: 'apex/common/**' - - compare-type: ANT - pattern: 'apex/inventory/**' - - compare-type: ANT - pattern: 'apex/network/**' - - compare-type: ANT - pattern: 'apex/overcloud/**' - - compare-type: ANT - pattern: 'apex/settings/**' - - compare-type: ANT - pattern: 'apex/undercloud/**' - - compare-type: ANT - pattern: 'apex/virtual/**' - forbidden-file-paths: - - compare-type: ANT - pattern: 'apex/tests/**' - - compare-type: ANT - pattern: 'docs/**' + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'true' + - 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: 'apex' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + disable-strict-forbidden-file-verification: 'true' + file-paths: + - compare-type: ANT + pattern: '*' + - compare-type: ANT + pattern: 'apex/*' + - compare-type: ANT + pattern: 'build/**' + - compare-type: ANT + pattern: 'lib/**' + - compare-type: ANT + pattern: 'config/**' + - compare-type: ANT + pattern: 'apex/build/**' + - compare-type: ANT + pattern: 'apex/common/**' + - compare-type: ANT + pattern: 'apex/inventory/**' + - compare-type: ANT + pattern: 'apex/network/**' + - compare-type: ANT + pattern: 'apex/overcloud/**' + - compare-type: ANT + pattern: 'apex/settings/**' + - compare-type: ANT + pattern: 'apex/undercloud/**' + - compare-type: ANT + pattern: 'apex/virtual/**' + forbidden-file-paths: + - compare-type: ANT + pattern: 'apex/tests/**' + - compare-type: ANT + pattern: 'docs/**' properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - throttle: + max-per-node: 3 + max-total: 10 + option: 'project' builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: basic - condition: SUCCESSFUL - projects: - - name: 'apex-verify-unit-tests-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'apex-build-{stream}' - current-parameters: false - predefined-parameters: | - ARTIFACT_VERSION=$ARTIFACT_VERSION - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - ARTIFACT_VERSION=$ARTIFACT_VERSION - DEPLOY_SCENARIO={verify-scenario} - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: functest-smoke - condition: SUCCESSFUL - projects: - - name: 'functest-apex-virtual-suite-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={verify-scenario} - FUNCTEST_SUITE_NAME=healthcheck - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true - git-revision: false + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: basic + condition: SUCCESSFUL + projects: + - name: 'apex-verify-unit-tests-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: 'apex-build-{stream}' + current-parameters: false + predefined-parameters: | + ARTIFACT_VERSION=$ARTIFACT_VERSION + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'apex-virtual-{stream}' + current-parameters: false + predefined-parameters: | + ARTIFACT_VERSION=$ARTIFACT_VERSION + DEPLOY_SCENARIO={verify-scenario} + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true # Verify Scenario Gate - job-template: @@ -298,100 +289,104 @@ project-type: 'multijob' parameters: - - apex-parameter: - gs-pathname: '{gs-pathname}/dev' - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from parameters macro." - - string: - name: ARTIFACT_VERSION - default: dev - description: "Used for overriding the ARTIFACT_VERSION" + - apex-parameter: + gs-pathname: '{gs-pathname}/dev' + - project-parameter: + project: '{project}' + branch: '{branch}' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: "Used for overriding the GIT URL coming from parameters macro." + - string: + name: ARTIFACT_VERSION + default: dev + description: "Used for overriding the ARTIFACT_VERSION" scm: - - git-scm-gerrit + - git-scm-gerrit triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - comment-added-contains-event: - comment-contains-value: '^Patch Set [0-9]+: Code-Review\+2.*start-gate-scenario:.*' - projects: - - project-compare-type: 'ANT' - project-pattern: 'apex' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'ci/**' - - compare-type: ANT - pattern: 'build/**' - - compare-type: ANT - pattern: 'lib/**' - - compare-type: ANT - pattern: 'config/**' - - compare-type: ANT - pattern: 'apex/**' + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - comment-added-contains-event: + comment-contains-value: '^Patch Set [0-9]+: Code-Review\+2.*start-gate-scenario:.*' + projects: + - project-compare-type: 'ANT' + project-pattern: 'apex' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'ci/**' + - compare-type: ANT + pattern: 'build/**' + - compare-type: ANT + pattern: 'lib/**' + - compare-type: ANT + pattern: 'config/**' + - compare-type: ANT + pattern: 'apex/**' properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-virtual.*' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' builders: - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - ARTIFACT_VERSION=$ARTIFACT_VERSION - DEPLOY_SCENARIO=gate - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - GERRIT_EVENT_COMMENT_TEXT=$GERRIT_EVENT_COMMENT_TEXT - node-parameters: true - 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 - projects: - - name: 'functest-apex-virtual-suite-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - FUNCTEST_SUITE_NAME=healthcheck - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true - git-revision: false + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-virtual-{stream}' + current-parameters: false + predefined-parameters: | + ARTIFACT_VERSION=$ARTIFACT_VERSION + DEPLOY_SCENARIO=gate + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + GERRIT_EVENT_COMMENT_TEXT=$GERRIT_EVENT_COMMENT_TEXT + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + # yamllint disable rule:line-length + - shell: | + echo DEPLOY_SCENARIO=$(echo $GERRIT_EVENT_COMMENT_TEXT | grep start-gate-scenario | grep -Eo 'os-.*') > detected_scenario + # yamllint enable rule:line-length + - inject: + properties-file: detected_scenario + - multijob: + name: functest-smoke + condition: SUCCESSFUL + projects: + - name: 'functest-apex-virtual-suite-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + FUNCTEST_MODE=tier + FUNCTEST_TIER=healthcheck + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true + git-revision: false - job-template: name: 'apex-runner-cperf-{stream}' @@ -403,61 +398,61 @@ disabled: false parameters: - - apex-parameter: - gs-pathname: '{gs-pathname}' - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from parameters macro." + - apex-parameter: + gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: "Used for overriding the GIT URL coming from parameters macro." scm: - - git-scm + - git-scm properties: - - logrotate-default - - build-blocker: - use-build-blocker: false - block-level: 'NODE' - blocking-jobs: - - 'apex-deploy.*' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: false + block-level: 'NODE' + blocking-jobs: + - 'apex-deploy.*' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' builders: - - description-setter: - description: "Deployed on $NODE_NAME" - - multijob: - name: 'Baremetal Deploy' - condition: ALWAYS - projects: - - name: 'apex-deploy-baremetal-{stream}' - node-parameters: false - current-parameters: true - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - OPNFV_CLEAN=yes - DEPLOY_SCENARIO={verify-scenario} - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: CPERF - condition: SUCCESSFUL - projects: - - name: 'cperf-apex-intel-pod2-daily-master' - node-parameters: true - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={verify-scenario} - kill-phase-on: NEVER - abort-all-job: false - git-revision: false + - description-setter: + description: "Deployed on $NODE_NAME" + - multijob: + name: 'Baremetal Deploy' + condition: ALWAYS + projects: + - name: 'apex-deploy-baremetal-{stream}' + node-parameters: false + current-parameters: true + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + OPNFV_CLEAN=yes + DEPLOY_SCENARIO={verify-scenario} + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: CPERF + condition: SUCCESSFUL + projects: + - name: 'cperf-apex-intel-pod2-daily-master' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={verify-scenario} + kill-phase-on: NEVER + abort-all-job: false + git-revision: false # Deploy job - job-template: @@ -470,52 +465,137 @@ disabled: false quiet-period: 30 scm: - - git-scm-gerrit + - git-scm-gerrit wrappers: - - timeout: - timeout: 140 - fail: true + - timeout: + timeout: 140 + fail: true parameters: - - '{project}-{platform}-{stream}-defaults' - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_SCENARIO - default: '{verify-scenario}' - description: "Scenario to deploy with." - - string: - name: OPNFV_CLEAN - default: 'no' - description: "Use yes in lower case to invoke clean. Indicates if the deploy environment should be cleaned before deployment" - + - '{project}-{platform}-{stream}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_SCENARIO + default: '{verify-scenario}' + description: "Scenario to deploy with." + # yamllint disable rule:line-length + - string: + name: OPNFV_CLEAN + default: 'no' + description: "Use yes in lower case to invoke clean. Indicates if the deploy environment should be cleaned before deployment" + + # yamllint enable rule:line-length properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-deploy.*' - - 'functest.*' - - 'yardstick.*' - - 'dovetail.*' - - 'storperf.*' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-deploy.*' + - 'functest.*' + - 'yardstick.*' + - 'dovetail.*' + - 'storperf.*' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' builders: - - description-setter: - description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" - - 'apex-download-artifact' - - 'apex-deploy' - - 'clean-workspace' + - description-setter: + description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - 'apex-download-artifact' + - 'apex-deploy' + - 'clean-workspace' + + +# Virtual Deploy and Test +- job-template: + name: 'apex-virtual-{stream}' + + project-type: 'multijob' + + disabled: false + + scm: + - git-scm-gerrit + + parameters: + - '{project}-defaults' + - '{project}-virtual-{stream}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_SCENARIO + default: '{verify-scenario}' + description: "Scenario to deploy with." + - string: + name: ARTIFACT_VERSION + default: dev + description: "Used for overriding the ARTIFACT_VERSION" + + properties: + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-runner.*' + - 'apex-.*-promote.*' + - 'apex-run.*' + - 'apex-virtual-.*' + - 'apex-verify-gate-.*' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' + builders: + - description-setter: + description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-virtual-{stream}' + current-parameters: false + predefined-parameters: | + ARTIFACT_VERSION=$ARTIFACT_VERSION + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: functest-smoke + condition: SUCCESSFUL + projects: + - name: 'functest-apex-virtual-suite-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + FUNCTEST_SUITE_NAME=healthcheck + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true + git-revision: false # Baremetal Deploy and Test - job-template: @@ -526,69 +606,71 @@ disabled: false scm: - - git-scm + - git-scm parameters: - - '{project}-defaults' - - '{project}-baremetal-{scenario_stream}-defaults' - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - description: "Scenario to deploy with." + - '{project}-defaults' + - '{project}-baremetal-{scenario_stream}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' + description: "Scenario to deploy with." + properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - 'apex-runner.*' - - 'apex-.*-promote.*' - - 'apex-run.*' - - 'apex-.+-baremetal-.+' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-runner.*' + - 'apex-.*-promote.*' + - 'apex-run.*' + - 'apex-.+-baremetal-.+' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' + builders: - - description-setter: - description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" - - multijob: - name: 'Baremetal Deploy' - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-baremetal-{scenario_stream}' - node-parameters: true - current-parameters: true - predefined-parameters: | - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: 'OPNFV Test Suite' - projects: - - name: 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' - node-parameters: true - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - kill-phase-on: NEVER - abort-all-job: true - git-revision: false + - description-setter: + description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - multijob: + name: 'Baremetal Deploy' + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-baremetal-{scenario_stream}' + node-parameters: true + current-parameters: true + predefined-parameters: | + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: 'OPNFV Test Suite' + projects: + - name: 'apex-testsuite-{scenario}-baremetal-{scenario_stream}' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: NEVER + abort-all-job: true + git-revision: false publishers: - - groovy-postbuild: - script: - !include-raw-escape: ./update-build-result.groovy + - groovy-postbuild: + script: + !include-raw-escape: ./update-build-result.groovy # Baremetal test job - job-template: @@ -599,85 +681,87 @@ disabled: false parameters: - - '{project}-defaults' - - '{project}-baremetal-{scenario_stream}-defaults' - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - description: "Scenario to deploy with." + - '{project}-defaults' + - '{project}-baremetal-{scenario_stream}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' + description: "Scenario to deploy with." + properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - 'apex-runner.*' - - 'apex-.*-promote.*' - - 'apex-run.*' - - 'apex-testsuite-.+-baremetal-.+' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-runner.*' + - 'apex-.*-promote.*' + - 'apex-run.*' + - 'apex-testsuite-.+-baremetal-.+' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' + builders: - - description-setter: - description: "Testing on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" - - multijob: - name: Functest - condition: ALWAYS - projects: - - name: 'functest-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: Yardstick - condition: ALWAYS - projects: - - name: 'yardstick-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: Dovetail - condition: ALWAYS - projects: - - name: 'dovetail-apex-baremetal-proposed_tests-{scenario_stream}' - node-parameters: true - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - kill-phase-on: NEVER - 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 - enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-nosdn-nofeature-ha/" - kill-phase-on: NEVER - abort-all-job: false - git-revision: false + - description-setter: + description: "Testing on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - multijob: + name: Functest + condition: ALWAYS + projects: + - name: 'functest-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: Yardstick + condition: ALWAYS + projects: + - name: 'yardstick-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: Dovetail + condition: ALWAYS + projects: + - name: 'dovetail-apex-baremetal-proposed_tests-{scenario_stream}' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: NEVER + 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 + 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: @@ -688,10 +772,8 @@ # steps: # - shell: 'echo "Tests Passed"' -{% for stream in scenarios %} -# {{ stream }} Daily - job-template: - name: 'apex-daily-{{ stream }}' + name: 'apex-daily-{stream}' # Job template for daily build # @@ -700,75 +782,66 @@ # branch: branch (eg. stable) project-type: 'multijob' - node: '{{ build_slave[stream] }}' + node: '{baremetal-slave}' - disabled: false + disabled: '{obj:disable_daily}' scm: - - git-scm + - git-scm parameters: - - '{project}-defaults' - - '{project}-baremetal-{{ stream }}-defaults' - - project-parameter: - project: '{project}' - branch: '{{ branch[stream] }}' - - apex-parameter: - gs-pathname: '{{ gspathname[stream] }}' + - '{project}-defaults' + - '{project}-baremetal-{stream}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' properties: - - logrotate-default + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-daily.*' triggers: - - 'apex-{{ stream }}' + - 'apex-{stream}' builders: - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'apex-build-{{ stream }}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: 'Verify and upload ISO' - condition: SUCCESSFUL - projects: - - name: 'apex-verify-iso-{{ stream }}' - current-parameters: false - predefined-parameters: | - BUILD_DIRECTORY=$WORKSPACE/../apex-build-{{ stream }}/.build - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: Baremetal Deploy and Test Phase - condition: SUCCESSFUL - projects: -{% for scenario in scenarios[stream] %} - - name: 'apex-{{ scenario }}-baremetal-{{ stream }}' - node-parameters: false - current-parameters: false - predefined-parameters: | - OPNFV_CLEAN=yes - kill-phase-on: NEVER - abort-all-job: true - git-revision: false -{% endfor %} -{% endfor %} + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: 'apex-build-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: 'Verify and upload ISO' + condition: SUCCESSFUL + projects: + - name: 'apex-verify-iso-{stream}' + current-parameters: false + predefined-parameters: | + BUILD_DIRECTORY=$WORKSPACE/../apex-build-{stream}/.build + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - apex-builder-{stream} # snapshot create - job-template: @@ -782,8 +855,8 @@ disabled: false builders: - - shell: - !include-raw-escape: ./apex-snapshot-create.sh + - shell: + !include-raw-escape: ./apex-snapshot-create.sh # snapshot upload - job-template: @@ -797,9 +870,9 @@ disabled: false builders: - - inject: - properties-content: ARTIFACT_TYPE=snapshot - - 'apex-upload-artifact' + - inject: + properties-content: ARTIFACT_TYPE=snapshot + - 'apex-upload-artifact' # CSIT promote - job-template: @@ -815,103 +888,103 @@ disabled: false scm: - - git-scm + - git-scm parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' properties: - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - 'apex-deploy.*' - - 'apex-runner.*' - - 'apex-daily.*' + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-deploy.*' + - 'apex-runner.*' + - 'apex-daily.*' triggers: - - timed: '0 12 * * 0' + - timed: '0 12 * * 0' builders: - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'apex-build-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=os-odl_l3-csit-noha - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - PROMOTE=True - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: functest-smoke - condition: SUCCESSFUL - projects: - - name: 'functest-apex-virtual-suite-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=os-odl_l3-nofeature-noha - FUNCTEST_SUITE_NAME=tempest_smoke_serial - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: create snapshot - condition: SUCCESSFUL - projects: - - name: 'apex-create-snapshot' - current-parameters: false - predefined-parameters: | - SNAP_TYPE=csit - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: upload snapshot - condition: SUCCESSFUL - projects: - - name: 'apex-upload-snapshot' - current-parameters: false - predefined-parameters: | - SNAP_TYPE=csit - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: 'apex-build-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-virtual-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=os-odl_l3-csit-noha + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + PROMOTE=True + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: functest-smoke + condition: SUCCESSFUL + projects: + - name: 'functest-apex-virtual-suite-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=os-odl_l3-nofeature-noha + FUNCTEST_SUITE_NAME=tempest_smoke_serial + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: create snapshot + condition: SUCCESSFUL + projects: + - name: 'apex-create-snapshot' + current-parameters: false + predefined-parameters: | + SNAP_TYPE=csit + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: upload snapshot + condition: SUCCESSFUL + projects: + - name: 'apex-upload-snapshot' + current-parameters: false + predefined-parameters: | + SNAP_TYPE=csit + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false # FDIO promote - job-template: @@ -927,83 +1000,83 @@ disabled: false scm: - - git-scm + - git-scm parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' properties: - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - 'apex-deploy.*' - - 'apex-runner.*' - - 'apex-daily.*' + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-deploy.*' + - 'apex-runner.*' + - 'apex-daily.*' builders: - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'apex-build-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=os-odl_netvirt-fdio-noha - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - PROMOTE=True - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: create snapshot - condition: SUCCESSFUL - projects: - - name: 'apex-create-snapshot' - current-parameters: false - predefined-parameters: | - SNAP_TYPE=fdio - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: upload snapshot - condition: SUCCESSFUL - projects: - - name: 'apex-upload-snapshot' - current-parameters: false - predefined-parameters: | - SNAP_TYPE=fdio - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: 'apex-build-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + git-revision: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-virtual-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=os-odl_netvirt-fdio-noha + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + PROMOTE=True + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: create snapshot + condition: SUCCESSFUL + projects: + - name: 'apex-create-snapshot' + current-parameters: false + predefined-parameters: | + SNAP_TYPE=fdio + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: upload snapshot + condition: SUCCESSFUL + projects: + - name: 'apex-upload-snapshot' + current-parameters: false + predefined-parameters: | + SNAP_TYPE=fdio + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false # Flex job - job-template: @@ -1016,73 +1089,144 @@ node: 'flex-pod2' scm: - - git-scm + - git-scm + triggers: - - 'apex-{stream}' + - 'apex-{stream}' + parameters: - - '{project}-defaults' - - project-parameter: - project: '{project}' - branch: '{branch}' - - apex-parameter: - gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - description: "Scenario to deploy with." - - 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' + - '{project}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - apex-parameter: + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + description: "Scenario to deploy with." + - 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' + + properties: + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-runner.*' + - 'apex-.*-promote.*' + - 'apex-run.*' + - 'apex-.+-baremetal-.+' + - throttle: + max-per-node: 1 + max-total: 10 + option: 'project' + + builders: + - description-setter: + description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - multijob: + name: 'Baremetal Deploy' + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-baremetal-{stream}' + node-parameters: true + current-parameters: true + predefined-parameters: | + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: Yardstick + condition: ALWAYS + projects: + - name: 'yardstick-apex-baremetal-daily-{stream}' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: NEVER + abort-all-job: false + git-revision: false + +# Dovetail Danube test job +- job-template: + name: 'apex-dovetail-daily-os-nosdn-nofeature-ha-baremetal-danube' + + project-type: 'multijob' + + node: 'huawei-pod4' + + disabled: false + + parameters: + - '{project}-defaults' + - project-parameter: + project: '{project}' + branch: 'stable/danube' + - apex-parameter: + gs-pathname: '/danube' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + description: "Scenario to deploy with." + properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - block-level: 'NODE' - blocking-jobs: - - 'apex-verify.*' - - 'apex-runner.*' - - 'apex-.*-promote.*' - - 'apex-run.*' - - 'apex-.+-baremetal-.+' - - throttle: - max-per-node: 1 - max-total: 10 - option: 'project' + - logrotate-default + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + blocking-jobs: + - 'apex-verify.*' + - 'apex-runner.*' + - 'apex-.*-promote.*' + - 'apex-run.*' + + triggers: + - timed: '' # '0 1 * * *' + builders: - - description-setter: - description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" - - multijob: - name: 'Baremetal Deploy' - condition: SUCCESSFUL - projects: - - name: 'apex-deploy-baremetal-{stream}' - node-parameters: true - current-parameters: true - predefined-parameters: | - OPNFV_CLEAN=yes - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC= - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - kill-phase-on: FAILURE - abort-all-job: true - git-revision: false - - multijob: - name: Yardstick - condition: ALWAYS - projects: - - name: 'yardstick-apex-baremetal-daily-{stream}' - node-parameters: true - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - kill-phase-on: NEVER - abort-all-job: false - git-revision: false + - description-setter: + description: "Testing on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - multijob: + name: 'Baremetal Deploy' + condition: SUCCESSFUL + projects: + - name: 'apex-deploy-baremetal-danube' + node-parameters: true + current-parameters: true + predefined-parameters: | + OPNFV_CLEAN=yes + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC= + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: FAILURE + abort-all-job: true + git-revision: false + - multijob: + name: Dovetail + condition: ALWAYS + projects: + - name: 'dovetail-apex-baremetal-proposed_tests-danube' + node-parameters: true + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + kill-phase-on: NEVER + abort-all-job: false + git-revision: false ######################## # parameter macros @@ -1090,65 +1234,88 @@ - parameter: name: apex-parameter parameters: - - string: - name: ARTIFACT_NAME - default: 'latest' - description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact" - - string: - name: ARTIFACT_VERSION - default: 'daily' - description: "Artifact version type" - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/.build - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: CACHE_DIRECTORY - default: $HOME/opnfv/apex-cache{gs-pathname} - description: "Directory where the cache to be used during the build is located." - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." - - string: - name: GS_PATHNAME - default: '{gs-pathname}' - description: "Version directory where opnfv artifacts are stored in gs repository" - - string: - name: GS_URL - default: $GS_BASE{gs-pathname} - description: "URL to Google Storage." - - string: - name: PROMOTE - default: 'False' - description: "Flag to know if we should promote/upload snapshot artifacts." + - string: + name: ARTIFACT_NAME + default: 'latest' + description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact" + - string: + name: ARTIFACT_VERSION + default: 'daily' + description: "Artifact version type" + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/.build + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: CACHE_DIRECTORY + default: $HOME/opnfv/apex-cache{gs-pathname} + description: "Directory where the cache to be used during the build is located." + # yamllint disable rule:line-length + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." + # yamllint enable rule:line-length + - string: + name: GS_PATHNAME + default: '{gs-pathname}' + description: "Version directory where opnfv artifacts are stored in gs repository" + - string: + name: GS_URL + default: $GS_BASE{gs-pathname} + description: "URL to Google Storage." + - string: + name: PROMOTE + default: 'False' + description: "Flag to know if we should promote/upload snapshot artifacts." ######################## # builder macros ######################## +{% for stream in scenarios %} +# {{ stream }} Builder +- builder: + name: apex-builder-{{ stream }} + builders: + - multijob: + name: Baremetal Deploy and Test Phase + condition: SUCCESSFUL + projects: +{%- for scenario in scenarios[stream] %} + - name: 'apex-{{ scenario }}-baremetal-{{ stream }}' + node-parameters: false + current-parameters: false + predefined-parameters: | + OPNFV_CLEAN=yes + kill-phase-on: NEVER + abort-all-job: true + git-revision: false +{%- endfor %} +{% endfor -%} + - builder: name: 'apex-unit-test' builders: - - shell: - !include-raw: ./apex-unit-test.sh + - shell: + !include-raw: ./apex-unit-test.sh - builder: name: 'apex-upload-artifact' builders: - - shell: - !include-raw: ./apex-upload-artifact.sh + - shell: + !include-raw: ./apex-upload-artifact.sh - builder: name: 'apex-download-artifact' builders: - - shell: - !include-raw: ./apex-download-artifact.sh + - shell: + !include-raw: ./apex-download-artifact.sh - builder: name: 'apex-deploy' builders: - - shell: - !include-raw: ./apex-deploy.sh + - shell: + !include-raw: ./apex-deploy.sh ####################### # trigger macros @@ -1156,9 +1323,15 @@ - trigger: name: 'apex-master' triggers: - - timed: '0 12 * * *' + - timed: '0 3 1 1 7' + +- trigger: + name: 'apex-euphrates' + triggers: + - timed: '0 12 * * *' + - trigger: name: 'apex-danube' triggers: - - timed: '0 3 1 1 7' + - timed: '0 3 1 1 7' diff --git a/jjb/apex/scenarios.yaml.hidden b/jjb/apex/scenarios.yaml.hidden index def4e796a..3b6b48502 100644 --- a/jjb/apex/scenarios.yaml.hidden +++ b/jjb/apex/scenarios.yaml.hidden @@ -18,8 +18,31 @@ master: - 'os-nosdn-kvm_ovs_dpdk-ha' - 'os-odl-sfc-noha' - 'os-odl-sfc-ha' - - 'os-odl-fdio-dvr-noha' - - 'os-odl-fdio-dvr-ha' + - 'os-odl-fdio_dvr-noha' + - 'os-odl-fdio_dvr-ha' +euphrates: + - 'os-nosdn-nofeature-noha' + - 'os-nosdn-nofeature-ha' + - 'os-odl-nofeature-ha' + - 'os-odl-nofeature-noha' + - 'os-odl-bgpvpn-ha' + - 'os-ovn-nofeature-noha' + - 'os-nosdn-fdio-noha' + - 'os-nosdn-fdio-ha' + - 'os-odl-fdio-noha' + - 'os-odl-fdio-ha' + - 'os-nosdn-bar-ha' + - 'os-nosdn-bar-noha' + - 'os-nosdn-nofeature-ha-ipv6' + - 'os-nosdn-ovs_dpdk-noha' + - 'os-nosdn-ovs_dpdk-ha' + - 'os-nosdn-kvm_ovs_dpdk-noha' + - 'os-nosdn-kvm_ovs_dpdk-ha' + - 'os-odl-sfc-noha' + - 'os-odl-sfc-ha' + - 'os-odl-fdio_dvr-noha' + - 'os-odl-fdio_dvr-ha' + - 'os-nosdn-calipso-noha' danube: - 'os-nosdn-nofeature-noha' - 'os-nosdn-nofeature-ha' diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml index 276f68809..1aa9df619 100644 --- a/jjb/armband/armband-ci-jobs.yml +++ b/jjb/armband/armband-ci-jobs.yml @@ -1,65 +1,75 @@ +--- # jenkins job templates for Armband - project: name: 'armband-ci' project: 'armband' -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- + # ------------------------------- + # BRANCH ANCHORS + # ------------------------------- master: &master - stream: master - branch: '{stream}' - gs-pathname: '' - disabled: false + stream: master + branch: '{stream}' + gs-pathname: '' + disabled: false euphrates: &euphrates - stream: euphrates - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# CI POD's -#-------------------------------- -# euphrates -#-------------------------------- + stream: euphrates + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + # ------------------------------- + # DEPLOY TYPE ANCHORS + # ------------------------------- + baremetal: &baremetal + installer: 'fuel' + deploy-type: 'baremetal' + slave-label: 'armband-{deploy-type}' + virtual: &virtual + installer: 'fuel' + deploy-type: 'virtual' + slave-label: 'armband-{deploy-type}' + # ------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ------------------------------- + # CI POD's + # ------------------------------- + # euphrates + # ------------------------------- pod: - - armband-baremetal: - slave-label: armband-baremetal - installer: fuel - <<: *euphrates - - armband-virtual: - slave-label: armband-virtual - installer: fuel - <<: *euphrates -#-------------------------------- -# master -#-------------------------------- - - armband-baremetal: - slave-label: armband-baremetal - installer: fuel - <<: *master - - armband-virtual: - slave-label: armband-virtual - installer: fuel - <<: *master -#-------------------------------- -# scenarios -#-------------------------------- + # yamllint disable rule:key-duplicates + - armband-baremetal: + <<: *baremetal + <<: *euphrates + - armband-virtual: + <<: *virtual + <<: *euphrates + # ------------------------------- + # master + # ------------------------------- + - armband-baremetal: + <<: *baremetal + <<: *master + - armband-virtual: + <<: *virtual + <<: *master + # yamllint enable rule:key-duplicates + # ------------------------------- + # scenarios + # ------------------------------- scenario: - # HA scenarios - - 'os-nosdn-nofeature-ha': - auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' - - 'os-odl-nofeature-ha': - auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' + # HA scenarios + - 'os-nosdn-nofeature-ha': + auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' + - 'os-odl-nofeature-ha': + auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' - # NOHA scenarios - - 'os-nosdn-nofeature-noha': - auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' + # NOHA scenarios + - 'os-nosdn-nofeature-noha': + auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger' jobs: - - '{installer}-{scenario}-{pod}-daily-{stream}' - - '{installer}-deploy-{pod}-daily-{stream}' + - '{installer}-{scenario}-{pod}-daily-{stream}' + - '{installer}-deploy-{pod}-daily-{stream}' ######################## # job templates @@ -72,90 +82,101 @@ concurrent: false properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '{installer}-os-.*?-{pod}-daily-.*' - - 'armband-verify-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '{installer}-os-.*?-{pod}-daily-.*' + - 'armband-verify-.*' + block-level: 'NODE' wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' triggers: - - '{auto-trigger-name}' + - '{auto-trigger-name}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' + - '{slave-label}-defaults': + installer: '{installer}' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' builders: - - trigger-builds: - - project: '{installer}-deploy-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - same-node: true - block: true - - trigger-builds: - - project: 'functest-{installer}-{pod}-arm-daily-{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' - - trigger-builds: - - project: 'yardstick-{installer}-{pod}-daily-{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' - # 1.dovetail only master, based on D release - # 2.here the stream means the SUT stream, dovetail stream is defined in its own job - # 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)-(nofeature-bgpvpn)-ha - - conditional-step: - condition-kind: regex-match - regex: os-(nosdn|odl)-(nofeature|bgpvpn)-ha - label: '{scenario}' - steps: - - trigger-builds: - - project: 'dovetail-{installer}-{pod}-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' + - trigger-builds: + - project: '{installer}-deploy-{pod}-daily-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + same-node: true + block: true + - trigger-builds: + - project: 'functest-{installer}-{pod}-arm-daily-{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' + - trigger-builds: + - project: 'yardstick-{installer}-{pod}-daily-{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' + # 1.dovetail only master, based on D release + # 2.here the stream means the SUT stream, + # dovetail stream is defined in its own job + # 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)-(nofeature-bgpvpn)-ha + - conditional-step: + condition-kind: regex-match + regex: os-(nosdn|odl)-(nofeature|bgpvpn)-ha + label: '{scenario}' + steps: + - trigger-builds: + - project: 'dovetail-{installer}-{pod}-proposed_tests-master' + 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' + # Armband uses Fuel's log collection project job, no need to duplicate + - trigger-builds: + - project: 'fuel-collect-logs-{deploy-type}-daily-{stream}' + current-parameters: false + block: true + same-node: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' - job-template: name: '{installer}-deploy-{pod}-daily-{stream}' @@ -163,108 +184,108 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '{installer}-deploy-{pod}-daily-{stream}' - - '{installer}-deploy-generic-daily-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '{installer}-deploy-{pod}-daily-{stream}' + - '{installer}-deploy-generic-daily-.*' + block-level: 'NODE' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - string: - name: DEPLOY_SCENARIO - default: 'os-odl-nofeature-ha' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' + - '{slave-label}-defaults': + installer: '{installer}' + - string: + name: DEPLOY_SCENARIO + default: 'os-odl-nofeature-ha' scm: - - git-scm + - git-scm wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' builders: - - shell: - !include-raw-escape: ../fuel/fuel-deploy.sh + - shell: + !include-raw-escape: ../fuel/fuel-deploy.sh publishers: - - email: - recipients: armband@enea.com - - email-jenkins-admins-on-failure + - email: + recipients: armband@enea.com + - email-jenkins-admins-on-failure ######################## # trigger macros ######################## # CI PODs -#----------------------------------------------------------------- +# ---------------------------------------------------------------- # Enea Armband CI Baremetal Triggers running against master branch -#----------------------------------------------------------------- +# ---------------------------------------------------------------- - trigger: name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger' triggers: - - timed: '0 1 * * *' + - timed: '0 16 * * 2,4,6' - trigger: name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger' triggers: - - timed: '0 16 * * *' -#---------------------------------------------------------------------- + - timed: '0 16 * * 1,3,5,7' +# --------------------------------------------------------------------- # Enea Armband CI Baremetal Triggers running against euphrates branch -#---------------------------------------------------------------------- +# --------------------------------------------------------------------- - trigger: name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '0 1 * * 2,4,6' - trigger: name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-ha-armband-baremetal-euphrates-trigger' triggers: - - timed: '' -#--------------------------------------------------------------- + - timed: '0 1 * * 1,3,5,7' +# -------------------------------------------------------------- # Enea Armband CI Virtual Triggers running against master branch -#--------------------------------------------------------------- +# -------------------------------------------------------------- - trigger: name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-ha-armband-virtual-master-trigger' triggers: - - timed: '' -#-------------------------------------------------------------------- + - timed: '' +# ------------------------------------------------------------------- # Enea Armband CI Virtual Triggers running against euphrates branch -#-------------------------------------------------------------------- +# ------------------------------------------------------------------- - trigger: name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-ha-armband-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '' diff --git a/jjb/armband/armband-verify-jobs.yml b/jjb/armband/armband-verify-jobs.yml index c43dc7f82..04ade724a 100644 --- a/jjb/armband/armband-verify-jobs.yml +++ b/jjb/armband/armband-verify-jobs.yml @@ -1,37 +1,38 @@ +--- - project: name: 'armband-verify-jobs' project: 'armband' installer: 'fuel' -##################################### -# branch definitions -##################################### + ##################################### + # branch definitions + ##################################### stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - euphrates: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true -##################################### -# patch verification phases -##################################### + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + ##################################### + # patch verification phases + ##################################### phase: - - 'basic': - slave-label: 'armband-virtual' - - 'deploy-virtual': - slave-label: 'armband-virtual' - - 'smoke-test': - slave-label: 'armband-virtual' -##################################### -# jobs -##################################### + - 'basic': + slave-label: 'armband-virtual' + - 'deploy-virtual': + slave-label: 'armband-virtual' + - 'smoke-test': + slave-label: 'armband-virtual' + ##################################### + # jobs + ##################################### jobs: - - 'armband-verify-{stream}' - - 'armband-verify-{phase}-{stream}' + - 'armband-verify-{stream}' + - 'armband-verify-{phase}-{stream}' ##################################### # job templates ##################################### @@ -45,110 +46,110 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-os-.*?-virtual-daily-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-os-.*?-virtual-daily-.*' + block-level: 'NODE' scm: - - git-scm-gerrit + - git-scm-gerrit wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 360 + fail: true triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'ci/**' - - compare-type: ANT - pattern: 'patches/**' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - readable-message: true + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'ci/**' + - compare-type: ANT + pattern: 'patches/**' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**' + readable-message: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'armband-virtual-defaults': - installer: '{installer}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'armband-virtual-defaults': + installer: '{installer}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: basic - condition: SUCCESSFUL - projects: - - name: 'armband-verify-basic-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'armband-verify-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: smoke-test - condition: SUCCESSFUL - projects: - - name: 'armband-verify-smoke-test-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: basic + condition: SUCCESSFUL + projects: + - name: 'armband-verify-basic-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'armband-verify-deploy-virtual-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: smoke-test + condition: SUCCESSFUL + projects: + - name: 'armband-verify-smoke-test-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true - job-template: name: 'armband-verify-{phase}-{stream}' @@ -158,62 +159,63 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 2 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'armband-verify-deploy-.*' - - 'armband-verify-test-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 2 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'armband-verify-deploy-.*' + - 'armband-verify-test-.*' + block-level: 'NODE' scm: - - git-scm-gerrit + - git-scm-gerrit wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 360 + fail: true + parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-defaults' - - 'armband-virtual-defaults': - installer: '{installer}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{slave-label}-defaults' + - 'armband-virtual-defaults': + installer: '{installer}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - '{project}-verify-{phase}-macro' + - description-setter: + description: "Built on $NODE_NAME" + - '{project}-verify-{phase}-macro' ##################################### # builder macros ##################################### - builder: name: 'armband-verify-basic-macro' builders: - - shell: | - #!/bin/bash + - shell: | + #!/bin/bash - echo "Not activated!" + echo "Not activated!" - builder: name: 'armband-verify-deploy-virtual-macro' builders: - - shell: - !include-raw: ../fuel/fuel-deploy.sh + - shell: + !include-raw: ../fuel/fuel-deploy.sh - builder: name: 'armband-verify-smoke-test-macro' builders: - - shell: | - #!/bin/bash + - shell: | + #!/bin/bash - echo "Not activated!" + echo "Not activated!" diff --git a/jjb/availability/availability.yml b/jjb/availability/availability.yml index 12514b666..a8f629734 100644 --- a/jjb/availability/availability.yml +++ b/jjb/availability/availability.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: 'false' - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: 'false' diff --git a/jjb/barometer/barometer.yml b/jjb/barometer/barometer.yml index 8a5bea02e..d29673820 100644 --- a/jjb/barometer/barometer.yml +++ b/jjb/barometer/barometer.yml @@ -18,7 +18,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/bottlenecks/bottlenecks-ci-jobs.yml b/jjb/bottlenecks/bottlenecks-ci-jobs.yml index a8654d0cf..1d31f2775 100644 --- a/jjb/bottlenecks/bottlenecks-ci-jobs.yml +++ b/jjb/bottlenecks/bottlenecks-ci-jobs.yml @@ -19,8 +19,8 @@ gs-packagepath: '/{suite}' # docker tag used for version control docker-tag: 'latest' - danube: &danube - stream: danube + euphrates: &euphrates + stream: euphrates branch: 'stable/{stream}' gs-pathname: '/{stream}' gs-packagepath: '/{stream}/{suite}' @@ -49,12 +49,12 @@ slave-label: compass-baremetal-branch installer: compass auto-trigger-name: 'daily-trigger-disabled' - <<: *danube + <<: *euphrates - virtual: slave-label: compass-virtual-branch installer: compass auto-trigger-name: 'daily-trigger-disabled' - <<: *danube + <<: *euphrates # ------------------------------- # None-CI PODs @@ -63,7 +63,7 @@ # slave-label: '{pod}' # installer: joid # auto-trigger-name: 'daily-trigger-disabled' - # <<: *danube + # <<: *euphrates # - orange-pod2: # slave-label: '{pod}' # installer: joid @@ -89,6 +89,7 @@ - timeout: timeout: 180 abort: true + - fix-workspace-permissions triggers: - '{auto-trigger-name}' @@ -126,6 +127,7 @@ builders: - 'bottlenecks-env-cleanup' - 'bottlenecks-run-suite' + - 'bottlenecks-workspace-cleanup' publishers: - email: @@ -147,6 +149,18 @@ - shell: !include-raw: ./bottlenecks-run-suite.sh +- builder: + name: bottlenecks-workspace-cleanup + builders: + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + + # delete everything that is in $WORKSPACE + sudo rm -rf $WORKSPACE + #################### # parameter macros #################### diff --git a/jjb/bottlenecks/bottlenecks-project-jobs.yml b/jjb/bottlenecks/bottlenecks-project-jobs.yml index c7c9b4208..93b2d913c 100644 --- a/jjb/bottlenecks/bottlenecks-project-jobs.yml +++ b/jjb/bottlenecks/bottlenecks-project-jobs.yml @@ -21,15 +21,13 @@ # This is used for different test suite dependent packages storage gs-packagepath: '/{suite}' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' gs-packagepath: '/{stream}/{suite}' disabled: false suite: - - 'rubbos' - - 'vstf' - 'posca_stress_traffic' - 'posca_stress_ping' @@ -136,7 +134,7 @@ builders: - 'bottlenecks-builder-upload-artifact' - - 'bottlenecks-workspace-cleanup' + - 'bottlenecks-artifact-workspace-cleanup' #################### # parameter macros @@ -182,7 +180,7 @@ done - builder: - name: bottlenecks-workspace-cleanup + name: bottlenecks-artifact-workspace-cleanup builders: - shell: | #!/bin/bash diff --git a/jjb/bottlenecks/bottlenecks-run-suite.sh b/jjb/bottlenecks/bottlenecks-run-suite.sh index 6d4d2d8d1..c34906283 100644 --- a/jjb/bottlenecks/bottlenecks-run-suite.sh +++ b/jjb/bottlenecks/bottlenecks-run-suite.sh @@ -27,6 +27,7 @@ BOTTLENECKS_CONFIG=/tmp if [[ $SUITE_NAME == *posca* ]]; then POSCA_SCRIPT=/home/opnfv/bottlenecks/testsuites/posca + sudo rm -f ${OPENRC} # Preparing OpenStack RC and Cacert files echo "BOTTLENECKS INFO: fetching os credentials from $INSTALLER_TYPE" @@ -71,7 +72,7 @@ if [[ $SUITE_NAME == *posca* ]]; then set +e - sudo pip install virtualenv + sudo -H pip install virtualenv cd ${RELENG_REPO}/modules sudo virtualenv venv @@ -104,6 +105,9 @@ if [[ $SUITE_NAME == *posca* ]]; then deactivate + sudo rm -rf ${RELENG_REPO}/modules/venv + sudo rm -rf ${RELENG_REPO}/modules/opnfv.egg-info + set -e cd ${WORKSPACE} diff --git a/jjb/calipso/calipso.yml b/jjb/calipso/calipso.yml index c5ba8eb1e..2d9ecef03 100644 --- a/jjb/calipso/calipso.yml +++ b/jjb/calipso/calipso.yml @@ -1,15 +1,19 @@ +--- - project: name: calipso project: '{name}' jobs: - - 'calipso-verify-{stream}' + - 'calipso-verify-{stream}' stream: - - master: - branch: '{stream}' - disabled: false + - master: + branch: '{stream}' + disabled: false + - euphrates: + branch: 'stable/{stream}' + disabled: false - job-template: name: 'calipso-verify-{stream}' @@ -17,45 +21,44 @@ disabled: '{obj:disabled}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-defaults' - + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-centos-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}' + - 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}' builders: - - verify-unit-tests + - verify-unit-tests - builder: name: verify-unit-tests builders: - - shell: | - #!/bin/bash - set -o errexit - set -o nounset - set -o pipefail - cd $WORKSPACE - PYTHONPATH=$PWD/app app/test/verify.sh + - shell: | + #!/bin/bash + set -o errexit + set -o nounset + set -o pipefail + cd $WORKSPACE + PYTHONPATH=$PWD/app app/test/verify.sh diff --git a/jjb/ci_gate_security/anteater-report-to-gerrit.sh b/jjb/ci_gate_security/anteater-report-to-gerrit.sh index a749d1db4..51a8ac47b 100644 --- a/jjb/ci_gate_security/anteater-report-to-gerrit.sh +++ b/jjb/ci_gate_security/anteater-report-to-gerrit.sh @@ -6,20 +6,23 @@ EXITSTATUS=0 # This Log should always exist if [[ -e securityaudit.log ]] ; then - echo -e "\nposting security audit report to gerrit...\n" #check if log has errors if grep ERROR securityaudit.log; then EXITSTATUS=1 fi - awk -F"ERROR - " '{print $2}' securityaudit.log | sed -e "s/\"/\\\\\"/g;s/\'/\\\\/g"> shortlog + grep 'ERROR' securityaudit.log | awk -F"ERROR - " '{ print $2 }' | tr -d "\'\"" > shortlog - ssh -p 29418 gerrit.opnfv.org \ - "gerrit review -p $GERRIT_PROJECT \ - -m \"$(cat shortlog)\" \ - $GERRIT_PATCHSET_REVISION \ - --notify NONE" + # Only report to Gerrit when there are errors to report. + if [[ -s shortlog ]]; then + echo -e "\nposting security audit report to gerrit...\n" + ssh -p 29418 gerrit.opnfv.org \ + "gerrit review -p $GERRIT_PROJECT \ + -m \"$(cat shortlog)\" \ + $GERRIT_PATCHSET_REVISION \ + --notify NONE" + fi exit $EXITSTATUS fi diff --git a/jjb/ci_gate_security/anteater-security-audit.sh b/jjb/ci_gate_security/anteater-security-audit.sh index 35f9354e0..8a170b044 100644 --- a/jjb/ci_gate_security/anteater-security-audit.sh +++ b/jjb/ci_gate_security/anteater-security-audit.sh @@ -2,6 +2,8 @@ cd $WORKSPACE REPORTDIR='.reports' mkdir -p $REPORTDIR +# Ensure any user can read the reports directory +chmod 777 $REPORTDIR echo "Generating patchset file to list changed files" git diff HEAD^1 --name-only | sed "s#^#/home/opnfv/anteater/$PROJECT/#" > $WORKSPACE/patchset echo "Changed files are" diff --git a/jjb/ci_gate_security/opnfv-ci-gate-security.yml b/jjb/ci_gate_security/opnfv-ci-gate-security.yml index 33179537c..e09339a4b 100644 --- a/jjb/ci_gate_security/opnfv-ci-gate-security.yml +++ b/jjb/ci_gate_security/opnfv-ci-gate-security.yml @@ -50,7 +50,7 @@ parameters: - label: name: SLAVE_LABEL - default: 'ericsson-build3' + default: 'opnfv-build' description: 'Slave label on Jenkins' - project-parameter: project: $GERRIT_PROJECT diff --git a/jjb/compass4nfv/compass-ci-jobs.yml b/jjb/compass4nfv/compass-ci-jobs.yml index 8b4a74bd1..5100787d7 100644 --- a/jjb/compass4nfv/compass-ci-jobs.yml +++ b/jjb/compass4nfv/compass-ci-jobs.yml @@ -1,3 +1,4 @@ +--- - project: name: compass-ci @@ -7,109 +8,122 @@ project: 'compass4nfv' master: &master - stream: master - branch: '{stream}' - gs-pathname: '' - ppa-pathname: '/{stream}' - disabled: false - openstack-version: ocata + stream: master + branch: '{stream}' + gs-pathname: '' + ppa-pathname: '/{stream}' + disabled: false + openstack-version: ocata + euphrates: &euphrates + stream: euphrates + branch: 'stable/{stream}' + disabled: false + gs-pathname: '/{stream}' + ppa-pathname: '/{stream}' + openstack-version: ocata danube: &danube - stream: danube - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - ppa-pathname: '/{stream}' - disabled: false - openstack-version: newton -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# CI PODs -#-------------------------------- + stream: danube + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + ppa-pathname: '/{stream}' + disabled: false + openstack-version: newton + # ------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ------------------------------- + # CI PODs + # ------------------------------- pod: - - baremetal: - slave-label: compass-baremetal-master - os-version: 'xenial' - <<: *master - - virtual: - slave-label: compass-virtual-master - os-version: 'xenial' - <<: *master - - baremetal: - slave-label: compass-baremetal-branch - os-version: 'xenial' - <<: *danube - - virtual: - slave-label: compass-virtual-branch - os-version: 'xenial' - <<: *danube -#-------------------------------- -# master -#-------------------------------- - - baremetal-centos: - slave-label: 'intel-pod8' - os-version: 'centos7' - <<: *master + - baremetal: + slave-label: compass-baremetal-master + os-version: 'xenial' + <<: *master + - virtual: + slave-label: compass-virtual-master + os-version: 'xenial' + <<: *master + - baremetal: + slave-label: compass-baremetal-branch + os-version: 'xenial' + <<: *euphrates + - virtual: + slave-label: compass-virtual-branch + os-version: 'xenial' + <<: *euphrates + # ------------------------------- + # master + # ------------------------------- + - baremetal-centos: + slave-label: 'intel-pod8' + os-version: 'centos7' + <<: *master + # ------------------------------- + # danube for dovetail + # ------------------------------- + - huawei-pod7: + slave-label: 'huawei-pod7' + os-version: 'xenial' + <<: *danube scenario: - - 'os-nosdn-nofeature-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-odl_l2-nofeature-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-odl_l3-nofeature-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-onos-nofeature-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-ocl-nofeature-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-onos-sfc-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-odl_l2-moon-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-nosdn-kvm-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-nosdn-openo-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-odl-sfc-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-nosdn-dpdk-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'k8-nosdn-nofeature-ha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-nosdn-nofeature-noha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-odl_l3-nofeature-noha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-odl_l2-moon-noha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-nosdn-kvm-noha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-odl-sfc-noha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - - 'os-nosdn-dpdk-noha': - disabled: false - auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' - + - 'os-nosdn-nofeature-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-odl_l2-nofeature-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-odl_l3-nofeature-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-onos-nofeature-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-ocl-nofeature-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-onos-sfc-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-odl_l2-moon-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-nosdn-kvm-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-nosdn-openo-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-odl-sfc-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-nosdn-ovs_dpdk-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'k8-nosdn-nofeature-ha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-nosdn-nofeature-noha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-odl_l3-nofeature-noha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-odl_l2-moon-noha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-nosdn-kvm-noha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-odl-sfc-noha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' + - 'os-nosdn-ovs_dpdk-noha': + disabled: false + auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger' jobs: - - 'compass-{scenario}-{pod}-daily-{stream}' - - 'compass-deploy-{pod}-daily-{stream}' + - 'compass-{scenario}-{pod}-daily-{stream}' + - 'compass-deploy-{pod}-daily-{stream}' ######################## # job templates @@ -122,159 +136,178 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'compass-os-.*?-{pod}-daily-.*?' - - 'compass-os-.*?-baremetal-daily-.*?' - - 'compass-verify-[^-]*-[^-]*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'compass-os-.*?-{pod}-daily-.*?' + - 'compass-os-.*?-baremetal-daily-.*?' + - 'compass-verify-[^-]*-[^-]*' + block-level: 'NODE' wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - fix-workspace-permissions + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - fix-workspace-permissions parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - compass-ci-parameter: - installer: '{installer}' - gs-pathname: '{gs-pathname}' - ppa-pathname: '{ppa-pathname}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - - '{slave-label}-defaults' - - '{installer}-defaults' - - triggers: - - '{auto-trigger-name}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - compass-ci-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' + ppa-pathname: '{ppa-pathname}' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' + - '{slave-label}-defaults' + - '{installer}-defaults' + + triggers: + - '{auto-trigger-name}' builders: - - description-setter: - description: "POD: $NODE_NAME" - - trigger-builds: - - project: 'compass-deploy-{pod}-daily-{stream}' - current-parameters: true - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - COMPASS_OS_VERSION={os-version} - COMPASS_OPENSTACK_VERSION={openstack-version} - same-node: true - block: true - - trigger-builds: - - project: 'functest-compass-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - same-node: true - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - trigger-builds: - - project: 'yardstick-compass-{pod}-daily-{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' - # dovetail only master by now, not sync with A/B/C branches - # here the stream means the SUT stream, dovetail stream is defined in its own job - # only run on os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha scenario - # run against SUT master branch, dovetail docker image with latest tag - # run against SUT danube branch, dovetail docker image with latest tag(odd days)and cvp.X.X.X tag(even days) - - conditional-step: - condition-kind: and - condition-operands: - - condition-kind: regex-match - regex: danube - label: '{stream}' - - condition-kind: regex-match - regex: os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha - label: '{scenario}' - - condition-kind: day-of-week - day-selector: select-days - days: - MON: true - WED: true - FRI: true - SUN: true - use-build-time: true - steps: - - trigger-builds: - - project: 'dovetail-compass-{pod}-proposed_tests-{stream}' - current-parameters: false - predefined-parameters: | - DOCKER_TAG=latest - DEPLOY_SCENARIO={scenario} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - conditional-step: - condition-kind: and - condition-operands: - - condition-kind: regex-match - regex: danube - label: '{stream}' - - condition-kind: regex-match - regex: os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha - label: '{scenario}' - - condition-kind: day-of-week - day-selector: select-days - days: - TUES: true - THURS: true - SAT: true - use-build-time: true - steps: - - trigger-builds: - - project: 'dovetail-compass-{pod}-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' - - conditional-step: - condition-kind: and - condition-operands: - - condition-kind: regex-match - regex: os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha - label: '{scenario}' - - condition-kind: regex-match - regex: master - label: '{stream}' - steps: - - trigger-builds: - - project: 'dovetail-compass-{pod}-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' + - description-setter: + description: "POD: $NODE_NAME" + - trigger-builds: + - project: 'compass-deploy-{pod}-daily-{stream}' + current-parameters: true + predefined-parameters: | + DEPLOY_SCENARIO={scenario} + COMPASS_OS_VERSION={os-version} + COMPASS_OPENSTACK_VERSION={openstack-version} + same-node: true + block: true + - trigger-builds: + - project: 'functest-compass-{pod}-daily-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + same-node: true + block: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' + - trigger-builds: + - project: 'yardstick-compass-{pod}-daily-{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' + # dovetail only master by now, not sync with A/B/C branches + # here the stream means the SUT stream, dovetail stream is defined in its own job + # only run on os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha scenario + # run against SUT master branch, dovetail docker image with latest tag + # run against SUT danube branch, dovetail docker image with latest tag(Monday and Sunday) + # run against SUT danube branch, dovetail docker image with cvp.X.X.X tag(Tuesday, Thursday, Friday and Saturday) + - conditional-step: + condition-kind: and + condition-operands: + - condition-kind: regex-match + regex: danube + label: '{stream}' + - condition-kind: regex-match + regex: os-(nosdn|odl_l2|odl_l3)-nofeature-ha + label: '{scenario}' + - condition-kind: day-of-week + day-selector: select-days + days: + MON: true + SUN: true + use-build-time: true + steps: + - trigger-builds: + - project: 'dovetail-compass-{pod}-proposed_tests-{stream}' + current-parameters: false + predefined-parameters: | + DOCKER_TAG=latest + DEPLOY_SCENARIO={scenario} + block: true + same-node: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' + - conditional-step: + condition-kind: and + condition-operands: + - condition-kind: regex-match + regex: danube + label: '{stream}' + - condition-kind: regex-match + regex: os-(nosdn|odl_l2|odl_l3)-nofeature-ha + label: '{scenario}' + - condition-kind: day-of-week + day-selector: select-days + days: + TUES: true + WED: true + THURS: true + FRI: true + SAT: true + use-build-time: true + steps: + - trigger-builds: + - project: 'dovetail-compass-{pod}-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' + - conditional-step: + condition-kind: and + condition-operands: + - condition-kind: regex-match + regex: os-(nosdn|odl_l2|odl_l3)-nofeature-ha + label: '{scenario}' + - condition-kind: regex-match + regex: master + label: '{stream}' + steps: + - trigger-builds: + - project: 'dovetail-compass-{pod}-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' + - conditional-step: + condition-kind: and + condition-operands: + - condition-kind: regex-match + regex: os-nosdn-nofeature-ha + label: '{scenario}' + steps: + - trigger-builds: + - project: 'bottlenecks-compass-posca_stress_ping-{pod}-daily-{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' - job-template: name: 'compass-deploy-{pod}-daily-{stream}' @@ -284,62 +317,61 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'compass-deploy-{pod}-daily-.*?' - - 'compass-verify-deploy-.*?' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'compass-deploy-{pod}-daily-.*?' + - 'compass-verify-deploy-.*?' + block-level: 'NODE' wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: 240 - abort: true - - fix-workspace-permissions + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: 240 + abort: true + - fix-workspace-permissions parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - compass-ci-parameter: - installer: '{installer}' - gs-pathname: '{gs-pathname}' - ppa-pathname: '{ppa-pathname}' - - '{slave-label}-defaults' - - '{installer}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - compass-ci-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' + ppa-pathname: '{ppa-pathname}' + - '{slave-label}-defaults' + - '{installer}-defaults' scm: - - git-scm + - git-scm builders: - - description-setter: - description: "POD: $NODE_NAME" - - conditional-step: - condition-kind: regex-match - regex: master - label: '{stream}' - steps: - - shell: - !include-raw-escape: ./compass-build.sh - - shell: - !include-raw-escape: ./compass-deploy.sh - - conditional-step: - condition-kind: regex-match - regex: danube - label: '{stream}' - steps: - - shell: - !include-raw-escape: ./compass-download-artifact.sh - - shell: - !include-raw-escape: ./compass-deploy.sh - + - description-setter: + description: "POD: $NODE_NAME" + - conditional-step: + condition-kind: regex-match + regex: master + label: '{stream}' + steps: + - shell: + !include-raw-escape: ./compass-build.sh + - shell: + !include-raw-escape: ./compass-deploy.sh + - conditional-step: + condition-kind: regex-match + regex: (danube|euphrates) + label: '{stream}' + steps: + - shell: + !include-raw-escape: ./compass-download-artifact.sh + - shell: + !include-raw-escape: ./compass-deploy.sh ######################## # parameter macros @@ -347,425 +379,505 @@ - parameter: name: compass-ci-parameter parameters: - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: GS_URL - default: '$GS_BASE{gs-pathname}' - description: "URL to Google Storage." - - string: - name: CACHE_DIRECTORY - default: "$HOME/opnfv/cache/$PROJECT{gs-pathname}" - description: "Directory where the cache to be used during the build is located." - - string: - name: PPA_REPO - default: "http://artifacts.opnfv.org/compass4nfv/package{ppa-pathname}" - - string: - name: PPA_CACHE - default: "$WORKSPACE/work/repo/" + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: GS_URL + default: '$GS_BASE{gs-pathname}' + description: "URL to Google Storage." + - string: + name: CACHE_DIRECTORY + default: "$HOME/opnfv/cache/$PROJECT{gs-pathname}" + description: "Directory where the cache to be used during the build is located." + - string: + name: PPA_REPO + default: "http://artifacts.opnfv.org/compass4nfv/package{ppa-pathname}" + - string: + name: PPA_CACHE + default: "$WORKSPACE/work/repo/" ######################## # trigger macros ######################## -#--------------------------- +# -------------------------- # ha-baremetal-centos-master -#--------------------------- +# -------------------------- - trigger: name: 'compass-os-nosdn-nofeature-ha-baremetal-centos-master-trigger' triggers: - - timed: '0 19 * * *' + - timed: '0 19 * * *' - trigger: name: 'compass-os-nosdn-openo-ha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l2-nofeature-ha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l3-nofeature-ha-baremetal-centos-master-trigger' triggers: - - timed: '0 15 * * *' + - timed: '0 15 * * *' - trigger: name: 'compass-os-onos-nofeature-ha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-ocl-nofeature-ha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-onos-sfc-ha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l2-moon-ha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-nosdn-kvm-ha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: - name: 'compass-os-nosdn-dpdk-ha-baremetal-centos-master-trigger' + name: 'compass-os-nosdn-ovs_dpdk-ha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl-sfc-ha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-k8-nosdn-nofeature-ha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' -#----------------------------- +# ---------------------------- # noha-baremetal-centos-master -#----------------------------- +# ---------------------------- - trigger: name: 'compass-os-nosdn-nofeature-noha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l3-nofeature-noha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l2-moon-noha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-nosdn-kvm-noha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl-sfc-noha-baremetal-centos-master-trigger' triggers: - - timed: '' + - timed: '' +- trigger: + name: 'compass-os-nosdn-ovs_dpdk-noha-baremetal-centos-master-trigger' + triggers: + - timed: '' + +# -------------------------- +# ha-huawei-pod7-danube +# -------------------------- +- trigger: + name: 'compass-os-nosdn-nofeature-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' # '0 19 * * *' +- trigger: + name: 'compass-os-nosdn-openo-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-os-odl_l2-nofeature-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' # '0 21 * * *' +- trigger: + name: 'compass-os-odl_l3-nofeature-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' # '0 15 * * *' +- trigger: + name: 'compass-os-onos-nofeature-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-os-ocl-nofeature-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-os-onos-sfc-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-os-odl_l2-moon-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-os-nosdn-kvm-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-os-nosdn-ovs_dpdk-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-os-odl-sfc-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-k8-nosdn-nofeature-ha-huawei-pod7-danube-trigger' + triggers: + - timed: '' + +# ---------------------------- +# noha-huawei-pod7-danube +# ---------------------------- +- trigger: + name: 'compass-os-nosdn-nofeature-noha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-os-odl_l3-nofeature-noha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-os-odl_l2-moon-noha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-os-nosdn-kvm-noha-huawei-pod7-danube-trigger' + triggers: + - timed: '' +- trigger: + name: 'compass-os-odl-sfc-noha-huawei-pod7-danube-trigger' + triggers: + - timed: '' - trigger: - name: 'compass-os-nosdn-dpdk-noha-baremetal-centos-master-trigger' + name: 'compass-os-nosdn-ovs_dpdk-noha-huawei-pod7-danube-trigger' triggers: - - timed: '' + - timed: '' -#-------------------- +# ------------------- # ha-baremetal-master -#-------------------- +# ------------------- - trigger: name: 'compass-os-nosdn-nofeature-ha-baremetal-master-trigger' triggers: - - timed: '0 20 * * *' + - timed: '0 20 * * *' - trigger: name: 'compass-os-nosdn-openo-ha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l2-nofeature-ha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l3-nofeature-ha-baremetal-master-trigger' triggers: - - timed: '0 18 * * *' + - timed: '0 18 * * *' - trigger: name: 'compass-os-onos-nofeature-ha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-ocl-nofeature-ha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-onos-sfc-ha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l2-moon-ha-baremetal-master-trigger' triggers: - - timed: '0 12 * * *' + - timed: '0 12 * * *' - trigger: name: 'compass-os-nosdn-kvm-ha-baremetal-master-trigger' triggers: - - timed: '0 14 * * *' + - timed: '0 14 * * *' - trigger: - name: 'compass-os-nosdn-dpdk-ha-baremetal-master-trigger' + name: 'compass-os-nosdn-ovs_dpdk-ha-baremetal-master-trigger' triggers: - - timed: '0 16 * * *' + - timed: '0 16 * * *' - trigger: name: 'compass-k8-nosdn-nofeature-ha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl-sfc-ha-baremetal-master-trigger' triggers: - - timed: '0 10 * * *' + - timed: '0 10 * * *' -#---------------------- +# --------------------- # noha-baremetal-master -#---------------------- +# --------------------- - trigger: name: 'compass-os-nosdn-kvm-noha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-nosdn-nofeature-noha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l3-nofeature-noha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l2-moon-noha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl-sfc-noha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: - name: 'compass-os-nosdn-dpdk-noha-baremetal-master-trigger' + name: 'compass-os-nosdn-ovs_dpdk-noha-baremetal-master-trigger' triggers: - - timed: '' + - timed: '' -#-------------------- -# ha-baremetal-danube -#-------------------- +# ------------------- +# ha-baremetal-euphrates +# ------------------- - trigger: - name: 'compass-os-nosdn-nofeature-ha-baremetal-danube-trigger' + name: 'compass-os-nosdn-nofeature-ha-baremetal-euphrates-trigger' triggers: - - timed: '0 9 * * *' + - timed: '0 1 * * *' - trigger: - name: 'compass-os-nosdn-openo-ha-baremetal-danube-trigger' + name: 'compass-os-nosdn-openo-ha-baremetal-euphrates-trigger' triggers: - - timed: '0 13 * * *' + - timed: '' - trigger: - name: 'compass-os-odl_l2-nofeature-ha-baremetal-danube-trigger' + name: 'compass-os-odl_l2-nofeature-ha-baremetal-euphrates-trigger' triggers: - - timed: '0 17 * * *' + - timed: '' - trigger: - name: 'compass-os-odl_l3-nofeature-ha-baremetal-danube-trigger' + name: 'compass-os-odl_l3-nofeature-ha-baremetal-euphrates-trigger' triggers: - - timed: '0 21 * * *' + - timed: '0 21 * * *' - trigger: - name: 'compass-os-onos-nofeature-ha-baremetal-danube-trigger' + name: 'compass-os-onos-nofeature-ha-baremetal-euphrates-trigger' triggers: - - timed: '0 1 * * *' + - timed: '' - trigger: - name: 'compass-os-ocl-nofeature-ha-baremetal-danube-trigger' + name: 'compass-os-ocl-nofeature-ha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: - name: 'compass-os-onos-sfc-ha-baremetal-danube-trigger' + name: 'compass-os-onos-sfc-ha-baremetal-euphrates-trigger' triggers: - - timed: '0 5 * * *' + - timed: '' - trigger: - name: 'compass-os-odl_l2-moon-ha-baremetal-danube-trigger' + name: 'compass-os-odl_l2-moon-ha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '0 5 * * *' - trigger: - name: 'compass-os-nosdn-kvm-ha-baremetal-danube-trigger' + name: 'compass-os-nosdn-kvm-ha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '0 13 * * *' - trigger: - name: 'compass-os-nosdn-dpdk-ha-baremetal-danube-trigger' + name: 'compass-os-nosdn-ovs_dpdk-ha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '0 9 * * *' - trigger: - name: 'compass-k8-nosdn-nofeature-ha-baremetal-danube-trigger' + name: 'compass-k8-nosdn-nofeature-ha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: - name: 'compass-os-odl-sfc-ha-baremetal-danube-trigger' + name: 'compass-os-odl-sfc-ha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '0 17 * * *' -#---------------------- -# noha-baremetal-danube -#---------------------- +# --------------------- +# noha-baremetal-euphrates +# --------------------- - trigger: - name: 'compass-os-nosdn-kvm-noha-baremetal-danube-trigger' + name: 'compass-os-nosdn-kvm-noha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: - name: 'compass-os-nosdn-nofeature-noha-baremetal-danube-trigger' + name: 'compass-os-nosdn-nofeature-noha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: - name: 'compass-os-odl_l3-nofeature-noha-baremetal-danube-trigger' + name: 'compass-os-odl_l3-nofeature-noha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: - name: 'compass-os-odl_l2-moon-noha-baremetal-danube-trigger' + name: 'compass-os-odl_l2-moon-noha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: - name: 'compass-os-odl-sfc-noha-baremetal-danube-trigger' + name: 'compass-os-odl-sfc-noha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: - name: 'compass-os-nosdn-dpdk-noha-baremetal-danube-trigger' + name: 'compass-os-nosdn-ovs_dpdk-noha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '' -#------------------ +# ----------------- # ha-virtual-master -#------------------ +# ----------------- - trigger: name: 'compass-os-nosdn-nofeature-ha-virtual-master-trigger' triggers: - - timed: '0 21 * * *' + - timed: '0 21 * * *' - trigger: name: 'compass-os-nosdn-openo-ha-virtual-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l2-nofeature-ha-virtual-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l3-nofeature-ha-virtual-master-trigger' triggers: - - timed: '0 19 * * *' + - timed: '0 19 * * *' - trigger: name: 'compass-os-onos-nofeature-ha-virtual-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-ocl-nofeature-ha-virtual-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-onos-sfc-ha-virtual-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'compass-os-odl_l2-moon-ha-virtual-master-trigger' triggers: - - timed: '0 12 * * *' + - timed: '30 12 * * *' - trigger: name: 'compass-os-nosdn-kvm-ha-virtual-master-trigger' triggers: - - timed: '0 13 * * *' + - timed: '0 13 * * *' - trigger: - name: 'compass-os-nosdn-dpdk-ha-virtual-master-trigger' + name: 'compass-os-nosdn-ovs_dpdk-ha-virtual-master-trigger' triggers: - - timed: '0 17 * * *' + - timed: '0 17 * * *' - trigger: name: 'compass-k8-nosdn-nofeature-ha-virtual-master-trigger' triggers: - - timed: '' + - timed: '0 12 * * *' - trigger: name: 'compass-os-odl-sfc-ha-virtual-master-trigger' triggers: - - timed: '0 16 * * *' + - timed: '0 16 * * *' -#-------------------- +# ------------------- # noha-virtual-master -#-------------------- +# ------------------- - trigger: name: 'compass-os-nosdn-kvm-noha-virtual-master-trigger' triggers: - - timed: '0 13 * * *' + - timed: '30 13 * * *' - trigger: name: 'compass-os-nosdn-nofeature-noha-virtual-master-trigger' triggers: - - timed: '0 14 * * *' + - timed: '0 14 * * *' - trigger: name: 'compass-os-odl_l3-nofeature-noha-virtual-master-trigger' triggers: - - timed: '0 15 * * *' + - timed: '0 15 * * *' - trigger: name: 'compass-os-odl_l2-moon-noha-virtual-master-trigger' triggers: - - timed: '0 18 * * *' + - timed: '0 18 * * *' - trigger: name: 'compass-os-odl-sfc-noha-virtual-master-trigger' triggers: - - timed: '0 20 * * *' + - timed: '0 20 * * *' - trigger: - name: 'compass-os-nosdn-dpdk-noha-virtual-master-trigger' + name: 'compass-os-nosdn-ovs_dpdk-noha-virtual-master-trigger' triggers: - - timed: '0 11 * * *' + - timed: '0 11 * * *' -#------------------ -# ha-virtual-danube -#------------------ +# ----------------- +# ha-virtual-euphrates +# ----------------- - trigger: - name: 'compass-os-nosdn-nofeature-ha-virtual-danube-trigger' + name: 'compass-os-nosdn-nofeature-ha-virtual-euphrates-trigger' triggers: - - timed: '0 21 * * *' + - timed: '0 23 * * *' - trigger: - name: 'compass-os-nosdn-openo-ha-virtual-danube-trigger' + name: 'compass-os-nosdn-openo-ha-virtual-euphrates-trigger' triggers: - - timed: '0 22 * * *' + - timed: '' - trigger: - name: 'compass-os-odl_l2-nofeature-ha-virtual-danube-trigger' + name: 'compass-os-odl_l2-nofeature-ha-virtual-euphrates-trigger' triggers: - - timed: '0 20 * * *' + - timed: '' - trigger: - name: 'compass-os-odl_l3-nofeature-ha-virtual-danube-trigger' + name: 'compass-os-odl_l3-nofeature-ha-virtual-euphrates-trigger' triggers: - - timed: '0 19 * * *' + - timed: '0 22 * * *' - trigger: - name: 'compass-os-onos-nofeature-ha-virtual-danube-trigger' + name: 'compass-os-onos-nofeature-ha-virtual-euphrates-trigger' triggers: - - timed: '0 18 * * *' + - timed: '' - trigger: - name: 'compass-os-ocl-nofeature-ha-virtual-danube-trigger' + name: 'compass-os-ocl-nofeature-ha-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: - name: 'compass-os-onos-sfc-ha-virtual-danube-trigger' + name: 'compass-os-onos-sfc-ha-virtual-euphrates-trigger' triggers: - - timed: '0 15 * * *' + - timed: '' - trigger: - name: 'compass-os-odl_l2-moon-ha-virtual-danube-trigger' + name: 'compass-os-odl_l2-moon-ha-virtual-euphrates-trigger' triggers: - - timed: '0 14 * * *' + - timed: '0 20 * * *' - trigger: - name: 'compass-os-nosdn-kvm-ha-virtual-danube-trigger' + name: 'compass-os-nosdn-kvm-ha-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '0 16 * * *' - trigger: - name: 'compass-os-nosdn-dpdk-ha-virtual-danube-trigger' + name: 'compass-os-nosdn-ovs_dpdk-ha-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '0 14 * * *' - trigger: - name: 'compass-os-odl-sfc-ha-virtual-danube-trigger' + name: 'compass-os-odl-sfc-ha-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '0 18 * * *' - trigger: - name: 'compass-k8-nosdn-nofeature-ha-virtual-danube-trigger' + name: 'compass-k8-nosdn-nofeature-ha-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '0 13 * * *' -#-------------------- -# noha-virtual-danube -#-------------------- +# ------------------- +# noha-virtual-euphrates +# ------------------- - trigger: - name: 'compass-os-nosdn-kvm-noha-virtual-danube-trigger' + name: 'compass-os-nosdn-kvm-noha-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '0 15 * * *' - trigger: - name: 'compass-os-nosdn-nofeature-noha-virtual-danube-trigger' + name: 'compass-os-nosdn-nofeature-noha-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '0 17 * * *' - trigger: - name: 'compass-os-odl_l3-nofeature-noha-virtual-danube-trigger' + name: 'compass-os-odl_l3-nofeature-noha-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '0 23 * * *' - trigger: - name: 'compass-os-odl_l2-moon-noha-virtual-danube-trigger' + name: 'compass-os-odl_l2-moon-noha-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '0 21 * * *' - trigger: - name: 'compass-os-odl-sfc-noha-virtual-danube-trigger' + name: 'compass-os-odl-sfc-noha-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '0 19 * * *' - trigger: - name: 'compass-os-nosdn-dpdk-noha-virtual-danube-trigger' + name: 'compass-os-nosdn-ovs_dpdk-noha-virtual-euphrates-trigger' triggers: - - timed: '' + - timed: '0 12 * * *' diff --git a/jjb/compass4nfv/compass-deploy.sh b/jjb/compass4nfv/compass-deploy.sh index 9d4ae5175..ad069a57c 100644 --- a/jjb/compass4nfv/compass-deploy.sh +++ b/jjb/compass4nfv/compass-deploy.sh @@ -39,7 +39,7 @@ elif [[ "${DEPLOY_SCENARIO}" =~ "-onos" ]]; then export NETWORK_CONF_FILE=network_onos.yml elif [[ "${DEPLOY_SCENARIO}" =~ "-openo" ]]; then export NETWORK_CONF_FILE=network_openo.yml -elif [[ "${DEPLOY_SCENARIO}" =~ "-dpdk" ]]; then +elif [[ "${DEPLOY_SCENARIO}" =~ "-ovs_dpdk" ]]; then export NETWORK_CONF_FILE=network_dpdk.yml else export NETWORK_CONF_FILE=network.yml diff --git a/jjb/compass4nfv/compass-dovetail-jobs.yml b/jjb/compass4nfv/compass-dovetail-jobs.yml index 101db8241..f0e1c2d3f 100644 --- a/jjb/compass4nfv/compass-dovetail-jobs.yml +++ b/jjb/compass4nfv/compass-dovetail-jobs.yml @@ -1,38 +1,39 @@ +--- - project: name: 'compass-dovetail-jobs' installer: 'compass' project: 'compass4nfv' -#---------------------------------- -# BRANCH ANCHORS -#---------------------------------- + # --------------------------------- + # BRANCH ANCHORS + # --------------------------------- danube: &danube - stream: danube - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - dovetail-branch: master -#------------------------------------ -# POD, INSTALLER, AND BRANCH MAPPING -#------------------------------------ -# CI PODs -#------------------------------------ + stream: danube + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + dovetail-branch: master + # ----------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ----------------------------------- + # CI PODs + # ----------------------------------- pod: - - baremetal: - slave-label: compass-baremetal-branch - os-version: 'xenial' - <<: *danube -#----------------------------------- -# scenarios -#----------------------------------- + - baremetal: + slave-label: compass-baremetal-branch + os-version: 'xenial' + <<: *danube + # ---------------------------------- + # scenarios + # ---------------------------------- scenario: - - 'os-nosdn-nofeature-ha': - disabled: true - auto-trigger-name: 'compass-{scenario}-{pod}-weekly-{stream}-trigger' + - 'os-nosdn-nofeature-ha': + disabled: true + auto-trigger-name: 'compass-{scenario}-{pod}-weekly-{stream}-trigger' jobs: - - 'compass-{scenario}-{pod}-weekly-{stream}' - - 'compass-deploy-{pod}-weekly-{stream}' + - 'compass-{scenario}-{pod}-weekly-{stream}' + - 'compass-deploy-{pod}-weekly-{stream}' ######################## # job templates @@ -45,70 +46,67 @@ concurrent: false properties: - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'compass-os-.*?-{pod}-daily-.*?' - - 'compass-os-.*?-{pod}-weekly-.*?' - block-level: 'NODE' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'compass-os-.*?-{pod}-daily-.*?' + - 'compass-os-.*?-{pod}-weekly-.*?' + block-level: 'NODE' wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - fix-workspace-permissions + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - fix-workspace-permissions triggers: - - '{auto-trigger-name}' + - '{auto-trigger-name}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - compass-dovetail-parameter: - installer: '{installer}' - gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - - '{slave-label}-defaults' - - '{installer}-defaults' - - triggers: - - '{auto-trigger-name}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - compass-dovetail-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' + - '{slave-label}-defaults' + - '{installer}-defaults' builders: - - description-setter: - description: "POD: $NODE_NAME" - - trigger-builds: - - project: 'compass-deploy-{pod}-weekly-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - COMPASS_OS_VERSION={os-version} - same-node: true - block: true - - trigger-builds: - - project: 'dovetail-compass-{pod}-compliance_set-weekly-{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' - - trigger-builds: - - project: 'dovetail-compass-{pod}-proposed_tests-weekly-{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' + - description-setter: + description: "POD: $NODE_NAME" + - trigger-builds: + - project: 'compass-deploy-{pod}-weekly-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO={scenario} + COMPASS_OS_VERSION={os-version} + same-node: true + block: true + - trigger-builds: + - project: 'dovetail-compass-{pod}-compliance_set-weekly-{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' + - trigger-builds: + - project: 'dovetail-compass-{pod}-proposed_tests-weekly-{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' - job-template: name: 'compass-deploy-{pod}-weekly-{stream}' @@ -118,48 +116,48 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'compass-deploy-{pod}-daily-.*?' - - 'compass-deploy-{pod}-weekly-.*' - - 'compass-verify-deploy-.*?' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'compass-deploy-{pod}-daily-.*?' + - 'compass-deploy-{pod}-weekly-.*' + - 'compass-verify-deploy-.*?' + block-level: 'NODE' wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: 240 - abort: true - - fix-workspace-permissions + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: 240 + abort: true + - fix-workspace-permissions parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - compass-dovetail-parameter: - installer: '{installer}' - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults' - - '{installer}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - compass-dovetail-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' + - '{slave-label}-defaults' + - '{installer}-defaults' scm: - - git-scm + - git-scm builders: - - description-setter: - description: "POD: $NODE_NAME" - - shell: - !include-raw-escape: ./compass-download-artifact.sh - - shell: - !include-raw-escape: ./compass-deploy.sh + - description-setter: + description: "POD: $NODE_NAME" + - shell: + !include-raw-escape: ./compass-download-artifact.sh + - shell: + !include-raw-escape: ./compass-deploy.sh ######################## # parameter macros @@ -167,18 +165,18 @@ - parameter: name: compass-dovetail-parameter parameters: - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: GS_URL - default: '$GS_BASE{gs-pathname}' - description: "URL to Google Storage." - - choice: - name: COMPASS_OPENSTACK_VERSION - choices: - - 'newton' + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: GS_URL + default: '$GS_BASE{gs-pathname}' + description: "URL to Google Storage." + - choice: + name: COMPASS_OPENSTACK_VERSION + choices: + - 'newton' ######################## # trigger macros @@ -186,9 +184,9 @@ - trigger: name: 'compass-os-nosdn-nofeature-ha-baremetal-weekly-danube-trigger' triggers: - - timed: 'H H * * 0' + - timed: 'H H * * 0' - trigger: name: 'dovetail-weekly-trigger' triggers: - - timed: 'H H * * 0' + - timed: 'H H * * 0' diff --git a/jjb/compass4nfv/compass-project-jobs.yml b/jjb/compass4nfv/compass-project-jobs.yml index e612ef65f..13830ce1d 100644 --- a/jjb/compass4nfv/compass-project-jobs.yml +++ b/jjb/compass4nfv/compass-project-jobs.yml @@ -1,3 +1,4 @@ +--- - project: name: compass-project @@ -9,20 +10,25 @@ slave-label: 'compass-virtual' stream: - - master: - branch: '{stream}' - gs-pathname: '' - ppa-pathname: '/{stream}' - disabled: false - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - ppa-pathname: '/{stream}' - disabled: false + - master: + branch: '{stream}' + gs-pathname: '' + ppa-pathname: '/{stream}' + disabled: false + - danube: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + ppa-pathname: '/{stream}' + disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + ppa-pathname: '/{stream}' + disabled: false jobs: - - '{installer}-build-daily-{stream}' - - 'compass-build-ppa-{stream}' + - '{installer}-build-daily-{stream}' + - 'compass-build-ppa-{stream}' ######################## # job templates @@ -35,36 +41,36 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 1 - max-per-node: 1 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + option: 'project' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - compass-project-parameter: - installer: '{installer}' - gs-pathname: '{gs-pathname}' - ppa-pathname: '{ppa-pathname}' - - 'opnfv-build-ubuntu-defaults' - - '{installer}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - compass-project-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' + ppa-pathname: '{ppa-pathname}' + - 'opnfv-build-ubuntu-defaults' + - '{installer}-defaults' scm: - - git-scm + - git-scm triggers: - - timed: 'H 8 * * *' + - timed: 'H 8 * * *' builders: - - shell: - !include-raw-escape: ./compass-build.sh - - shell: - !include-raw-escape: ./compass-upload-artifact.sh - - 'clean-workspace' + - shell: + !include-raw-escape: ./compass-build.sh + - shell: + !include-raw-escape: ./compass-upload-artifact.sh + - 'clean-workspace' - job-template: name: 'compass-build-ppa-{stream}' @@ -78,30 +84,29 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 1 - max-per-node: 1 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + option: 'project' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - compass-project-parameter: - installer: '{installer}' - gs-pathname: '{gs-pathname}' - ppa-pathname: '{ppa-pathname}' - - '{node}-defaults' - - '{installer}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - compass-project-parameter: + installer: '{installer}' + gs-pathname: '{gs-pathname}' + ppa-pathname: '{ppa-pathname}' + - '{node}-defaults' + - '{installer}-defaults' scm: - - git-scm + - git-scm builders: - - shell: - !include-raw-escape: ./compass-makeppa.sh - + - shell: + !include-raw-escape: ./compass-makeppa.sh ######################## @@ -110,22 +115,21 @@ - parameter: name: compass-project-parameter parameters: - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: CACHE_DIRECTORY - default: "$HOME/opnfv/cache/$PROJECT{gs-pathname}" - description: "Directory where the cache to be used during the build is located." - - string: - name: GS_URL - default: '$GS_BASE{gs-pathname}' - description: "URL to Google Storage." - - string: - name: PPA_REPO - default: "http://artifacts.opnfv.org/compass4nfv/package{ppa-pathname}" - - string: - name: PPA_CACHE - default: "$WORKSPACE/work/repo/" - + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: CACHE_DIRECTORY + default: "$HOME/opnfv/cache/$PROJECT{gs-pathname}" + description: "Directory where the cache to be used during the build is located." + - string: + name: GS_URL + default: '$GS_BASE{gs-pathname}' + description: "URL to Google Storage." + - string: + name: PPA_REPO + default: "http://artifacts.opnfv.org/compass4nfv/package{ppa-pathname}" + - string: + name: PPA_CACHE + default: "$WORKSPACE/work/repo/" diff --git a/jjb/compass4nfv/compass-verify-jobs.yml b/jjb/compass4nfv/compass-verify-jobs.yml index ee91e02da..6927145c8 100644 --- a/jjb/compass4nfv/compass-verify-jobs.yml +++ b/jjb/compass4nfv/compass-verify-jobs.yml @@ -1,50 +1,51 @@ +--- - project: name: 'compass-verify-jobs' project: 'compass4nfv' installer: 'compass' -##################################### -# branch definitions -##################################### + ##################################### + # branch definitions + ##################################### stream: - - master: - branch: '{stream}' - gs-pathname: '' - ppa-pathname: '/{stream}' - disabled: false - openstack-version: 'ocata' - branch-type: 'master' - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - ppa-pathname: '/{stream}' - disabled: false - openstack-version: 'newton' - branch-type: 'branch' + - master: + branch: '{stream}' + gs-pathname: '' + ppa-pathname: '/{stream}' + disabled: false + openstack-version: 'ocata' + branch-type: 'master' + - danube: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + ppa-pathname: '/{stream}' + disabled: false + openstack-version: 'newton' + branch-type: 'branch' distro: - - 'xenial': - disabled: false - os-version: 'xenial' - openstack-os-version: '' - - 'centos7': - disabled: true - os-version: 'centos7' - openstack-os-version: '' -##################################### -# patch verification phases -##################################### + - 'xenial': + disabled: false + os-version: 'xenial' + openstack-os-version: '' + - 'centos7': + disabled: true + os-version: 'centos7' + openstack-os-version: '' + ##################################### + # patch verification phases + ##################################### phase: - - 'basic' - - 'deploy-virtual' -##################################### -# jobs -##################################### + - 'basic' + - 'deploy-virtual' + ##################################### + # jobs + ##################################### jobs: - - 'compass-verify-{distro}-{stream}' - - 'compass-verify-k8-{distro}-{stream}' - - 'compass-verify-{phase}-{distro}-{stream}' + - 'compass-verify-{distro}-{stream}' + - 'compass-verify-k8-{distro}-{stream}' + - 'compass-verify-{phase}-{distro}-{stream}' ##################################### # job templates ##################################### @@ -58,120 +59,122 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'compass-verify-[^-]*-[^-]*' - - 'compass-os-.*?-virtual-daily-.*?' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'compass-verify-[^-]*-[^-]*' + - 'compass-os-.*?-virtual-daily-.*?' + block-level: 'NODE' wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 240 - fail: true - - fix-workspace-permissions + - ssh-agent-wrapper + - timeout: + timeout: 240 + fail: true + - fix-workspace-permissions 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}' - file-paths: - - compare-type: ANT - pattern: '**/*' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - readable-message: true + - 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: '**/*' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**' + readable-message: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'compass-virtual-{branch-type}-defaults' - - '{installer}-defaults' - - 'compass-verify-defaults': - installer: '{installer}' - gs-pathname: '{gs-pathname}' - ppa-pathname: '{ppa-pathname}' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'compass-virtual-{branch-type}-defaults' + - '{installer}-defaults' + - 'compass-verify-defaults': + installer: '{installer}' + gs-pathname: '{gs-pathname}' + ppa-pathname: '{ppa-pathname}' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: basic - condition: SUCCESSFUL - projects: - - name: 'opnfv-lint-verify-{stream}' - current-parameters: true - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - - name: 'opnfv-yamllint-verify-{stream}' - current-parameters: true - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'compass-verify-deploy-virtual-{distro}-{stream}' - current-parameters: true - predefined-parameters: | - COMPASS_OS_VERSION={os-version} - COMPASS_OPENSTACK_VERSION={openstack-version} - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: smoke-test - condition: SUCCESSFUL - projects: - - name: 'functest-compass-virtual-suite-{stream}' - current-parameters: false - predefined-parameters: | - FUNCTEST_SUITE_NAME=healthcheck - DEPLOY_SCENARIO=os-nosdn-nofeature-ha - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true - - name: 'functest-compass-virtual-suite-{stream}' - current-parameters: false - predefined-parameters: | - FUNCTEST_SUITE_NAME=vping_ssh - DEPLOY_SCENARIO=os-nosdn-nofeature-ha - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: basic + condition: SUCCESSFUL + projects: + - name: 'opnfv-lint-verify-{stream}' + current-parameters: true + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + - name: 'opnfv-yamllint-verify-{stream}' + current-parameters: true + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'compass-verify-deploy-virtual-{distro}-{stream}' + current-parameters: true + predefined-parameters: | + COMPASS_OS_VERSION={os-version} + COMPASS_OPENSTACK_VERSION={openstack-version} + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: smoke-test + condition: SUCCESSFUL + projects: + - name: 'functest-compass-virtual-suite-{stream}' + current-parameters: false + predefined-parameters: | + FUNCTEST_MODE=tier + FUNCTEST_TIER=healthcheck + DEPLOY_SCENARIO=os-nosdn-nofeature-ha + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true + - name: 'functest-compass-virtual-suite-{stream}' + current-parameters: false + predefined-parameters: | + FUNCTEST_MODE=testcase + FUNCTEST_SUITE_NAME=vping_ssh + DEPLOY_SCENARIO=os-nosdn-nofeature-ha + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true - job-template: name: 'compass-verify-k8-{distro}-{stream}' @@ -183,97 +186,97 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'compass-verify-[^-]*-[^-]*' - - 'compass-os-.*?-virtual-daily-.*?' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'compass-verify-[^-]*-[^-]*' + - 'compass-os-.*?-virtual-daily-.*?' + block-level: 'NODE' wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 240 - fail: true - - fix-workspace-permissions + - ssh-agent-wrapper + - timeout: + timeout: 240 + fail: true + - fix-workspace-permissions scm: - - git-scm-gerrit + - git-scm-gerrit triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - comment-added-contains-event: - comment-contains-value: 'check k8' - - comment-added-contains-event: - comment-contains-value: 'verify k8' - - comment-added-contains-event: - comment-contains-value: 'check kubernetes' - - comment-added-contains-event: - comment-contains-value: 'verify kubernetes' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: '**/*' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - readable-message: true + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - comment-added-contains-event: + comment-contains-value: 'check k8' + - comment-added-contains-event: + comment-contains-value: 'verify k8' + - comment-added-contains-event: + comment-contains-value: 'check kubernetes' + - comment-added-contains-event: + comment-contains-value: 'verify kubernetes' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: '**/*' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**' + readable-message: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'compass-virtual-{branch-type}-defaults' - - '{installer}-defaults' - - 'compass-verify-defaults': - installer: '{installer}' - gs-pathname: '{gs-pathname}' - ppa-pathname: '{ppa-pathname}' - - string: - name: DEPLOY_SCENARIO - default: 'k8-nosdn-nofeature-ha' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'compass-virtual-{branch-type}-defaults' + - '{installer}-defaults' + - 'compass-verify-defaults': + installer: '{installer}' + gs-pathname: '{gs-pathname}' + ppa-pathname: '{ppa-pathname}' + - string: + name: DEPLOY_SCENARIO + default: 'k8-nosdn-nofeature-ha' builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: basic - condition: SUCCESSFUL - projects: - - name: 'opnfv-lint-verify-{stream}' - current-parameters: true - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - - name: 'opnfv-yamllint-verify-{stream}' - current-parameters: true - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'compass-verify-deploy-virtual-{distro}-{stream}' - current-parameters: true - predefined-parameters: | - COMPASS_OS_VERSION={os-version} - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: basic + condition: SUCCESSFUL + projects: + - name: 'opnfv-lint-verify-{stream}' + current-parameters: true + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + - name: 'opnfv-yamllint-verify-{stream}' + current-parameters: true + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'compass-verify-deploy-virtual-{distro}-{stream}' + current-parameters: true + predefined-parameters: | + COMPASS_OS_VERSION={os-version} + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true - job-template: name: 'compass-verify-{phase}-{distro}-{stream}' @@ -283,33 +286,33 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'compass-os-.*?-virtual-daily-.*?' - - 'compass-verify-deploy-.*' - - 'functest-compass-virtual.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'compass-os-.*?-virtual-daily-.*?' + - 'compass-verify-deploy-.*' + - 'functest-compass-virtual.*' + block-level: 'NODE' wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 240 - fail: true - - fix-workspace-permissions + - ssh-agent-wrapper + - timeout: + timeout: 240 + fail: true + - fix-workspace-permissions scm: - - git-scm-gerrit + - git-scm-gerrit builders: - - description-setter: - description: "Built on $NODE_NAME" - - '{project}-verify-{phase}-macro' + - description-setter: + description: "Built on $NODE_NAME" + - '{project}-verify-{phase}-macro' ##################################### # builder macros @@ -317,44 +320,44 @@ - builder: name: 'compass4nfv-verify-basic-macro' builders: - - shell: | - #!/bin/bash + - shell: | + #!/bin/bash - echo "Not activated!" + echo "Not activated!" - builder: name: 'compass4nfv-verify-deploy-virtual-macro' builders: - - shell: - !include-raw: ./compass-build.sh - - shell: - !include-raw: ./compass-deploy.sh + - shell: + !include-raw: ./compass-build.sh + - shell: + !include-raw: ./compass-deploy.sh ##################################### # parameter macros ##################################### - parameter: name: 'compass-verify-defaults' parameters: - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: CACHE_DIRECTORY - default: "$HOME/opnfv/cache/$PROJECT{gs-pathname}" - description: "Directory where the cache to be used during the build is located." - - string: - name: GS_URL - default: '$GS_BASE{gs-pathname}' - description: "URL to Google Storage." - - string: - name: PPA_REPO - default: "http://artifacts.opnfv.org/compass4nfv/package{ppa-pathname}" - - string: - name: PPA_CACHE - default: "$WORKSPACE/work/repo/" - - choice: - name: COMPASS_OS_VERSION - choices: - - 'xenial' - - 'centos7' + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: CACHE_DIRECTORY + default: "$HOME/opnfv/cache/$PROJECT{gs-pathname}" + description: "Directory where the cache to be used during the build is located." + - string: + name: GS_URL + default: '$GS_BASE{gs-pathname}' + description: "URL to Google Storage." + - string: + name: PPA_REPO + default: "http://artifacts.opnfv.org/compass4nfv/package{ppa-pathname}" + - string: + name: PPA_CACHE + default: "$WORKSPACE/work/repo/" + - choice: + name: COMPASS_OS_VERSION + choices: + - 'xenial' + - 'centos7' diff --git a/jjb/conductor/conductor.yml b/jjb/conductor/conductor.yml index 593bbf764..3e5e5dedb 100644 --- a/jjb/conductor/conductor.yml +++ b/jjb/conductor/conductor.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/container4nfv/container4nfv-project.yml b/jjb/container4nfv/container4nfv-project.yml index db365cb64..70a3cc5cf 100644 --- a/jjb/container4nfv/container4nfv-project.yml +++ b/jjb/container4nfv/container4nfv-project.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/copper/copper.yml b/jjb/copper/copper.yml index c85725b47..d9ac0b85a 100644 --- a/jjb/copper/copper.yml +++ b/jjb/copper/copper.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/daisy4nfv/daisy-daily-jobs.yml b/jjb/daisy4nfv/daisy-daily-jobs.yml index 9a680e7b8..b3c37b88f 100644 --- a/jjb/daisy4nfv/daisy-daily-jobs.yml +++ b/jjb/daisy4nfv/daisy-daily-jobs.yml @@ -1,3 +1,4 @@ +--- # jenkins job templates for Daisy # TODO # [ ] enable baremetal jobs after baremetal deployment finish @@ -11,47 +12,66 @@ project: '{name}' installer: '{name}' -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- + # ------------------------------- + # BRANCH ANCHORS + # ------------------------------- master: &master - stream: master - branch: '{stream}' - disabled: false - gs-pathname: '' -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# CI PODs -#-------------------------------- + stream: master + branch: '{stream}' + disabled: false + gs-pathname: '' + euphrates: &euphrates + stream: euphrates + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + + # ------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ------------------------------- + # CI PODs + # ------------------------------- pod: - - baremetal: - slave-label: daisy-baremetal - <<: *master - - virtual: - slave-label: daisy-virtual - <<: *master -#-------------------------------- -# None-CI PODs -#-------------------------------- - -#-------------------------------- -# scenarios -#-------------------------------- + # - baremetal: + # slave-label: daisy-baremetal + # <<: *master + - virtual: + slave-label: daisy-virtual + <<: *master + - baremetal: + slave-label: daisy-baremetal + <<: *euphrates + - virtual: + slave-label: daisy-virtual + <<: *euphrates + # ------------------------------- + # None-CI PODs + # ------------------------------- + - baremetal: + slave-label: zte-pod3 + <<: *master + + # ------------------------------- + # None-CI PODs + # ------------------------------- + + # ------------------------------- + # scenarios + # ------------------------------- scenario: - # HA scenarios - - 'os-nosdn-nofeature-ha': - auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger' - # NOHA scenarios - - 'os-nosdn-nofeature-noha': - auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger' - # ODL_L3 scenarios - - 'os-odl-nofeature-ha': - auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger' + # HA scenarios + - 'os-nosdn-nofeature-ha': + auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger' + # NOHA scenarios + - 'os-nosdn-nofeature-noha': + auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger' + # ODL_L3 scenarios + - 'os-odl-nofeature-ha': + auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger' jobs: - - '{project}-{scenario}-{pod}-daily-{stream}' - - '{project}-deploy-{pod}-daily-{stream}' + - '{project}-{scenario}-{pod}-daily-{stream}' + - '{project}-deploy-{pod}-daily-{stream}' ######################## # job templates @@ -64,59 +84,59 @@ concurrent: false properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'daisy-daily-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'daisy-daily-.*' + block-level: 'NODE' wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' triggers: - - '{auto-trigger-name}' + - '{auto-trigger-name}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults': - installer: '{installer}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - - 'daisy-project-parameter': - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults': + installer: '{installer}' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' + - 'daisy-project-parameter': + gs-pathname: '{gs-pathname}' builders: - - description-setter: - description: "POD: $NODE_NAME" - - trigger-builds: - - project: 'daisy-deploy-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - same-node: true - block: true - - trigger-builds: - - project: 'functest-daisy-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - same-node: true - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' + - description-setter: + description: "POD: $NODE_NAME" + - trigger-builds: + - project: 'daisy-deploy-{pod}-daily-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + same-node: true + block: true + - trigger-builds: + - project: 'functest-daisy-{pod}-daily-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + same-node: true + block: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' - job-template: name: '{project}-deploy-{pod}-daily-{stream}' @@ -126,87 +146,125 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'daisy.*-deploy-({pod})?-daily-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'daisy.*-deploy-({pod})?-daily-.*' + block-level: 'NODE' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults': - installer: '{installer}' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - - 'daisy-project-parameter': - gs-pathname: '{gs-pathname}' - - string: - name: DEPLOY_TIMEOUT - default: '150' - description: 'Deployment timeout in minutes' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults': + installer: '{installer}' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + - 'daisy-project-parameter': + gs-pathname: '{gs-pathname}' + - string: + name: DEPLOY_TIMEOUT + default: '150' + description: 'Deployment timeout in minutes' scm: - - git-scm + - git-scm wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' builders: - - description-setter: - description: "POD: $NODE_NAME" - - shell: - !include-raw-escape: ./daisy4nfv-download-artifact.sh - - shell: - !include-raw-escape: ./daisy-deploy.sh - + - description-setter: + description: "POD: $NODE_NAME" + - shell: + !include-raw-escape: ./daisy4nfv-download-artifact.sh + - shell: + !include-raw-escape: ./daisy-deploy.sh ######################## # trigger macros ######################## -#----------------------------------------------- +# ---------------------------------------------- # Triggers for job running on daisy-baremetal against master branch -#----------------------------------------------- +# ---------------------------------------------- # Basic HA Scenarios - trigger: name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-master-trigger' triggers: - - timed: '0 16 * * *' + - timed: '0 16 * * *' # Basic NOHA Scenarios - trigger: name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-master-trigger' triggers: - - timed: '' + - timed: '' # ODL Scenarios - trigger: name: 'daisy-os-odl-nofeature-ha-baremetal-daily-master-trigger' triggers: - - timed: '0 12 * * *' -#----------------------------------------------- + - timed: '0 12 * * *' + +# ---------------------------------------------- # Triggers for job running on daisy-virtual against master branch -#----------------------------------------------- +# ---------------------------------------------- # Basic HA Scenarios - trigger: name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-master-trigger' triggers: - - timed: '0 16 * * *' + - timed: '0 16 * * *' # Basic NOHA Scenarios - trigger: name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-master-trigger' triggers: - - timed: '' + - timed: '' # ODL Scenarios - trigger: name: 'daisy-os-odl-nofeature-ha-virtual-daily-master-trigger' triggers: - - timed: '0 12 * * *' + - timed: '0 12 * * *' + +# ---------------------------------------------- +# Triggers for job running on daisy-baremetal against euphrates branch +# ---------------------------------------------- +# Basic HA Scenarios +- trigger: + name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-euphrates-trigger' + triggers: + - timed: '0 0 * * *' +# Basic NOHA Scenarios +- trigger: + name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-euphrates-trigger' + triggers: + - timed: '' +# ODL Scenarios +- trigger: + name: 'daisy-os-odl-nofeature-ha-baremetal-daily-euphrates-trigger' + triggers: + - timed: '0 20 * * *' + +# ---------------------------------------------- +# Triggers for job running on daisy-virtual against euphrates branch +# ---------------------------------------------- +# Basic HA Scenarios +- trigger: + name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-euphrates-trigger' + triggers: + - timed: '0 0 * * *' +# Basic NOHA Scenarios +- trigger: + name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-euphrates-trigger' + triggers: + - timed: '' +# ODL Scenarios +- trigger: + name: 'daisy-os-odl-nofeature-ha-virtual-daily-euphrates-trigger' + triggers: + - timed: '0 20 * * *' diff --git a/jjb/daisy4nfv/daisy-project-jobs.yml b/jjb/daisy4nfv/daisy-project-jobs.yml index bcb89105e..b6e9526e3 100644 --- a/jjb/daisy4nfv/daisy-project-jobs.yml +++ b/jjb/daisy4nfv/daisy-project-jobs.yml @@ -1,3 +1,4 @@ +--- ###################################################################### # Add daily jobs, for buidoing, deploying and testing # TODO: @@ -16,21 +17,26 @@ installer: 'daisy' stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false phase: - - 'build': - slave-label: 'opnfv-build-centos' - - 'deploy': - slave-label: 'daisy-baremetal' - - 'test': - slave-label: 'opnfv-build-centos' + - 'build': + slave-label: 'opnfv-build-centos' + - 'deploy': + slave-label: 'daisy-baremetal' + - 'test': + slave-label: 'opnfv-build-centos' + jobs: - - '{installer}-daily-{stream}' - - '{installer}-{phase}-daily-{stream}' + - '{installer}-daily-{stream}' + - '{installer}-{phase}-daily-{stream}' ######################## # job templates @@ -45,89 +51,89 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '{installer}-daily-.*' - - 'daisy4nfv-merge-build-.*' - - 'daisy4nfv-verify-build-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '{installer}-daily-.*' + - 'daisy4nfv-merge-build-.*' + - 'daisy4nfv-verify-build-.*' + block-level: 'NODE' scm: - - git-scm + - git-scm triggers: - - timed: '0 8 * * *' + - timed: '0 8 * * *' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-centos-defaults' - - '{installer}-defaults' - - '{installer}-project-parameter': - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-centos-defaults' + - '{installer}-defaults' + - '{installer}-project-parameter': + gs-pathname: '{gs-pathname}' wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 360 + fail: true builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: '{installer}-build-daily-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: '{installer}-deploy-daily-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: test - condition: SUCCESSFUL - projects: - - name: '{installer}-test-daily-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: '{installer}-build-daily-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: deploy + condition: SUCCESSFUL + projects: + - name: '{installer}-deploy-daily-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: test + condition: SUCCESSFUL + projects: + - name: '{installer}-test-daily-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true publishers: - - '{installer}-recipients' - - email-jenkins-admins-on-failure + - '{installer}-recipients' + - email-jenkins-admins-on-failure - job-template: name: '{installer}-{phase}-daily-{stream}' @@ -137,41 +143,41 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 6 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-total: 6 + option: 'project' scm: - - git-scm + - git-scm wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 360 + fail: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - - '{installer}-project-parameter': - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + - '{installer}-project-parameter': + gs-pathname: '{gs-pathname}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - '{installer}-{phase}-daily-macro' + - description-setter: + description: "Built on $NODE_NAME" + - '{installer}-{phase}-daily-macro' ##################################### # builder macros @@ -179,29 +185,29 @@ - builder: name: 'daisy-build-daily-macro' builders: - - shell: - !include-raw: ./daisy4nfv-basic.sh - - shell: - !include-raw: ./daisy4nfv-build.sh - - shell: - !include-raw: ./daisy4nfv-upload-artifact.sh - - 'clean-workspace' + - shell: + !include-raw: ./daisy4nfv-basic.sh + - shell: + !include-raw: ./daisy4nfv-build.sh + - shell: + !include-raw: ./daisy4nfv-upload-artifact.sh + - 'clean-workspace' - builder: name: 'daisy-deploy-daily-macro' builders: - - shell: - !include-raw: ./daisy4nfv-download-artifact.sh - - shell: - !include-raw: ./daisy-deploy.sh + - shell: + !include-raw: ./daisy4nfv-download-artifact.sh + - shell: + !include-raw: ./daisy-deploy.sh - builder: name: 'daisy-test-daily-macro' builders: - - shell: | - #!/bin/bash + - shell: | + #!/bin/bash - echo "Not activated!" + echo "Not activated!" ##################################### # parameter macros @@ -209,22 +215,24 @@ - publisher: name: 'daisy-recipients' publishers: - - email: - recipients: hu.zhijiang@zte.com.cn lu.yao135@zte.com.cn zhou.ya@zte.com.cn yangyang1@zte.com.cn julienjut@gmail.com - - email-jenkins-admins-on-failure + # yamllint disable rule:line-length + - email: + recipients: hu.zhijiang@zte.com.cn lu.yao135@zte.com.cn zhou.ya@zte.com.cn yangyang1@zte.com.cn julienjut@gmail.com + # yamllint enable rule:line-length + - email-jenkins-admins-on-failure - parameter: name: 'daisy-project-parameter' parameters: - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: CACHE_DIRECTORY - default: $HOME/opnfv/cache/$INSTALLER_TYPE - description: "Directory where the cache to be used during the build is located." - - string: - name: GS_URL - default: artifacts.opnfv.org/$PROJECT{gs-pathname} - description: "URL to Google Storage." + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: CACHE_DIRECTORY + default: $HOME/opnfv/cache/$INSTALLER_TYPE + description: "Directory where the cache to be used during the build is located." + - string: + name: GS_URL + default: artifacts.opnfv.org/$PROJECT{gs-pathname} + description: "URL to Google Storage." diff --git a/jjb/daisy4nfv/daisy4nfv-build.sh b/jjb/daisy4nfv/daisy4nfv-build.sh index 925f68e18..a081b3bc6 100755 --- a/jjb/daisy4nfv/daisy4nfv-build.sh +++ b/jjb/daisy4nfv/daisy4nfv-build.sh @@ -31,6 +31,8 @@ cd $WORKSPACE echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)" echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.bin" echo "OPNFV_ARTIFACT_SHA512SUM=$(sha512sum $OUTPUT_DIR/opnfv-$OPNFV_ARTIFACT_VERSION.bin | cut -d' ' -f1)" + echo "OPNFV_ARTIFACT_URL_ISO=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso" + echo "OPNFV_ARTIFACT_SHA512SUM_ISO=$(sha512sum $OUTPUT_DIR/opnfv-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)" echo "OPNFV_BUILD_URL=$BUILD_URL" ) > $WORKSPACE/opnfv.properties diff --git a/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml b/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml index 97d830f9f..f304d0b95 100644 --- a/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml +++ b/jjb/daisy4nfv/daisy4nfv-merge-jobs.yml @@ -1,3 +1,4 @@ +--- - project: name: 'daisy4nfv-merge-jobs' @@ -5,37 +6,39 @@ installer: 'daisy' -########################################################### -# use alias to keep the jobs'name existed already unchanged -########################################################### + ########################################################### + # use alias to keep the jobs'name existed already unchanged + ########################################################### alias: 'daisy4nfv' -##################################### -# branch definitions -##################################### + ##################################### + # branch definitions + ##################################### stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true -##################################### -# patch merge phases -##################################### + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + ##################################### + # patch merge phases + ##################################### phase: - - 'build': - slave-label: 'opnfv-build-centos' - - 'deploy-virtual': - slave-label: 'daisy-virtual' -##################################### -# jobs -##################################### + - 'build': + slave-label: 'opnfv-build-centos' + - 'deploy-virtual': + slave-label: 'daisy-virtual' + + ##################################### + # jobs + ##################################### jobs: - - '{alias}-merge-{stream}' - - '{alias}-merge-{phase}-{stream}' + - '{alias}-merge-{stream}' + - '{alias}-merge-{phase}-{stream}' + ##################################### # job templates ##################################### @@ -49,93 +52,93 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '{alias}-merge-(master|danube)' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '{alias}-merge-(master|euphrates)' + block-level: 'NODE' scm: - - git-scm + - git-scm wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 360 + fail: true 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: 'ci/**' - - compare-type: ANT - pattern: 'code/**' - - compare-type: ANT - pattern: 'deploy/**' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - - compare-type: ANT - pattern: '.gitignore' - readable-message: true + - 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: 'ci/**' + - compare-type: ANT + pattern: 'code/**' + - compare-type: ANT + pattern: 'deploy/**' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**' + - compare-type: ANT + pattern: '.gitignore' + readable-message: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-centos-defaults' - - '{alias}-merge-defaults': - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-centos-defaults' + - '{alias}-merge-defaults': + gs-pathname: '{gs-pathname}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: '{alias}-merge-build-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: '{alias}-merge-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: '{alias}-merge-build-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: '{alias}-merge-deploy-virtual-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true - job-template: name: '{alias}-merge-{phase}-{stream}' @@ -145,40 +148,40 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '{alias}-merge-{phase}-.*' - - '{installer}-daily-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '{alias}-merge-{phase}-.*' + - '{installer}-daily-.*' + block-level: 'NODE' scm: - - git-scm + - git-scm wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 360 + fail: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults' - - '{alias}-merge-defaults': - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults' + - '{alias}-merge-defaults': + gs-pathname: '{gs-pathname}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - '{project}-merge-{phase}-macro' + - description-setter: + description: "Built on $NODE_NAME" + - '{project}-merge-{phase}-macro' ##################################### # builder macros @@ -186,22 +189,22 @@ - builder: name: 'daisy-merge-build-macro' builders: - - shell: - !include-raw: ./daisy4nfv-basic.sh - - shell: - !include-raw: ./daisy4nfv-build.sh - - shell: - !include-raw: ./daisy4nfv-upload-artifact.sh - - 'clean-workspace' + - shell: + !include-raw: ./daisy4nfv-basic.sh + - shell: + !include-raw: ./daisy4nfv-build.sh + - shell: + !include-raw: ./daisy4nfv-upload-artifact.sh + - 'clean-workspace' - builder: name: 'daisy-merge-deploy-virtual-macro' builders: - - shell: - !include-raw: ./daisy4nfv-download-artifact.sh - - shell: - !include-raw: ./daisy-deploy.sh - - 'clean-workspace' + - shell: + !include-raw: ./daisy4nfv-download-artifact.sh + - shell: + !include-raw: ./daisy-deploy.sh + - 'clean-workspace' ##################################### # parameter macros @@ -209,15 +212,15 @@ - parameter: name: 'daisy4nfv-merge-defaults' parameters: - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: CACHE_DIRECTORY - default: $HOME/opnfv/cache/$INSTALLER_TYPE - description: "Directory where the cache to be used during the build is located." - - string: - name: GS_URL - default: artifacts.opnfv.org/$PROJECT{gs-pathname} - description: "URL to Google Storage." + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: CACHE_DIRECTORY + default: $HOME/opnfv/cache/$INSTALLER_TYPE + description: "Directory where the cache to be used during the build is located." + - string: + name: GS_URL + default: artifacts.opnfv.org/$PROJECT{gs-pathname} + description: "URL to Google Storage." diff --git a/jjb/daisy4nfv/daisy4nfv-upload-artifact.sh b/jjb/daisy4nfv/daisy4nfv-upload-artifact.sh index 6b0aec54f..def4f6a75 100755 --- a/jjb/daisy4nfv/daisy4nfv-upload-artifact.sh +++ b/jjb/daisy4nfv/daisy4nfv-upload-artifact.sh @@ -50,13 +50,15 @@ cd $WORKSPACE # upload artifact and additional files to google storage gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.bin \ gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.bin > gsutil.bin.log 2>&1 +gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso \ + gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso >> gsutil.bin.log 2>&1 gsutil cp $WORKSPACE/opnfv.properties \ gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1 if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then gsutil cp $WORKSPACE/opnfv.properties \ gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1 elif [[ "$JOB_NAME" =~ "merge" ]]; then - echo "Uploaded Daisy4nfv BIN for a merged change" + echo "Uploaded Daisy4nfv artifacts for a merged change" fi gsutil -m setmeta \ diff --git a/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml b/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml index 1828ce459..4100990d4 100644 --- a/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml +++ b/jjb/daisy4nfv/daisy4nfv-verify-jobs.yml @@ -1,38 +1,42 @@ +--- - project: name: 'daisy4nfv-verify-jobs' project: 'daisy' installer: 'daisy' -########################################################## -# use alias to keep the jobs'name existed alread unchanged -########################################################## + ########################################################## + # use alias to keep the jobs'name existed alread unchanged + ########################################################## alias: 'daisy4nfv' -##################################### -# branch definitions -##################################### + ##################################### + # branch definitions + ##################################### stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false -##################################### -# patch verification phases -##################################### + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + + ##################################### + # patch verification phases + ##################################### phase: - - unit: - slave-label: 'opnfv-build' - - build: - slave-label: 'opnfv-build-centos' -##################################### -# jobs -##################################### + - unit: + slave-label: 'opnfv-build' + - build: + slave-label: 'opnfv-build-centos' + + ##################################### + # jobs + ##################################### jobs: - - '{alias}-verify-{stream}' - - '{alias}-verify-{phase}-{stream}' + - '{alias}-verify-{stream}' + - '{alias}-verify-{phase}-{stream}' + ##################################### # job templates ##################################### @@ -42,136 +46,142 @@ disabled: false concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '{alias}-merge-build-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '{alias}-merge-build-.*' + block-level: 'NODE' scm: - - git-scm-gerrit + - git-scm-gerrit + wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 360 + fail: true + triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'ci/**' - - compare-type: ANT - pattern: 'code/**' - - compare-type: ANT - pattern: 'deploy/**' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - - compare-type: ANT - pattern: '.gitignore' - readable-message: true + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'ci/**' + - compare-type: ANT + pattern: 'code/**' + - compare-type: ANT + pattern: 'deploy/**' + - compare-type: ANT + pattern: 'tests/**' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**' + - compare-type: ANT + pattern: '.gitignore' + readable-message: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-centos-defaults' - - '{alias}-verify-defaults': - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-centos-defaults' + - '{alias}-verify-defaults': + gs-pathname: '{gs-pathname}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: unit - condition: SUCCESSFUL - projects: - - name: '{alias}-verify-unit-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: '{alias}-verify-build-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: unit + condition: SUCCESSFUL + projects: + - name: '{alias}-verify-unit-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: build + condition: SUCCESSFUL + projects: + - name: '{alias}-verify-build-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true - job-template: name: '{alias}-verify-{phase}-{stream}' disabled: '{obj:disabled}' concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 6 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '{alias}-merge-build-.*' - - '{alias}-verify-build-.*' - - '{installer}-daily-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 6 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '{alias}-merge-build-.*' + - '{alias}-verify-build-.*' + - '{installer}-daily-.*' + block-level: 'NODE' scm: - - git-scm-gerrit + - git-scm-gerrit + wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 360 + fail: true + parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults' - - '{alias}-verify-defaults': - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults' + - '{alias}-verify-defaults': + gs-pathname: '{gs-pathname}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - '{project}-verify-{phase}-macro' + - description-setter: + description: "Built on $NODE_NAME" + - '{project}-verify-{phase}-macro' ##################################### # builder macros @@ -179,21 +189,21 @@ - builder: name: 'daisy-verify-build-macro' builders: - - shell: - !include-raw: ./daisy4nfv-basic.sh - - shell: - !include-raw: ./daisy4nfv-build.sh - - 'clean-workspace' + - shell: + !include-raw: ./daisy4nfv-basic.sh + - shell: + !include-raw: ./daisy4nfv-build.sh + - 'clean-workspace' - builder: name: daisy-verify-unit-macro builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - set -o xtrace - tox -e py27 + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail + set -o xtrace + tox -e py27 ##################################### # parameter macros @@ -201,15 +211,15 @@ - parameter: name: 'daisy4nfv-verify-defaults' parameters: - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: CACHE_DIRECTORY - default: $HOME/opnfv/cache/$INSTALLER_TYPE - description: "Directory where the cache to be used during the build is located." - - string: - name: GS_URL - default: artifacts.opnfv.org/$PROJECT{gs-pathname} - description: "URL to Google Storage." + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: CACHE_DIRECTORY + default: $HOME/opnfv/cache/$INSTALLER_TYPE + description: "Directory where the cache to be used during the build is located." + - string: + name: GS_URL + default: artifacts.opnfv.org/$PROJECT{gs-pathname} + description: "URL to Google Storage." diff --git a/jjb/doctor/doctor.yml b/jjb/doctor/doctor.yml index b007e1432..6a04c5fbc 100644 --- a/jjb/doctor/doctor.yml +++ b/jjb/doctor/doctor.yml @@ -1,51 +1,52 @@ +--- - project: name: doctor project: '{name}' stream: - - master: - branch: '{stream}' - gs-pathname: '' - docker-tag: 'latest' - disabled: false - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - docker-tag: 'stable' - disabled: false + - master: + branch: '{stream}' + gs-pathname: '' + docker-tag: 'latest' + disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + docker-tag: 'stable' + disabled: false installer: - - apex: - slave-label: 'doctor-apex-verify' - - fuel: - slave-label: 'doctor-fuel-verify' - #- joid: - # slave-label: 'ool-virtual3' - # pod: 'ool-virtual3' + - apex: + slave-label: 'doctor-apex-verify' + - fuel: + slave-label: 'doctor-fuel-verify' + # - joid: + # slave-label: 'ool-virtual3' + # pod: 'ool-virtual3' inspector: - - 'sample' - - 'congress' + - 'sample' + - 'congress' task: - - verify: - auto-trigger-name: 'doctor-verify' - is-python: false - - python-verify: - auto-trigger-name: 'doctor-verify' - is-python: true + - verify: + auto-trigger-name: 'doctor-verify' + is-python: false + - python-verify: + auto-trigger-name: 'doctor-verify' + is-python: true pod: - - armband-baremetal: - slave-label: '{pod}' - - armband-virtual: - slave-label: '{pod}' + - armband-baremetal: + slave-label: '{pod}' + - armband-virtual: + slave-label: '{pod}' jobs: - - 'doctor-verify-{stream}' - - 'doctor-{task}-{installer}-{inspector}-{pod}-{stream}' - - 'doctor-{task}-{installer}-{inspector}-{stream}' + - 'doctor-verify-{stream}' + - 'doctor-{task}-{installer}-{inspector}-{pod}-{stream}' + - 'doctor-{task}-{installer}-{inspector}-{stream}' - job-template: name: 'doctor-verify-{stream}' @@ -53,39 +54,39 @@ 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}' - file-paths: - - compare-type: ANT - pattern: 'tests/**' + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'doctor_tests/**' builders: - - shell: "[ -e tests/run.sh ] && bash -n ./tests/run.sh" + - shell: "[ -e tests/run.sh ] && bash -n ./tests/run.sh" - job-template: name: 'doctor-{task}-{installer}-{inspector}-{pod}-{stream}' @@ -95,23 +96,23 @@ 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: - - '{auto-trigger-name}': - project: '{project}' - branch: '{branch}' - files: 'tests/**' + - '{auto-trigger-name}': + project: '{project}' + branch: '{branch}' + files: 'doctor_tests/**' builders: - - shell: "[ -e tests/run.sh ] && bash -n ./tests/run.sh" + - shell: "[ -e tests/run.sh ] && bash -n ./tests/run.sh" - job-template: @@ -120,89 +121,92 @@ node: '{slave-label}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: OS_CREDS - default: /home/jenkins/openstack.creds - description: 'OpenStack credentials' - - '{slave-label}-defaults' - - '{installer}-defaults' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull docker image' - - string: - name: CLEAN_DOCKER_IMAGES - default: 'false' - description: 'Remove downloaded docker images (opnfv/functest:*)' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - description: 'Scenario to deploy and test' - # functest-suite-parameter - - string: - name: FUNCTEST_SUITE_NAME - default: 'doctor-notification' - - string: - name: TESTCASE_OPTIONS - default: '-e INSPECTOR_TYPE={inspector} -e PYTHON_ENABLE={is-python} -v $WORKSPACE:/home/opnfv/repos/doctor' - description: 'Addtional parameters specific to test case(s)' - # functest-parameter - - string: - name: GS_PATHNAME - default: '{gs-pathname}' - description: "Version directory where the opnfv documents will be stored in gs repository" - - string: - name: FUNCTEST_REPO_DIR - default: "/home/opnfv/repos/functest" - description: "Directory where the Functest repository is cloned" - - string: - name: PUSH_RESULTS_TO_DB - default: "true" - description: "Push the results of all the tests to the resultDB" - - string: - name: CI_DEBUG - default: 'true' - description: "Show debug output information" + - project-parameter: + project: '{project}' + branch: '{branch}' + - string: + name: OS_CREDS + default: /home/jenkins/openstack.creds + description: 'OpenStack credentials' + - '{slave-label}-defaults' + - '{installer}-defaults' + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: 'Tag to pull docker image' + - string: + name: CLEAN_DOCKER_IMAGES + default: 'false' + description: 'Remove downloaded docker images (opnfv/functest:*)' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + description: 'Scenario to deploy and test' + # functest-suite-parameter + - string: + name: FUNCTEST_MODE + default: 'testcase' + - string: + name: FUNCTEST_SUITE_NAME + default: 'doctor-notification' + - string: + name: TESTCASE_OPTIONS + default: '-e INSPECTOR_TYPE={inspector} -e PYTHON_ENABLE={is-python} -v $WORKSPACE:/home/opnfv/repos/doctor' + description: 'Addtional parameters specific to test case(s)' + # functest-parameter + - string: + name: GS_PATHNAME + default: '{gs-pathname}' + description: "Version directory where the opnfv documents will be stored in gs repository" + - string: + name: FUNCTEST_REPO_DIR + default: "/home/opnfv/repos/functest" + description: "Directory where the Functest repository is cloned" + - string: + name: PUSH_RESULTS_TO_DB + default: "true" + description: "Push the results of all the tests to the resultDB" + - string: + name: CI_DEBUG + default: 'true' + description: "Show debug output information" scm: - - git-scm-gerrit + - git-scm-gerrit triggers: - - '{auto-trigger-name}': - project: '{project}' - branch: '{branch}' - files: 'tests/**' + - '{auto-trigger-name}': + project: '{project}' + branch: '{branch}' + files: 'doctor_tests/**' builders: - - 'clean-workspace-log' - - shell: | - # NOTE: Create symbolic link, so that we can archive file outside - # of $WORKSPACE . - # NOTE: We are printing all logs under 'tests/' during test run, - # so this symbolic link should not be in 'tests/'. Otherwise, - # we'll have the same log twice in jenkins console log. - ln -sfn $HOME/opnfv/functest/results/{stream} functest_results - # NOTE: Get functest script in $WORKSPACE. This functest script is - # needed to perform VM image download in set-functest-env.sh - # from E release cycle. - mkdir -p functest/ci - wget https://git.opnfv.org/functest/plain/functest/ci/download_images.sh -O functest/ci/download_images.sh - - 'functest-suite-builder' - - shell: | - functest_log="$HOME/opnfv/functest/results/{stream}/$FUNCTEST_SUITE_NAME.log" - # NOTE: checking the test result, as the previous job could return - # 0 regardless the result of doctor test scenario. - grep -e ' OK$' $functest_log || exit 1 + - 'clean-workspace-log' + - shell: | + # NOTE: Create symbolic link, so that we can archive file outside + # of $WORKSPACE . + # NOTE: We are printing all logs under 'tests/' during test run, + # so this symbolic link should not be in 'tests/'. Otherwise, + # we'll have the same log twice in jenkins console log. + ln -sfn $HOME/opnfv/functest/results/{stream} functest_results + # NOTE: Get functest script in $WORKSPACE. This functest script is + # needed to perform VM image download in set-functest-env.sh + # from E release cycle. + mkdir -p functest/ci + wget https://git.opnfv.org/functest/plain/functest/ci/download_images.sh -O functest/ci/download_images.sh + - 'functest-suite-builder' + - shell: | + functest_log="$HOME/opnfv/functest/results/{stream}/$FUNCTEST_SUITE_NAME.log" + # NOTE: checking the test result, as the previous job could return + # 0 regardless the result of doctor test scenario. + grep -e 'doctor test successfully' $functest_log || exit 1 publishers: - - archive: - artifacts: 'tests/*.log' - - archive: - artifacts: 'functest_results/$FUNCTEST_SUITE_NAME.log' - - email-jenkins-admins-on-failure + - archive: + artifacts: 'doctor_tests/*.log' + - archive: + artifacts: 'functest_results/$FUNCTEST_SUITE_NAME.log' + - email-jenkins-admins-on-failure ##################################### @@ -211,29 +215,29 @@ - trigger: name: 'doctor-verify' 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: true - failed: true - unstable: true - notbuilt: true + - 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: true + failed: true + unstable: true + notbuilt: true diff --git a/jjb/domino/domino.yml b/jjb/domino/domino.yml index 80b9b6931..7fc818c7a 100644 --- a/jjb/domino/domino.yml +++ b/jjb/domino/domino.yml @@ -12,7 +12,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/dovetail/dovetail-artifacts-upload.yml b/jjb/dovetail/dovetail-artifacts-upload.yml index 0c8efbe0d..9a11c6e26 100644 --- a/jjb/dovetail/dovetail-artifacts-upload.yml +++ b/jjb/dovetail/dovetail-artifacts-upload.yml @@ -1,3 +1,4 @@ +--- ############################################ # dovetail upload artifacts job ############################################ @@ -7,20 +8,20 @@ project: 'dovetail' jobs: - - 'dovetail-{image}-artifacts-upload-{stream}' + - 'dovetail-{image}-artifacts-upload-{stream}' stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false image: - - 'dovetail' - - 'functest' - - 'yardstick' - - 'testapi' - - 'mongo' + - 'dovetail' + - 'functest' + - 'yardstick' + - 'testapi' + - 'mongo' ############################################# # job template @@ -35,30 +36,30 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 1 - max-per-node: 1 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + option: 'project' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - dovetail-parameter: - gs-pathname: '{gs-pathname}' - image: '{image}' - branch: '{branch}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-ubuntu-defaults' + - dovetail-parameter: + gs-pathname: '{gs-pathname}' + image: '{image}' + branch: '{branch}' scm: - - git-scm + - git-scm builders: - - 'dovetail-builder-artifacts-upload' - - 'dovetail-upload-artifacts-cache-cleanup' - - 'dovetail-images-cleanup' + - 'dovetail-builder-artifacts-upload' + - 'dovetail-upload-artifacts-cache-cleanup' + - 'dovetail-images-cleanup' #################### # parameter macros @@ -66,49 +67,49 @@ - parameter: name: dovetail-parameter parameters: - - string: - name: CACHE_DIR - default: $WORKSPACE/cache{gs-pathname} - description: "the cache to store packages downloaded" - - string: - name: STORE_URL - default: gs://artifacts.opnfv.org/dovetail{gs-pathname} - description: "LF artifacts url for storage of dovetail packages" - - string: - name: DOCKER_REPO_NAME - default: opnfv/{image} - description: "docker repo name" - - string: - name: DOCKER_TAG - default: latest - description: "docker image tag of which will be uploaded to artifacts" - - string: - name: STORE_FILE_NAME - default: image_{image}_{branch}_$BUILD_ID.docker - description: "stored file name" + - string: + name: CACHE_DIR + default: $WORKSPACE/cache{gs-pathname} + description: "the cache to store packages downloaded" + - string: + name: STORE_URL + default: gs://artifacts.opnfv.org/dovetail{gs-pathname} + description: "LF artifacts url for storage of dovetail packages" + - string: + name: DOCKER_REPO_NAME + default: opnfv/{image} + description: "docker repo name" + - string: + name: DOCKER_TAG + default: latest + description: "docker image tag of which will be uploaded to artifacts" + - string: + name: STORE_FILE_NAME + default: image_{image}_{branch}_$BUILD_ID.docker + description: "stored file name" #################################### -#builders for dovetail project +# builders for dovetail project #################################### - builder: name: dovetail-builder-artifacts-upload builders: - - shell: - !include-raw: ./dovetail-artifacts-upload.sh + - shell: + !include-raw: ./dovetail-artifacts-upload.sh - builder: name: dovetail-upload-artifacts-cache-cleanup builders: - - shell: | - #!/bin/bash - set -o errexit + - shell: | + #!/bin/bash + set -o errexit - echo "Dovetail: cleanup cache used for storage downloaded packages" + echo "Dovetail: cleanup cache used for storage downloaded packages" - /bin/rm -rf $CACHE_DIR + /bin/rm -rf $CACHE_DIR - builder: name: dovetail-images-cleanup builders: - - shell: - !include-raw: ./dovetail-cleanup.sh + - shell: + !include-raw: ./dovetail-cleanup.sh diff --git a/jjb/dovetail/dovetail-ci-jobs.yml b/jjb/dovetail/dovetail-ci-jobs.yml index 938fdf915..9fde120f8 100644 --- a/jjb/dovetail/dovetail-ci-jobs.yml +++ b/jjb/dovetail/dovetail-ci-jobs.yml @@ -1,3 +1,4 @@ +--- ################################### # job configuration for dovetail ################################### @@ -6,174 +7,179 @@ project: '{name}' -#--------------------------------------- -# BRANCH ANCHORS -#--------------------------------------- -# 1)the stream/branch here represents the SUT(System Under Test) stream/branch -# 2)docker-tag is the docker tag of dovetail(only master by now, then all latest used) -# the dovetail stream is one-to-one mapping with dovetail docker-tag -# the dovetail is not sync with A/B/C release -# + # -------------------------------------- + # BRANCH ANCHORS + # -------------------------------------- + # 1)the stream/branch here represents the SUT(System Under Test) stream/branch + # 2)docker-tag is the docker tag of dovetail(only master by now, then all latest used) + # the dovetail stream is one-to-one mapping with dovetail docker-tag + # the dovetail is not sync with A/B/C release master: &master - stream: master - branch: '{stream}' - dovetail-branch: '{stream}' - gs-pathname: '' - docker-tag: 'latest' + stream: master + branch: '{stream}' + dovetail-branch: '{stream}' + gs-pathname: '' + docker-tag: 'latest' danube: &danube - stream: danube - branch: 'stable/{stream}' - dovetail-branch: master - gs-pathname: '/{stream}' - docker-tag: 'cvp.0.6.0' + stream: danube + branch: 'stable/{stream}' + dovetail-branch: master + gs-pathname: '/{stream}' + docker-tag: 'cvp.0.7.0' -#----------------------------------- -# POD, PLATFORM, AND BRANCH MAPPING -#----------------------------------- -# CI PODs -# This section should only contain the SUTs -# that have been switched using labels for slaves -#------------------------------------------------ -# the pods, SUTs listed here are just examples to -# let the dovetail tool run, there can be more ways beside CI to -# run the dovetail tool. -# pods, SUTs will be added/adjusted when needed + # ---------------------------------- + # POD, PLATFORM, AND BRANCH MAPPING + # ---------------------------------- + # CI PODs + # This section should only contain the SUTs + # that have been switched using labels for slaves + # ----------------------------------------------- + # the pods, SUTs listed here are just examples to + # let the dovetail tool run, there can be more ways beside CI to + # run the dovetail tool. + # pods, SUTs will be added/adjusted when needed pod: -# fuel CI PODs - - baremetal: - slave-label: fuel-baremetal - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: fuel-virtual - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: fuel-baremetal - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - virtual: - slave-label: fuel-virtual - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube -#compass CI PODs - - baremetal: - slave-label: compass-baremetal - SUT: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: compass-virtual - SUT: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: compass-baremetal - SUT: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - virtual: - slave-label: compass-virtual - SUT: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube -#-------------------------------- -# Installers not using labels -# CI PODs -# This section should only contain the installers -# that have not been switched using labels for slaves -#-------------------------------- -#apex PODs - - virtual: - slave-label: apex-virtual-master - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: apex-baremetal-master - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: apex-virtual-danube - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - baremetal: - slave-label: apex-baremetal-danube - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube -#armband CI PODs - - armband-baremetal: - slave-label: armband-baremetal - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - armband-virtual: - slave-label: armband-virtual - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - armband-baremetal: - slave-label: armband-baremetal - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - armband-virtual: - slave-label: armband-virtual - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube -#-------------------------------- -# None-CI PODs -#-------------------------------- - - baremetal-centos: - slave-label: 'intel-pod8' - SUT: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod1: - slave-label: zte-pod1 - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod2: - slave-label: zte-pod2 - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod3: - slave-label: zte-pod3 - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod1: - slave-label: zte-pod1 - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - zte-pod3: - slave-label: zte-pod3 - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - huawei-pod4: - slave-label: huawei-pod4 - SUT: apex - auto-trigger-name: 'apex-huawei-pod4-{testsuite}-danube-trigger' - <<: *danube -#-------------------------------- + # fuel CI PODs + - baremetal: + slave-label: fuel-baremetal + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - virtual: + slave-label: fuel-virtual + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - baremetal: + slave-label: fuel-baremetal + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + - virtual: + slave-label: fuel-virtual + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + # compass CI PODs + - baremetal: + slave-label: compass-baremetal + SUT: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - virtual: + slave-label: compass-virtual + SUT: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - baremetal: + slave-label: compass-baremetal + SUT: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + - virtual: + slave-label: compass-virtual + SUT: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + # ------------------------------- + # Installers not using labels + # CI PODs + # This section should only contain the installers + # that have not been switched using labels for slaves + # ------------------------------- + # apex PODs + - virtual: + slave-label: apex-virtual-master + SUT: apex + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - baremetal: + slave-label: apex-baremetal-master + SUT: apex + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - virtual: + slave-label: apex-virtual-danube + SUT: apex + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + - baremetal: + slave-label: apex-baremetal-danube + SUT: apex + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + # armband CI PODs + - armband-baremetal: + slave-label: armband-baremetal + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - armband-virtual: + slave-label: armband-virtual + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - armband-baremetal: + slave-label: armband-baremetal + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + - armband-virtual: + slave-label: armband-virtual + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + # ------------------------------- + # None-CI PODs + # ------------------------------- + - baremetal-centos: + slave-label: 'intel-pod8' + SUT: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - zte-pod1: + slave-label: zte-pod1 + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - zte-pod2: + slave-label: zte-pod2 + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - zte-pod3: + slave-label: zte-pod3 + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - zte-pod1: + slave-label: zte-pod1 + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + - zte-pod3: + slave-label: zte-pod3 + SUT: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + - huawei-pod4: + slave-label: huawei-pod4 + SUT: apex + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + - huawei-pod7: + slave-label: huawei-pod7 + SUT: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + + # ------------------------------- testsuite: - - 'compliance_set' - - 'proposed_tests' + - 'compliance_set' + - 'proposed_tests' jobs: - - 'dovetail-{SUT}-{pod}-{testsuite}-{stream}' + - 'dovetail-{SUT}-{pod}-{testsuite}-{stream}' ################################ # job templates @@ -186,92 +192,80 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: 300 - abort: true - - fix-workspace-permissions + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: 300 + abort: true + - fix-workspace-permissions triggers: - - '{auto-trigger-name}' + - '{auto-trigger-name}' parameters: - - project-parameter: - project: '{project}' - branch: '{dovetail-branch}' - - '{SUT}-defaults' - - '{slave-label}-defaults' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull dovetail docker image' - - string: - name: CI_DEBUG - default: 'true' - description: "Show debug output information" - - string: - name: TESTSUITE - default: '{testsuite}' - description: "dovetail testsuite to run" - - string: - name: DOVETAIL_REPO_DIR - default: "/home/opnfv/dovetail" - description: "Directory where the dovetail repository is cloned" - - string: - name: SUT_BRANCH - default: '{branch}' - description: "SUT branch" + - project-parameter: + project: '{project}' + branch: '{dovetail-branch}' + - '{SUT}-defaults' + - '{slave-label}-defaults' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: 'Tag to pull dovetail docker image' + - string: + name: CI_DEBUG + default: 'true' + description: "Show debug output information" + - string: + name: TESTSUITE + default: '{testsuite}' + description: "dovetail testsuite to run" + - string: + name: DOVETAIL_REPO_DIR + default: "/home/opnfv/dovetail" + description: "Directory where the dovetail repository is cloned" + - string: + name: SUT_BRANCH + default: '{branch}' + description: "SUT branch" scm: - - git-scm + - git-scm builders: - - description-setter: - description: "POD: $NODE_NAME" - - 'dovetail-cleanup' - - 'dovetail-run' + - description-setter: + description: "POD: $NODE_NAME" + - 'dovetail-cleanup' + - 'dovetail-run' publishers: - - archive: - artifacts: 'results/**/*' - allow-empty: true - fingerprint: true - - email-jenkins-admins-on-failure + - archive: + artifacts: 'results/**/*' + allow-empty: true + fingerprint: true + - email-jenkins-admins-on-failure -#-------------------------- +# ------------------------- # builder macros -#-------------------------- +# ------------------------- - builder: name: dovetail-run builders: - - shell: - !include-raw: ./dovetail-run.sh + - shell: + !include-raw: ./dovetail-run.sh - builder: name: dovetail-cleanup builders: - - shell: - !include-raw: ./dovetail-cleanup.sh - -#-------------------------- -# trigger macros -#-------------------------- -- trigger: - name: 'apex-huawei-pod4-proposed_tests-danube-trigger' - triggers: - - timed: '0 1 * * *' -- trigger: - name: 'apex-huawei-pod4-compliance_set-danube-trigger' - triggers: - - timed: '' + - shell: + !include-raw: ./dovetail-cleanup.sh diff --git a/jjb/dovetail/dovetail-project-jobs.yml b/jjb/dovetail/dovetail-project-jobs.yml index 9dc4808b4..c38ec9637 100644 --- a/jjb/dovetail/dovetail-project-jobs.yml +++ b/jjb/dovetail/dovetail-project-jobs.yml @@ -1,3 +1,4 @@ +--- ################################################### # Non-ci jobs for Dovetail project # They will only be enabled on request by projects! @@ -8,13 +9,13 @@ project: 'dovetail' jobs: - - 'dovetail-verify-{stream}' - - 'dovetail-merge-{stream}' + - 'dovetail-verify-{stream}' + - 'dovetail-merge-{stream}' stream: - - master: - branch: '{stream}' - disabled: false + - master: + branch: '{stream}' + disabled: false ################################ # job templates @@ -26,35 +27,35 @@ 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}' + - 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}' builders: - - dovetail-unit-tests + - dovetail-unit-tests - job-template: name: 'dovetail-merge-{stream}' @@ -62,50 +63,50 @@ 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 + - git-scm 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}' + - 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}' builders: - - dovetail-unit-tests + - dovetail-unit-tests ################################ -#builders for dovetail project +# builders for dovetail project ############################### - builder: name: dovetail-hello-world builders: - - shell: | - #!/bin/bash - set -o errexit + - shell: | + #!/bin/bash + set -o errexit - echo "hello world" + echo "hello world" - builder: name: dovetail-unit-tests builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail - tox + tox diff --git a/jjb/dovetail/dovetail-run.sh b/jjb/dovetail/dovetail-run.sh index 9c4e205ae..2cbb94766 100755 --- a/jjb/dovetail/dovetail-run.sh +++ b/jjb/dovetail/dovetail-run.sh @@ -152,8 +152,10 @@ dovetail_home_volume="-v ${DOVETAIL_HOME}:${DOVETAIL_HOME}" echo "Dovetail: Pulling image opnfv/dovetail:${DOCKER_TAG}" docker pull opnfv/dovetail:$DOCKER_TAG >$redirect +env4bgpvpn="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP}" + cmd="docker run ${opts} -e DOVETAIL_HOME=${DOVETAIL_HOME} ${docker_volume} ${dovetail_home_volume} \ - ${sshkey} opnfv/dovetail:${DOCKER_TAG} /bin/bash" + ${sshkey} ${env4bgpvpn} opnfv/dovetail:${DOCKER_TAG} /bin/bash" echo "Dovetail: running docker run command: ${cmd}" ${cmd} >${redirect} sleep 5 @@ -186,14 +188,6 @@ cat << EOF >$tempest_conf_file compute: min_compute_nodes: 2 volume_device_name: ${volume_device} - min_microversion: 2.2 - max_microversion: latest - -compute-feature-enabled: - live_migration: True - block_migration_for_live_migration: True - block_migrate_cinder_iscsi: True - attach_encrypted_volume: True EOF diff --git a/jjb/dovetail/dovetail-weekly-jobs.yml b/jjb/dovetail/dovetail-weekly-jobs.yml index 11904cbcd..5a162bb7f 100644 --- a/jjb/dovetail/dovetail-weekly-jobs.yml +++ b/jjb/dovetail/dovetail-weekly-jobs.yml @@ -1,59 +1,60 @@ +--- - project: name: dovetail-weekly-jobs project: dovetail -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- + # ------------------------------- + # BRANCH ANCHORS + # ------------------------------- master: &master - stream: master - branch: '{stream}' - dovetail-branch: '{stream}' - gs-pathname: '' - docker-tag: 'latest' + stream: master + branch: '{stream}' + dovetail-branch: '{stream}' + gs-pathname: '' + docker-tag: 'latest' danube: &danube - stream: danube - branch: 'stable/{stream}' - dovetail-branch: master - gs-pathname: '/{stream}' - docker-tag: 'latest' + stream: danube + branch: 'stable/{stream}' + dovetail-branch: master + gs-pathname: '/{stream}' + docker-tag: 'latest' -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# Installers using labels -# CI PODs -# This section should only contain the installers -# that have been switched using labels for slaves -#-------------------------------- + # ------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ------------------------------- + # Installers using labels + # CI PODs + # This section should only contain the installers + # that have been switched using labels for slaves + # ------------------------------- pod: -# - baremetal: -# slave-label: apex-baremetal -# SUT: apex -# <<: *danube - - baremetal: - slave-label: compass-baremetal - SUT: compass - <<: *danube -# - baremetal: -# slave-label: fuel-baremetal -# SUT: fuel -# <<: *danube -# - baremetal: -# slave-label: joid-baremetal -# SUT: joid -# <<: *danube + # - baremetal: + # slave-label: apex-baremetal + # SUT: apex + # <<: *danube + - baremetal: + slave-label: compass-baremetal + SUT: compass + <<: *danube + # - baremetal: + # slave-label: fuel-baremetal + # SUT: fuel + # <<: *danube + # - baremetal: + # slave-label: joid-baremetal + # SUT: joid + # <<: *danube testsuite: - - 'debug' - - 'compliance_set' - - 'proposed_tests' + - 'debug' + - 'compliance_set' + - 'proposed_tests' loop: - - 'weekly': - job-timeout: 180 + - 'weekly': + job-timeout: 180 jobs: - - 'dovetail-{SUT}-{pod}-{testsuite}-{loop}-{stream}' + - 'dovetail-{SUT}-{pod}-{testsuite}-{loop}-{stream}' ################################ # job template @@ -66,61 +67,61 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' wrappers: - - build-name: - name: '$BUILD_NUMBER Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: '{job-timeout}' - abort: true - - fix-workspace-permissions + - build-name: + name: '$BUILD_NUMBER Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: '{job-timeout}' + abort: true + - fix-workspace-permissions parameters: - - project-parameter: - project: '{project}' - branch: '{dovetail-branch}' - - '{SUT}-defaults' - - '{slave-label}-defaults' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull dovetail docker image' - - string: - name: CI_DEBUG - default: 'true' - description: "Show debug output information" - - string: - name: TESTSUITE - default: '{testsuite}' - description: "dovetail testsuite to run" - - string: - name: DOVETAIL_REPO_DIR - default: "/home/opnfv/dovetail" - description: "Directory where the dovetail repository is cloned" + - project-parameter: + project: '{project}' + branch: '{dovetail-branch}' + - '{SUT}-defaults' + - '{slave-label}-defaults' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: 'Tag to pull dovetail docker image' + - string: + name: CI_DEBUG + default: 'true' + description: "Show debug output information" + - string: + name: TESTSUITE + default: '{testsuite}' + description: "dovetail testsuite to run" + - string: + name: DOVETAIL_REPO_DIR + default: "/home/opnfv/dovetail" + description: "Directory where the dovetail repository is cloned" scm: - - git-scm + - git-scm builders: - - description-setter: - description: "POD: $NODE_NAME" - - 'dovetail-cleanup' - - 'dovetail-run' + - description-setter: + description: "POD: $NODE_NAME" + - 'dovetail-cleanup' + - 'dovetail-run' publishers: - - archive: - artifacts: 'results/**/*' - allow-empty: true - fingerprint: true - - email-jenkins-admins-on-failure + - archive: + artifacts: 'results/**/*' + allow-empty: true + fingerprint: true + - email-jenkins-admins-on-failure ######################## # builder macros @@ -128,10 +129,11 @@ - builder: name: dovetail-run-weekly builders: - - shell: - !include-raw: ./dovetail-run.sh + - shell: + !include-raw: ./dovetail-run.sh + - builder: name: dovetail-cleanup-weekly builders: - - shell: - !include-raw: ./dovetail-cleanup.sh + - shell: + !include-raw: ./dovetail-cleanup.sh diff --git a/jjb/dpacc/dpacc.yml b/jjb/dpacc/dpacc.yml index 39f3d563c..3501d276d 100644 --- a/jjb/dpacc/dpacc.yml +++ b/jjb/dpacc/dpacc.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/fuel/fuel-daily-jobs.yml b/jjb/fuel/fuel-daily-jobs.yml index c30cfed72..92ad8e69a 100644 --- a/jjb/fuel/fuel-daily-jobs.yml +++ b/jjb/fuel/fuel-daily-jobs.yml @@ -1,3 +1,4 @@ +--- # jenkins job templates for Fuel - project: @@ -7,104 +8,114 @@ installer: '{name}' -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- + # ------------------------------- + # BRANCH ANCHORS + # ------------------------------- master: &master - stream: master - branch: '{stream}' - disabled: false - gs-pathname: '' + stream: master + branch: '{stream}' + disabled: false + gs-pathname: '' euphrates: &euphrates - stream: euphrates - branch: 'stable/{stream}' - disabled: true - gs-pathname: '/{stream}' + stream: euphrates + branch: 'stable/{stream}' + disabled: false + gs-pathname: '/{stream}' danube: &danube - stream: danube - branch: 'stable/{stream}' - disabled: false - gs-pathname: '/{stream}' -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# CI PODs -#-------------------------------- + stream: danube + branch: 'stable/{stream}' + disabled: false + gs-pathname: '/{stream}' + # ------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ------------------------------- + # CI PODs + # ------------------------------- pod: - - baremetal: - slave-label: fuel-baremetal - <<: *master - - virtual: - slave-label: fuel-virtual - <<: *master - - baremetal: - slave-label: fuel-baremetal - <<: *euphrates - - virtual: - slave-label: fuel-virtual - <<: *euphrates -#-------------------------------- -# None-CI PODs -#-------------------------------- - - zte-pod1: - slave-label: zte-pod1 - <<: *master - - zte-pod3: - slave-label: zte-pod3 - <<: *master - - zte-pod1: - slave-label: zte-pod1 - <<: *euphrates - - zte-pod3: - slave-label: zte-pod3 - <<: *euphrates - - zte-pod1: - slave-label: zte-pod1 - <<: *danube -#-------------------------------- -# scenarios -#-------------------------------- + - baremetal: + slave-label: fuel-baremetal + <<: *master + - virtual: + slave-label: fuel-virtual + <<: *master + - baremetal: + slave-label: fuel-baremetal + <<: *euphrates + - virtual: + slave-label: fuel-virtual + <<: *euphrates + # ------------------------------- + # None-CI PODs + # ------------------------------- + - zte-pod1: + slave-label: zte-pod1 + <<: *master + - zte-pod3: + slave-label: zte-pod3 + <<: *master + - zte-pod1: + slave-label: zte-pod1 + <<: *euphrates + - zte-pod3: + slave-label: zte-pod3 + <<: *euphrates + - zte-pod1: + slave-label: zte-pod1 + <<: *danube + # ------------------------------- + # scenarios + # ------------------------------- scenario: - # HA scenarios - - 'os-nosdn-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-odl-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-onos-sfc-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-onos-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-ovs-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm_ovs-ha': - auto-trigger-name: 'daily-trigger-disabled' - - 'os-nosdn-kvm_ovs_dpdk-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm_ovs_dpdk_bar-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - # NOHA scenarios - - 'os-nosdn-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-odl-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-onos-sfc-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-onos-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-ovs-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm_ovs_dpdk-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-kvm_ovs_dpdk_bar-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + # HA scenarios + - 'os-nosdn-nofeature-ha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-odl-nofeature-ha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-onos-sfc-ha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-onos-nofeature-ha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-nosdn-kvm-ha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-nosdn-ovs-ha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-nosdn-kvm_ovs-ha': + auto-trigger-name: 'daily-trigger-disabled' + - 'os-nosdn-kvm_ovs_dpdk-ha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-nosdn-kvm_ovs_dpdk_bar-ha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + # NOHA scenarios + - 'os-nosdn-nofeature-noha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-odl-nofeature-noha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-onos-sfc-noha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-onos-nofeature-noha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-nosdn-kvm-noha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-nosdn-ovs-noha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-nosdn-kvm_ovs_dpdk-noha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + - 'os-nosdn-kvm_ovs_dpdk_bar-noha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + # danube scenario for Dovetail only + - 'os-odl_l2-bgpvpn-ha': + auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' + + exclude: + - scenario: os-odl_l2-bgpvpn-ha + stream: master + - scenario: os-odl_l2-bgpvpn-ha + stream: euphrates jobs: - - 'fuel-{scenario}-{pod}-daily-{stream}' - - 'fuel-deploy-{pod}-daily-{stream}' + - 'fuel-{scenario}-{pod}-daily-{stream}' + - 'fuel-deploy-{pod}-daily-{stream}' + - 'fuel-collect-logs-{pod}-daily-{stream}' ######################## # job templates @@ -117,99 +128,117 @@ concurrent: false properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-os-.*?-{pod}-daily-.*' - - 'fuel-os-.*?-{pod}-weekly-.*' - - 'fuel-verify-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-os-.*?-{pod}-daily-.*' + - 'fuel-os-.*?-{pod}-weekly-.*' + - 'fuel-verify-.*' + block-level: 'NODE' wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' triggers: - - '{auto-trigger-name}' + - '{auto-trigger-name}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' + - '{slave-label}-defaults': + installer: '{installer}' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - trigger-builds: - - project: 'fuel-deploy-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - same-node: true - block: true - - trigger-builds: - - project: 'functest-fuel-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - same-node: true - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - trigger-builds: - - project: 'yardstick-fuel-{pod}-daily-{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' - # 1.dovetail only has master, based on D release - # 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 and nosdn-nofeature - # 5.only run against scenario os-odl-bgpvpn-ha(regex used here, can extend to more scenarios future) - # 6.ZTE pod1, os-nosdn-nofeature-ha and os-odl-bgpvpn-ha, run against danube - - conditional-step: + - description-setter: + description: "Built on $NODE_NAME" + - trigger-builds: + - project: 'fuel-deploy-{pod}-daily-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + same-node: true + block: true + - trigger-builds: + - project: 'functest-fuel-{pod}-daily-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + same-node: true + block: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' + - trigger-builds: + - project: 'yardstick-fuel-{pod}-daily-{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' + # 1.dovetail only has master, based on D release + # 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 and nosdn-nofeature + # 5.only run against scenario os-odl-bgpvpn-ha(regex used here, can extend to more scenarios future) + # 6.ZTE pod1, os-nosdn-nofeature-ha and os-odl-bgpvpn-ha, run against danube + - conditional-step: + condition-kind: regex-match + regex: os-(nosdn-nofeature|odl_l2-bgpvpn)-ha + label: '{scenario}' + steps: + - trigger-builds: + - project: 'dovetail-fuel-{pod}-proposed_tests-master' + 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' + - conditional-step: + condition-kind: not + condition-operand: condition-kind: regex-match - regex: os-(nosdn-nofeature|odl-bgpvpn)-ha - label: '{scenario}' - steps: - - trigger-builds: - - project: 'dovetail-fuel-{pod}-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' + regex: 'danube' + label: '{stream}' + steps: + - trigger-builds: + - project: 'fuel-collect-logs-{pod}-daily-{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: - recipients: peter.barabas@ericsson.com fzhadaev@mirantis.com - - email-jenkins-admins-on-failure + - email: + recipients: peter.barabas@ericsson.com fzhadaev@mirantis.com + - email-jenkins-admins-on-failure - job-template: name: 'fuel-deploy-{pod}-daily-{stream}' @@ -219,671 +248,709 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-deploy-{pod}-daily-.*' - - 'fuel-deploy-generic-daily-.*' - - 'fuel-deploy-{pod}-weekly-.*' - - 'fuel-deploy-generic-weekly-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-deploy-{pod}-daily-.*' + - 'fuel-deploy-generic-daily-.*' + - 'fuel-deploy-{pod}-weekly-.*' + - 'fuel-deploy-generic-weekly-.*' + block-level: 'NODE' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - string: - name: DEPLOY_SCENARIO - default: 'os-odl-nofeature-ha' - - string: - name: DEPLOY_TIMEOUT - default: '150' - description: 'Deployment timeout in minutes' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' + - '{slave-label}-defaults': + installer: '{installer}' + - string: + name: DEPLOY_SCENARIO + default: 'os-odl-nofeature-ha' scm: - - git-scm + - git-scm wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' builders: - - description-setter: - description: "Built on $NODE_NAME" - - shell: - !include-raw-escape: ./fuel-download-artifact.sh - - shell: - !include-raw-escape: ./fuel-deploy.sh + - description-setter: + description: "Built on $NODE_NAME" + - shell: + !include-raw-escape: ./fuel-download-artifact.sh + - shell: + !include-raw-escape: ./fuel-deploy.sh publishers: - - email: - recipients: peter.barabas@ericsson.com fzhadaev@mirantis.com - - email-jenkins-admins-on-failure + - email: + recipients: peter.barabas@ericsson.com fzhadaev@mirantis.com + - email-jenkins-admins-on-failure + +- job-template: + name: 'fuel-collect-logs-{pod}-daily-{stream}' + + disabled: '{obj:disabled}' + + concurrent: true + + properties: + - logrotate-default + + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' + - '{slave-label}-defaults': + installer: '{installer}' + - string: + name: DEPLOY_SCENARIO + default: 'os-odl-nofeature-ha' + + scm: + - git-scm + + wrappers: + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + + builders: + - description-setter: + description: "Built on $NODE_NAME" + - shell: + !include-raw-escape: ./fuel-logs.sh + + publishers: + - email-jenkins-admins-on-failure ######################## # trigger macros ######################## -#----------------------------------------------- +# ---------------------------------------------- # Triggers for job running on fuel-baremetal against master branch -#----------------------------------------------- +# ---------------------------------------------- # HA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-master-trigger' triggers: - - timed: '5 20 * * *' + - timed: '5 20 * * *' - trigger: name: 'fuel-os-odl-nofeature-ha-baremetal-daily-master-trigger' triggers: - - timed: '5 2 * * *' + - timed: '5 2 * * *' - trigger: name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-master-trigger' triggers: - - timed: '5 5 * * *' + - timed: '5 5 * * *' - trigger: name: 'fuel-os-onos-sfc-ha-baremetal-daily-master-trigger' triggers: - - timed: '' # '5 5 * * *' + - timed: '' # '5 5 * * *' - trigger: name: 'fuel-os-onos-nofeature-ha-baremetal-daily-master-trigger' triggers: - - timed: '' # '5 8 * * *' + - timed: '' # '5 8 * * *' - trigger: name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-master-trigger' triggers: - - timed: '' # '5 17 * * *' + - timed: '' # '5 17 * * *' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-master-trigger' triggers: - - timed: '' # '30 12 * * *' + - timed: '' # '30 12 * * *' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-master-trigger' triggers: - - timed: '' # '30 8 * * *' + - timed: '' # '30 8 * * *' # NOHA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-noha-baremetal-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-noha-baremetal-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-noha-baremetal-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-master-trigger' triggers: - - timed: '' -#----------------------------------------------- + - timed: '' +# ---------------------------------------------- # Triggers for job running on fuel-baremetal against euphrates branch -#----------------------------------------------- +# ---------------------------------------------- # HA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' # '0 20 * * *' + - timed: '0 20 * * *' - trigger: name: 'fuel-os-odl-nofeature-ha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' # '0 2 * * *' + - timed: '0 2 * * *' - trigger: name: 'fuel-os-onos-sfc-ha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' # '0 5 * * *' + - timed: '' # '0 5 * * *' - trigger: name: 'fuel-os-onos-nofeature-ha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' # '0 8 * * *' + - timed: '' # '0 8 * * *' - trigger: name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' # '0 17 * * *' + - timed: '' # '0 17 * * *' - trigger: name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' # '0 20 * * *' + - timed: '0 20 * * *' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' # '0 12 * * *' + - timed: '' # '0 12 * * *' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' # '0 8 * * *' + - timed: '' # '0 8 * * *' # NOHA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-noha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-noha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-noha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-euphrates-trigger' triggers: - - timed: '' -#----------------------------------------------- + - timed: '' +# ---------------------------------------------- # Triggers for job running on fuel-virtual against master branch -#----------------------------------------------- +# ---------------------------------------------- - trigger: name: 'fuel-os-nosdn-nofeature-ha-virtual-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-ha-virtual-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-ha-virtual-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-ha-virtual-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-ha-virtual-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-ha-virtual-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-master-trigger' triggers: - - timed: '' + - timed: '' # NOHA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-master-trigger' triggers: - - timed: '5 13 * * *' + - timed: '5 13 * * *' - trigger: name: 'fuel-os-odl-nofeature-noha-virtual-daily-master-trigger' triggers: - - timed: '5 18 * * *' + - timed: '5 18 * * *' - trigger: name: 'fuel-os-onos-sfc-noha-virtual-daily-master-trigger' triggers: - - timed: '' # '35 20 * * *' + - timed: '' # '35 20 * * *' - trigger: name: 'fuel-os-onos-nofeature-noha-virtual-daily-master-trigger' triggers: - - timed: '' # '5 23 * * *' + - timed: '' # '5 23 * * *' - trigger: name: 'fuel-os-nosdn-kvm-noha-virtual-daily-master-trigger' triggers: - - timed: '' # '35 6 * * *' + - timed: '' # '35 6 * * *' - trigger: name: 'fuel-os-nosdn-ovs-noha-virtual-daily-master-trigger' triggers: - - timed: '5 9 * * *' + - timed: '5 9 * * *' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-master-trigger' triggers: - - timed: '' # '30 16 * * *' + - timed: '' # '30 16 * * *' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-virtual-daily-master-trigger' triggers: - - timed: '' # '30 20 * * *' -#----------------------------------------------- + - timed: '' # '30 20 * * *' +# ---------------------------------------------- # Triggers for job running on fuel-virtual against euphrates branch -#----------------------------------------------- +# ---------------------------------------------- - trigger: name: 'fuel-os-nosdn-nofeature-ha-virtual-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-ha-virtual-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-ha-virtual-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-ha-virtual-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-ha-virtual-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-ha-virtual-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' # NOHA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-euphrates-trigger' triggers: - - timed: '' # '0 13 * * *' + - timed: '0 13 * * *' - trigger: name: 'fuel-os-odl-nofeature-noha-virtual-daily-euphrates-trigger' triggers: - - timed: '' # '0 18 * * *' + - timed: '0 18 * * *' - trigger: name: 'fuel-os-onos-sfc-noha-virtual-daily-euphrates-trigger' triggers: - - timed: '' # '30 20 * * *' + - timed: '' # '30 20 * * *' - trigger: name: 'fuel-os-onos-nofeature-noha-virtual-daily-euphrates-trigger' triggers: - - timed: '' # '0 23 * * *' + - timed: '' # '0 23 * * *' - trigger: name: 'fuel-os-nosdn-kvm-noha-virtual-daily-euphrates-trigger' triggers: - - timed: '' # '30 6 * * *' + - timed: '' # '30 6 * * *' - trigger: name: 'fuel-os-nosdn-ovs-noha-virtual-daily-euphrates-trigger' triggers: - - timed: '' # '0 9 * * *' + - timed: '0 9 * * *' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-euphrates-trigger' triggers: - - timed: '' # '0 16 * * *' + - timed: '' # '0 16 * * *' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-virtual-daily-euphrates-trigger' triggers: - - timed: '' # '0 20 * * *' -#----------------------------------------------- + - timed: '' # '0 20 * * *' +# ---------------------------------------------- # ZTE POD1 Triggers running against master branch -#----------------------------------------------- +# ---------------------------------------------- - trigger: name: 'fuel-os-nosdn-nofeature-ha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '0 10 * * *' - trigger: name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-ha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-ha-zte-pod1-daily-master-trigger' triggers: - - timed: '0 18 * * *' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' # NOHA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-noha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-noha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-noha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod1-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod1-daily-master-trigger' triggers: - - timed: '' -#----------------------------------------------- + - timed: '' +# ---------------------------------------------- # ZTE POD3 Triggers running against master branch -#----------------------------------------------- +# ---------------------------------------------- - trigger: name: 'fuel-os-nosdn-nofeature-ha-zte-pod3-daily-master-trigger' triggers: - - timed: '0 10 * * *' + - timed: '' # '0 10 * * *' - trigger: name: 'fuel-os-odl-nofeature-ha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-ha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-ha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-ha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-ha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' # NOHA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-noha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-noha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-noha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-noha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-noha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-noha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod3-daily-master-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod3-daily-master-trigger' triggers: - - timed: '' -#----------------------------------------------- + - timed: '' +# ---------------------------------------------- # ZTE POD1 Triggers running against euphrates branch -#----------------------------------------------- +# ---------------------------------------------- - trigger: name: 'fuel-os-nosdn-nofeature-ha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-ha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-ha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' # NOHA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-noha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-noha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-noha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod1-daily-euphrates-trigger' triggers: - - timed: '' -#----------------------------------------------- + - timed: '' +# ---------------------------------------------- # ZTE POD3 Triggers running against euphrates branch -#----------------------------------------------- +# ---------------------------------------------- - trigger: name: 'fuel-os-nosdn-nofeature-ha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' # '0 18 * * *' + - timed: '' # '0 18 * * *' - trigger: name: 'fuel-os-odl-nofeature-ha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-ha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-ha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-ha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' # '0 2 * * *' + - timed: '' # '0 2 * * *' - trigger: name: 'fuel-os-nosdn-ovs-ha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' # NOHA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-noha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-noha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-noha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-noha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-noha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-noha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod3-daily-euphrates-trigger' triggers: - - timed: '' -#------------------------------------------------ + - 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' + - timed: '' +- trigger: + name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod1-daily-danube-trigger' + triggers: + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-ha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-ha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' # NOHA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-noha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-sfc-noha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-ovs-noha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' - trigger: name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod1-daily-danube-trigger' triggers: - - timed: '' + - timed: '' diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh index 6525c7ccb..3a52d1d50 100755 --- a/jjb/fuel/fuel-deploy.sh +++ b/jjb/fuel/fuel-deploy.sh @@ -14,22 +14,26 @@ export TERM="vt220" if [[ "$BRANCH" =~ 'danube' ]]; then # source the file so we get OPNFV vars + # shellcheck disable=SC1091 source latest.properties # echo the info about artifact that is used during the deployment echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment" -fi -# shellcheck disable=SC2153 -if [[ "${JOB_NAME}" =~ 'verify' ]]; then - # set simplest scenario for virtual deploys to run for verify - DEPLOY_SCENARIO="os-nosdn-nofeature-ha" -elif [[ "${BRANCH}" =~ 'danube' ]]; then # for Danube deployments (no artifact for current master or newer branches) # checkout the commit that was used for building the downloaded artifact # to make sure the ISO and deployment mechanism uses same versions echo "Checking out ${OPNFV_GIT_SHA1}" git checkout "${OPNFV_GIT_SHA1}" --quiet + + # releng wants us to use nothing else but opnfv.iso for now. We comply. + ISO_FILE_ARG="-i file://${WORKSPACE}/opnfv.iso" +fi + +# shellcheck disable=SC2153 +if [[ "${JOB_NAME}" =~ 'verify' ]]; then + # set simplest scenario for virtual deploys to run for verify + DEPLOY_SCENARIO="os-nosdn-nofeature-noha" fi # set deployment parameters @@ -72,26 +76,18 @@ chmod a+x "${HOME}" "${TMPDIR}" cd "${WORKSPACE}" || exit 1 if [[ "${LAB_CONFIG_URL}" =~ ^(git|ssh):// ]]; then echo "Cloning securedlab repo ${BRANCH}" - git clone --quiet --branch "${BRANCH}" "${LAB_CONFIG_URL}" lab-config - LAB_CONFIG_URL=file://${WORKSPACE}/lab-config - - # Source local_env if present, which contains POD-specific config - local_env="${WORKSPACE}/lab-config/labs/${LAB_NAME}/${POD_NAME}/fuel/config/local_env" - if [ -e "${local_env}" ]; then - echo "-- Sourcing local environment file" - source "${local_env}" - fi + LOCAL_CFG="${TMPDIR}/securedlab" + rm -rf "${LOCAL_CFG}" + git clone --quiet --branch "${BRANCH}" "${LAB_CONFIG_URL}" "${LOCAL_CFG}" + LAB_CONFIG_URL="file://${LOCAL_CFG}" fi -# releng wants us to use nothing else but opnfv.iso for now. We comply. -ISO_FILE=file://${WORKSPACE}/opnfv.iso - # log file name FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz" # construct the command DEPLOY_COMMAND="${SUDO} ${WORKSPACE}/ci/deploy.sh -b ${LAB_CONFIG_URL} \ - -l ${LAB_NAME} -p ${POD_NAME} -s ${DEPLOY_SCENARIO} -i ${ISO_FILE} \ + -l ${LAB_NAME} -p ${POD_NAME} -s ${DEPLOY_SCENARIO} ${ISO_FILE_ARG:-} \ -B ${DEFAULT_BRIDGE:-${BRIDGE}} -S ${TMPDIR} \ -L ${WORKSPACE}/${FUEL_LOG_FILENAME}" @@ -101,7 +97,7 @@ echo "--------------------------------------------------------" echo "Scenario: ${DEPLOY_SCENARIO}" echo "Lab: ${LAB_NAME}" echo "POD: ${POD_NAME}" -[[ "${BRANCH}" != 'master' ]] && echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}" +[[ "${BRANCH}" =~ 'danube' ]] && echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}" echo echo "Starting the deployment using ${INSTALLER_TYPE}. This could take some time..." echo "--------------------------------------------------------" diff --git a/jjb/fuel/fuel-logs.sh b/jjb/fuel/fuel-logs.sh new file mode 100755 index 000000000..a7d852685 --- /dev/null +++ b/jjb/fuel/fuel-logs.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2017 Ericsson AB, Mirantis Inc., Enea Software AB 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 nounset +set -o pipefail + +# Fuel requires deploy script to be ran with sudo, Armband does not +SUDO='sudo -E' +[ "${PROJECT}" = 'fuel' ] || SUDO= + +# Log file name +FUEL_PM_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}_pm.log.tar.gz" + +# Construct the command +LOG_COMMAND="${SUDO} ${WORKSPACE}/mcp/scripts/log.sh \ + ${WORKSPACE}/${FUEL_PM_LOG_FILENAME}" + +# Log info to console +echo "Collecting post mortem logs ..." +echo "--------------------------------------------------------" +echo "${LOG_COMMAND}" + +${LOG_COMMAND} + +# Upload logs for both baremetal and virtual deployments +echo "Uploading deployment logs" +echo "--------------------------------------------------------" +gsutil cp "${WORKSPACE}/${FUEL_PM_LOG_FILENAME}" \ + "gs://${GS_URL}/logs/${FUEL_PM_LOG_FILENAME}" > /dev/null 2>&1 +echo "Logs are available at http://${GS_URL}/logs/${FUEL_PM_LOG_FILENAME}" diff --git a/jjb/fuel/fuel-project-jobs.yml b/jjb/fuel/fuel-project-jobs.yml index cfcbf3695..9e890cde7 100644 --- a/jjb/fuel/fuel-project-jobs.yml +++ b/jjb/fuel/fuel-project-jobs.yml @@ -1,3 +1,4 @@ +--- ######################## # Job configuration for fuel ######################## @@ -9,17 +10,17 @@ installer: 'fuel' stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - euphrates: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false jobs: - - 'fuel-deploy-generic-daily-{stream}' + - 'fuel-deploy-generic-daily-{stream}' ######################## # job templates @@ -32,48 +33,48 @@ disabled: '{obj:disabled}' properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-os-.*?-daily-.*' - - 'fuel-deploy-generic-daily-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-os-.*?-daily-.*' + - 'fuel-deploy-generic-daily-.*' + block-level: 'NODE' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: DEPLOY_SCENARIO - default: 'os-odl-nofeature-ha' - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - ericsson-pod2 - - lf-pod2 - - ericsson-pod1 - default-slaves: - - ericsson-pod2 + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: DEPLOY_SCENARIO + default: 'os-odl-nofeature-ha' + - node: + name: SLAVE_NAME + description: 'Slave name on Jenkins' + allowed-slaves: + - ericsson-pod2 + - lf-pod2 + - ericsson-pod1 + default-slaves: + - ericsson-pod2 scm: - - git-scm + - git-scm wrappers: - - build-name: - name: '$BUILD_NUMBER - POD: $NODE_NAME Scenario: $DEPLOY_SCENARIO' + - build-name: + name: '$BUILD_NUMBER - POD: $NODE_NAME Scenario: $DEPLOY_SCENARIO' builders: - - shell: - !include-raw-escape: ./fuel-deploy.sh + - shell: + !include-raw-escape: ./fuel-deploy.sh diff --git a/jjb/fuel/fuel-verify-jobs.yml b/jjb/fuel/fuel-verify-jobs.yml index 45197fc4e..8026c19af 100644 --- a/jjb/fuel/fuel-verify-jobs.yml +++ b/jjb/fuel/fuel-verify-jobs.yml @@ -1,37 +1,38 @@ +--- - project: name: 'fuel-verify-jobs' project: 'fuel' installer: 'fuel' -##################################### -# branch definitions -##################################### + ##################################### + # branch definitions + ##################################### stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - euphrates: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true -##################################### -# patch verification phases -##################################### + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + ##################################### + # patch verification phases + ##################################### phase: - - 'basic': - slave-label: 'fuel-virtual' - - 'deploy-virtual': - slave-label: 'fuel-virtual' - - 'smoke-test': - slave-label: 'fuel-virtual' -##################################### -# jobs -##################################### + - 'basic': + slave-label: 'fuel-virtual' + - 'deploy-virtual': + slave-label: 'fuel-virtual' + - 'smoke-test': + slave-label: 'fuel-virtual' + ##################################### + # jobs + ##################################### jobs: - - 'fuel-verify-{stream}' - - 'fuel-verify-{phase}-{stream}' + - 'fuel-verify-{stream}' + - 'fuel-verify-{phase}-{stream}' ##################################### # job templates ##################################### @@ -45,110 +46,110 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-os-.*?-virtual-daily-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-os-.*?-virtual-daily-.*' + block-level: 'NODE' scm: - - git-scm-gerrit + - git-scm-gerrit wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 360 + fail: true triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'ci/**' - - compare-type: ANT - pattern: 'mcp/**' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - readable-message: true + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'ci/**' + - compare-type: ANT + pattern: 'mcp/**' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**' + readable-message: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'fuel-virtual-defaults': - installer: '{installer}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'fuel-virtual-defaults': + installer: '{installer}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: basic - condition: SUCCESSFUL - projects: - - name: 'fuel-verify-basic-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: deploy-virtual - condition: SUCCESSFUL - projects: - - name: 'fuel-verify-deploy-virtual-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: smoke-test - condition: SUCCESSFUL - projects: - - name: 'fuel-verify-smoke-test-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: basic + condition: SUCCESSFUL + projects: + - name: 'fuel-verify-basic-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: deploy-virtual + condition: SUCCESSFUL + projects: + - name: 'fuel-verify-deploy-virtual-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: smoke-test + condition: SUCCESSFUL + projects: + - name: 'fuel-verify-smoke-test-{stream}' + current-parameters: false + predefined-parameters: | + BRANCH=$BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: true - job-template: name: 'fuel-verify-{phase}-{stream}' @@ -158,62 +159,63 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 2 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-verify-deploy-.*' - - 'fuel-verify-test-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 2 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-verify-deploy-.*' + - 'fuel-verify-test-.*' + block-level: 'NODE' scm: - - git-scm-gerrit + - git-scm-gerrit wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 360 + fail: true + parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-defaults' - - 'fuel-virtual-defaults': - installer: '{installer}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{slave-label}-defaults' + - 'fuel-virtual-defaults': + installer: '{installer}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - '{project}-verify-{phase}-macro' + - description-setter: + description: "Built on $NODE_NAME" + - '{project}-verify-{phase}-macro' ##################################### # builder macros ##################################### - builder: name: 'fuel-verify-basic-macro' builders: - - shell: | - #!/bin/bash + - shell: | + #!/bin/bash - echo "Not activated!" + echo "Not activated!" - builder: name: 'fuel-verify-deploy-virtual-macro' builders: - - shell: - !include-raw: ./fuel-deploy.sh + - shell: + !include-raw: ./fuel-deploy.sh - builder: name: 'fuel-verify-smoke-test-macro' builders: - - shell: | - #!/bin/bash + - shell: | + #!/bin/bash - echo "Not activated!" + echo "Not activated!" diff --git a/jjb/fuel/fuel-weekly-jobs.yml b/jjb/fuel/fuel-weekly-jobs.yml index e1563ea38..f21c58660 100644 --- a/jjb/fuel/fuel-weekly-jobs.yml +++ b/jjb/fuel/fuel-weekly-jobs.yml @@ -1,3 +1,4 @@ +--- # jenkins job templates for Fuel - project: @@ -7,48 +8,48 @@ installer: fuel -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- + # ------------------------------- + # BRANCH ANCHORS + # ------------------------------- master: &master - stream: master - branch: '{stream}' - disabled: false - gs-pathname: '' + stream: master + branch: '{stream}' + disabled: false + gs-pathname: '' euphrates: &euphrates - stream: euphrates - branch: 'stable/{stream}' - disabled: true - gs-pathname: '/{stream}' -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# CI PODs -#-------------------------------- + stream: euphrates + branch: 'stable/{stream}' + disabled: false + gs-pathname: '/{stream}' + # ------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ------------------------------- + # CI PODs + # ------------------------------- pod: - - baremetal: - slave-label: fuel-baremetal - <<: *master - - virtual: - slave-label: fuel-virtual - <<: *master - - baremetal: - slave-label: fuel-baremetal - <<: *euphrates - - virtual: - slave-label: fuel-virtual - <<: *euphrates -#-------------------------------- -# scenarios -#-------------------------------- + - baremetal: + slave-label: fuel-baremetal + <<: *master + - virtual: + slave-label: fuel-virtual + <<: *master + - baremetal: + slave-label: fuel-baremetal + <<: *euphrates + - virtual: + slave-label: fuel-virtual + <<: *euphrates + # ------------------------------- + # scenarios + # ------------------------------- scenario: - # HA scenarios - - 'os-nosdn-nofeature-ha': - auto-trigger-name: 'weekly-trigger-disabled' + # HA scenarios + - 'os-nosdn-nofeature-ha': + auto-trigger-name: 'weekly-trigger-disabled' jobs: - - 'fuel-{scenario}-{pod}-weekly-{stream}' - - 'fuel-deploy-{pod}-weekly-{stream}' + - 'fuel-{scenario}-{pod}-weekly-{stream}' + - 'fuel-deploy-{pod}-weekly-{stream}' ######################## # job templates @@ -61,65 +62,65 @@ concurrent: false properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-os-.*?-{pod}-daily-.*' - - 'fuel-os-.*?-{pod}-weekly-.*' - - 'fuel-verify-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-os-.*?-{pod}-daily-.*' + - 'fuel-os-.*?-{pod}-weekly-.*' + - 'fuel-verify-.*' + block-level: 'NODE' wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' triggers: - - '{auto-trigger-name}' + - '{auto-trigger-name}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' + - '{slave-label}-defaults': + installer: '{installer}' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - trigger-builds: - - project: 'fuel-deploy-{pod}-weekly-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - same-node: true - block: true - - trigger-builds: - - project: 'functest-fuel-{pod}-weekly-{stream}' - current-parameters: false - predefined-parameters: - DEPLOY_SCENARIO={scenario} - same-node: true - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' + - description-setter: + description: "Built on $NODE_NAME" + - trigger-builds: + - project: 'fuel-deploy-{pod}-weekly-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + same-node: true + block: true + - trigger-builds: + - project: 'functest-fuel-{pod}-weekly-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + same-node: true + block: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' publishers: - - email: - recipients: peter.barabas@ericsson.com fzhadaev@mirantis.com - - email-jenkins-admins-on-failure + - email: + recipients: peter.barabas@ericsson.com fzhadaev@mirantis.com + - email-jenkins-admins-on-failure - job-template: name: 'fuel-deploy-{pod}-weekly-{stream}' @@ -129,63 +130,59 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-deploy-{pod}-daily-.*' - - 'fuel-deploy-generic-daily-.*' - - 'fuel-deploy-{pod}-weekly-.*' - - 'fuel-deploy-generic-weekly-.*' - block-level: 'NODE' + - logrotate-default + - throttle: + enabled: true + max-total: 4 + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-deploy-{pod}-daily-.*' + - 'fuel-deploy-generic-daily-.*' + - 'fuel-deploy-{pod}-weekly-.*' + - 'fuel-deploy-generic-weekly-.*' + block-level: 'NODE' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - string: - name: DEPLOY_SCENARIO - default: 'os-odl-nofeature-ha' - - string: - name: DEPLOY_TIMEOUT - default: '150' - description: 'Deployment timeout in minutes' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults': + gs-pathname: '{gs-pathname}' + - '{slave-label}-defaults': + installer: '{installer}' + - string: + name: DEPLOY_SCENARIO + default: 'os-odl-nofeature-ha' scm: - - git-scm + - git-scm wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' builders: - - description-setter: - description: "Built on $NODE_NAME" - - shell: - !include-raw-escape: ./fuel-deploy.sh + - description-setter: + description: "Built on $NODE_NAME" + - shell: + !include-raw-escape: ./fuel-deploy.sh publishers: - - email: - recipients: peter.barabas@ericsson.com fzhadaev@mirantis.com - - email-jenkins-admins-on-failure + - email: + recipients: peter.barabas@ericsson.com fzhadaev@mirantis.com + - email-jenkins-admins-on-failure ######################## # trigger macros ######################## -#----------------------------------------------- +# ---------------------------------------------- # Triggers for job running on fuel-baremetal against master branch -#----------------------------------------------- +# ---------------------------------------------- # HA Scenarios - trigger: name: 'fuel-os-nosdn-nofeature-ha-baremetal-weekly-master-trigger' triggers: - - timed: '' + - timed: '' diff --git a/jjb/functest/functest-alpine.sh b/jjb/functest/functest-alpine.sh index 57398faf6..f5f39b8ff 100755 --- a/jjb/functest/functest-alpine.sh +++ b/jjb/functest/functest-alpine.sh @@ -4,18 +4,85 @@ set -e set +u set +o pipefail +run_tiers() { + tiers=$1 + cmd_opt="prepare_env start && run_tests -r -t all" + [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="prepare_env start && run_tests -t all" + ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value" + echo 0 > ${ret_val_file} + + for tier in ${tiers[@]}; do + FUNCTEST_IMAGE=opnfv/functest-${tier}:${DOCKER_TAG} + echo "Functest: Pulling Functest Docker image ${FUNCTEST_IMAGE} ..." + docker pull ${FUNCTEST_IMAGE}>/dev/null + cmd="docker run --privileged=true ${envs} ${volumes} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'" + echo "Running Functest tier '${tier}'. CMD: ${cmd}" + eval ${cmd} + ret_value=$? + if [ ${ret_value} != 0 ]; then + echo ${ret_value} > ${ret_val_file} + if [ ${tier} == 'healthcheck' ]; then + echo "Healthcheck tier failed. Exiting Functest..." + break + fi + fi + done +} + +run_test() { + test_name=$1 + cmd_opt="prepare_env start && run_tests -r -t ${test_name}" + [[ $BUILD_TAG =~ "suite" ]] && cmd_opt="prepare_env start && run_tests -t ${test_name}" + ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value" + echo 0 > ${ret_val_file} + # Determine which Functest image should be used for the test case + case ${test_name} in + connection_check|api_check|snaps_health_check) + FUNCTEST_IMAGE=opnfv/functest-healthcheck:${DOCKER_TAG} ;; + vping_ssh|vping_userdata|tempest_smoke_serial|rally_sanity|refstack_defcore|odl|odl_netvirt|fds|snaps_smoke) + FUNCTEST_IMAGE=opnfv/functest-smoke:${DOCKER_TAG} ;; + tempest_full_parallel|tempest_custom|rally_full) + FUNCTEST_IMAGE=opnfv/functest-components:${DOCKER_TAG} ;; + cloudify_ims|orchestra_openims|orchestra_clearwaterims|vyos_vrouter) + FUNCTEST_IMAGE=opnfv/functest-vnf:${DOCKER_TAG} ;; + promise|doctor-notification|bgpvpn|functest-odl-sfc|domino-multinode|barometercollectd) + FUNCTEST_IMAGE=opnfv/functest-features:${DOCKER_TAG} ;; + parser-basics) + FUNCTEST_IMAGE=opnfv/functest-parser:${DOCKER_TAG} ;; + *) + echo "Unkown test case $test_name" + exit 1 + ;; + esac + echo "Functest: Pulling Functest Docker image ${FUNCTEST_IMAGE} ..." + docker pull ${FUNCTEST_IMAGE}>/dev/null + cmd="docker run --privileged=true ${envs} ${volumes} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'" + echo "Running Functest test case '${test_name}'. CMD: ${cmd}" + eval ${cmd} + ret_value=$? + if [ ${ret_value} != 0 ]; then + echo ${ret_value} > ${ret_val_file} + fi +} + + [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" FUNCTEST_DIR=/home/opnfv/functest +DEPLOY_TYPE=baremetal +[[ $BUILD_TAG =~ "virtual" ]] && DEPLOY_TYPE=virt +HOST_ARCH=$(uname -m) +DOCKER_TAG=${DOCKER_TAG:-latest} # Prepare OpenStack credentials volume +rc_file=${HOME}/opnfv-openrc.sh + if [[ ${INSTALLER_TYPE} == 'joid' ]]; then rc_file=$LAB_CONFIG/admin-openrc -elif [[ ${INSTALLER_TYPE} == 'compass' && ${BRANCH} == 'master' ]]; then +elif [[ ${INSTALLER_TYPE} == 'compass' ]]; then cacert_file_vol="-v ${HOME}/os_cacert:${FUNCTEST_DIR}/conf/os_cacert" echo "export OS_CACERT=${FUNCTEST_DIR}/conf/os_cacert" >> ${HOME}/opnfv-openrc.sh - rc_file=${HOME}/opnfv-openrc.sh -else - rc_file=${HOME}/opnfv-openrc.sh +elif [[ ${INSTALLER_TYPE} == 'fuel' && ${DEPLOY_TYPE} == 'baremetal' ]]; then + cacert_file_vol="-v ${HOME}/os_cacert:/etc/ssl/certs/mcp_os_cacert" fi rc_file_vol="-v ${rc_file}:${FUNCTEST_DIR}/conf/openstack.creds" @@ -25,10 +92,6 @@ 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" echo "Functest: Download images that will be used by test cases" @@ -54,31 +117,36 @@ envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \ -e NODE_NAME=${NODE_NAME} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} \ -e BUILD_TAG=${BUILD_TAG} -e DEPLOY_TYPE=${DEPLOY_TYPE}" -if [[ ${INSTALLER_TYPE} == 'compass' && ${DEPLOY_SCENARIO} == *'os-nosdn-openo-ha'* ]]; then - ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" - openo_msb_port=${openo_msb_port:-80} - openo_msb_endpoint="$(sshpass -p'root' ssh 2>/dev/null $ssh_options root@${installer_ip} \ - 'mysql -ucompass -pcompass -Dcompass -e "select package_config from cluster;" \ - | sed s/,/\\n/g | grep openo_ip | cut -d \" -f 4'):$openo_msb_port" +ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" + - envs=${env}" -e OPENO_MSB_ENDPOINT=${openo_msb_endpoint}" +if [ "${INSTALLER_TYPE}" == 'fuel' ]; then + COMPUTE_ARCH=$(ssh -l ubuntu ${INSTALLER_IP} -i ${SSH_KEY} ${ssh_options} \ + "sudo salt 'cmp*' grains.get cpuarch --out yaml | awk '{print \$2; exit}'") + envs="${envs} -e POD_ARCH=${COMPUTE_ARCH}" fi volumes="${images_vol} ${results_vol} ${sshkey_vol} ${rc_file_vol} ${cacert_file_vol}" set +e -if [ ${FUNCTEST_SUITE_NAME} == 'healthcheck' ]; then - tiers=(healthcheck) + +if [[ ${DEPLOY_SCENARIO} =~ ^os-.* ]]; then + if [ ${FUNCTEST_MODE} == 'testcase' ]; then + echo "FUNCTEST_MODE=testcase, FUNCTEST_SUITE_NAME=${FUNCTEST_SUITE_NAME}" + run_test ${FUNCTEST_SUITE_NAME} + elif [ ${FUNCTEST_MODE} == 'tier' ]; then + echo "FUNCTEST_MODE=tier, FUNCTEST_TIER=${FUNCTEST_TIER}" + tiers=(${FUNCTEST_TIER}) + run_tiers ${tiers} + else + if [ ${DEPLOY_TYPE} == 'baremetal' ]; then + tiers=(healthcheck smoke features vnf parser) + else + tiers=(healthcheck smoke features) + fi + run_tiers ${tiers} + fi else - tiers=(healthcheck smoke features vnf) + echo "k8 deployment has not been supported by functest yet" fi - -for tier in ${tiers[@]}; do - FUNCTEST_IMAGE=opnfv/functest-${tier} - echo "Functest: Pulling Functest Docker image ${FUNCTEST_IMAGE} ..." - docker pull ${FUNCTEST_IMAGE}>/dev/null - cmd="docker run ${envs} ${volumes} ${FUNCTEST_IMAGE}" - echo "Running Functest tier '${tier}'. CMD: ${cmd}" - ${cmd} -done diff --git a/jjb/functest/functest-daily-jobs.yml b/jjb/functest/functest-daily-jobs.yml index cbf175567..bddb2777b 100644 --- a/jjb/functest/functest-daily-jobs.yml +++ b/jjb/functest/functest-daily-jobs.yml @@ -1,3 +1,4 @@ +--- ################################### # job configuration for functest ################################### @@ -6,198 +7,210 @@ project: functest -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- + # ------------------------------- + # BRANCH ANCHORS + # ------------------------------- master: &master - stream: master - branch: '{stream}' - gs-pathname: '' - docker-tag: 'latest' - danube: &danube - stream: danube - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - docker-tag: 'stable' -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# Installers using labels -# CI PODs -# This section should only contain the installers -# that have been switched using labels for slaves -#-------------------------------- + stream: master + branch: '{stream}' + gs-pathname: '' + docker-tag: 'latest' + euphrates: &euphrates + stream: euphrates + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + docker-tag: 'stable' + # ------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ------------------------------- + # Installers using labels + # CI PODs + # This section should only contain the installers + # that have been switched using labels for slaves + # ------------------------------- pod: -# fuel CI PODs - - baremetal: - slave-label: fuel-baremetal - installer: fuel - <<: *master - - virtual: - slave-label: fuel-virtual - installer: fuel - <<: *master - - baremetal: - slave-label: fuel-baremetal - installer: fuel - <<: *danube - - virtual: - slave-label: fuel-virtual - installer: fuel - <<: *danube -# joid CI PODs - - baremetal: - slave-label: joid-baremetal - installer: joid - <<: *master - - virtual: - slave-label: joid-virtual - installer: joid - <<: *master - - baremetal: - slave-label: joid-baremetal - installer: joid - <<: *danube - - virtual: - slave-label: joid-virtual - installer: joid - <<: *danube -# compass CI PODs - - baremetal: - slave-label: compass-baremetal - installer: compass - <<: *master - - virtual: - slave-label: compass-virtual - installer: compass - <<: *master - - baremetal: - slave-label: compass-baremetal - installer: compass - <<: *danube - - virtual: - slave-label: compass-virtual - installer: compass - <<: *danube -# apex CI PODs - - virtual: - slave-label: apex-virtual-master - installer: apex - <<: *master - - baremetal: - slave-label: apex-baremetal-master - installer: apex - <<: *master - - virtual: - slave-label: apex-virtual-danube - installer: apex - <<: *danube - - baremetal: - slave-label: apex-baremetal-danube - installer: apex - <<: *danube -# armband CI PODs - - armband-baremetal: - slave-label: armband-baremetal - installer: fuel - <<: *master - - armband-virtual: - slave-label: armband-virtual - installer: fuel - <<: *master - - armband-baremetal: - slave-label: armband-baremetal - installer: fuel - <<: *danube - - armband-virtual: - slave-label: armband-virtual - installer: fuel - <<: *danube -# daisy CI PODs - - baremetal: - slave-label: daisy-baremetal - installer: daisy - <<: *master - - virtual: - slave-label: daisy-virtual - installer: daisy - <<: *master -# netvirt 3rd party ci - - virtual: - slave-label: odl-netvirt-virtual - installer: netvirt - <<: *master -#-------------------------------- -# None-CI PODs -#-------------------------------- - - orange-pod1: - slave-label: '{pod}' - installer: joid - <<: *master - - orange-pod5: - slave-label: '{pod}' - installer: fuel - <<: *master - - orange-pod2: - slave-label: '{pod}' - installer: joid - <<: *master - - baremetal-centos: - slave-label: 'intel-pod8' - installer: compass - <<: *master - - nokia-pod1: - slave-label: '{pod}' - installer: apex - <<: *master - - zte-pod1: - slave-label: '{pod}' - installer: fuel - <<: *master - - zte-pod1: - slave-label: '{pod}' - installer: fuel - <<: *danube - - zte-pod2: - slave-label: '{pod}' - installer: fuel - <<: *master - - zte-pod3: - slave-label: '{pod}' - installer: fuel - <<: *master - - zte-pod3: - slave-label: '{pod}' - installer: fuel - <<: *danube -# PODs for verify jobs triggered by each patch upload -# - ool-virtual1: -# slave-label: '{pod}' -# installer: apex -# <<: *master -#-------------------------------- + # fuel CI PODs + - baremetal: + slave-label: fuel-baremetal + installer: fuel + <<: *master + - virtual: + slave-label: fuel-virtual + installer: fuel + <<: *master + - baremetal: + slave-label: fuel-baremetal + installer: fuel + <<: *euphrates + - virtual: + slave-label: fuel-virtual + installer: fuel + <<: *euphrates + # joid CI PODs + - baremetal: + slave-label: joid-baremetal + installer: joid + <<: *master + - virtual: + slave-label: joid-virtual + installer: joid + <<: *master + - baremetal: + slave-label: joid-baremetal + installer: joid + <<: *euphrates + - virtual: + slave-label: joid-virtual + installer: joid + <<: *euphrates + # compass CI PODs + - baremetal: + slave-label: compass-baremetal + installer: compass + <<: *master + - virtual: + slave-label: compass-virtual + installer: compass + <<: *master + - baremetal: + slave-label: compass-baremetal + installer: compass + <<: *euphrates + - virtual: + slave-label: compass-virtual + installer: compass + <<: *euphrates + # apex CI PODs + - virtual: + slave-label: apex-virtual-master + installer: apex + <<: *master + - baremetal: + slave-label: apex-baremetal-master + installer: apex + <<: *master + - virtual: + slave-label: apex-virtual-euphrates + installer: apex + <<: *euphrates + - baremetal: + slave-label: apex-baremetal-euphrates + installer: apex + <<: *euphrates + # armband CI PODs + - armband-baremetal: + slave-label: armband-baremetal + installer: fuel + <<: *master + - armband-virtual: + slave-label: armband-virtual + installer: fuel + <<: *master + - armband-baremetal: + slave-label: armband-baremetal + installer: fuel + <<: *euphrates + - armband-virtual: + slave-label: armband-virtual + installer: fuel + <<: *euphrates + # daisy CI PODs + - baremetal: + slave-label: daisy-baremetal + installer: daisy + <<: *master + - virtual: + slave-label: daisy-virtual + installer: daisy + <<: *master + - baremetal: + slave-label: daisy-baremetal + installer: daisy + <<: *euphrates + - virtual: + slave-label: daisy-virtual + installer: daisy + <<: *euphrates + # netvirt 3rd party ci + - virtual: + slave-label: odl-netvirt-virtual + installer: netvirt + <<: *master + # ------------------------------- + # None-CI PODs + # ------------------------------- + - orange-pod1: + slave-label: '{pod}' + installer: joid + <<: *master + - orange-pod5: + slave-label: '{pod}' + installer: fuel + <<: *master + - orange-pod2: + slave-label: '{pod}' + installer: joid + <<: *master + - baremetal-centos: + slave-label: 'intel-pod8' + installer: compass + <<: *master + - nokia-pod1: + slave-label: '{pod}' + installer: apex + <<: *master + - zte-pod1: + slave-label: '{pod}' + installer: fuel + <<: *master + - zte-pod1: + slave-label: '{pod}' + installer: fuel + <<: *euphrates + - zte-pod2: + slave-label: '{pod}' + installer: daisy + <<: *master + - zte-pod2: + slave-label: '{pod}' + installer: daisy + <<: *euphrates + - zte-pod3: + slave-label: '{pod}' + installer: daisy + <<: *master + - zte-pod3: + slave-label: '{pod}' + installer: daisy + <<: *euphrates + # PODs for verify jobs triggered by each patch upload + # - ool-virtual1: + # slave-label: '{pod}' + # installer: apex + # <<: *master + # ------------------------------- alpine-pod: - - ericsson-virtual-pod1bl01: - slave-label: '{alpine-pod}' - installer: fuel - <<: *master - - huawei-virtual5: - slave-label: '{alpine-pod}' - installer: compass - <<: *master + - ericsson-virtual-pod1bl01: + slave-label: '{alpine-pod}' + installer: fuel + <<: *master + - huawei-virtual5: + slave-label: '{alpine-pod}' + installer: compass + <<: *master testsuite: - - 'suite': - job-timeout: 60 - - 'daily': - job-timeout: 240 - - 'arm-daily': - job-timeout: 240 + - 'suite': + job-timeout: 60 + - 'daily': + job-timeout: 240 + - 'arm-daily': + job-timeout: 240 jobs: - - 'functest-{installer}-{pod}-{testsuite}-{stream}' - - 'functest-alpine-{installer}-{alpine-pod}-{testsuite}-{stream}' + - 'functest-{installer}-{pod}-{testsuite}-{stream}' + - 'functest-alpine-{installer}-{alpine-pod}-{testsuite}-{stream}' ################################ # job template @@ -208,47 +221,47 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' wrappers: - - build-name: - name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: '{job-timeout}' - abort: true + - build-name: + name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: '{job-timeout}' + abort: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults' - - 'functest-{testsuite}-parameter' - - string: - name: DEPLOY_SCENARIO - default: 'os-odl_l2-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull docker image' - - string: - name: CLEAN_DOCKER_IMAGES - default: 'false' - description: 'Remove downloaded docker images (opnfv/functest*:*)' - - functest-parameter: - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults' + - 'functest-{testsuite}-parameter' + - string: + name: DEPLOY_SCENARIO + default: 'os-odl_l2-nofeature-ha' + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: 'Tag to pull docker image' + - string: + name: CLEAN_DOCKER_IMAGES + default: 'false' + description: 'Remove downloaded docker images (opnfv/functest*:*)' + - functest-parameter: + gs-pathname: '{gs-pathname}' scm: - - git-scm + - git-scm builders: - - description-setter: - description: "Built on $NODE_NAME" - - 'functest-{testsuite}-builder' + - description-setter: + description: "Built on $NODE_NAME" + - 'functest-{testsuite}-builder' - job-template: name: 'functest-alpine-{installer}-{alpine-pod}-{testsuite}-{stream}' @@ -256,39 +269,39 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' wrappers: - - build-name: - name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: '{job-timeout}' - abort: true + - build-name: + name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: '{job-timeout}' + abort: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults' - - 'functest-{testsuite}-parameter' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-noha' - - functest-parameter: - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults' + - 'functest-{testsuite}-parameter' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-noha' + - functest-parameter: + gs-pathname: '{gs-pathname}' scm: - - git-scm + - git-scm builders: - - description-setter: - description: "Built on $NODE_NAME" - - 'functest-alpine-daily-builder' + - description-setter: + description: "Built on $NODE_NAME" + - 'functest-alpine-daily-builder' ######################## # parameter macros @@ -296,167 +309,199 @@ - parameter: name: functest-daily-parameter parameters: - - string: - name: FUNCTEST_SUITE_NAME - default: 'daily' - description: "Daily suite name to run" + - string: + name: FUNCTEST_MODE + default: 'daily' + description: "Daily suite name to run" + - parameter: name: functest-arm-daily-parameter parameters: - - string: - name: FUNCTEST_SUITE_NAME - default: 'arm-daily' - description: "Daily suite name (Aarch64) to run" + - string: + name: FUNCTEST_MODE + default: 'arm-daily' + description: "Daily suite name (Aarch64) to run" + - parameter: name: functest-suite-parameter parameters: - - choice: - name: FUNCTEST_SUITE_NAME - choices: - - 'connection_check' - - 'api_check' - - 'snaps_health_check' - - 'vping_userdata' - - 'vping_ssh' - - 'tempest_smoke_serial' - - 'rally_sanity' - - 'odl' - - 'odl_netvirt' - - 'onos' - - 'snaps_smoke' - - 'refstack_defcore' - - 'promise' - - 'doctor' - - 'bgpvpn' - - 'parser' - - 'security_scan' - - 'tempest_full_parallel' - - 'rally_full' - - 'cloudify_ims' - - 'cloudify_vrouter' - - 'orchestra_openims' - - 'orchestra_clearwaterims' - - string: - name: TESTCASE_OPTIONS - default: '' - description: 'Additional parameters specific to test case(s)' + - choice: + name: FUNCTEST_MODE + choices: + - 'tier' + - 'testcase' + default: 'tier' + description: "Test case or Tier to be run" + - choice: + name: FUNCTEST_SUITE_NAME + choices: + - 'connection_check' + - 'api_check' + - 'snaps_health_check' + - 'vping_userdata' + - 'vping_ssh' + - 'tempest_smoke_serial' + - 'rally_sanity' + - 'odl' + - 'odl_netvirt' + - 'snaps_smoke' + - 'refstack_defcore' + - 'promise' + - 'doctor' + - 'bgpvpn' + - 'parser' + - 'security_scan' + - 'tempest_full_parallel' + - 'rally_full' + - 'cloudify_ims' + - 'cloudify_vrouter' + - 'orchestra_openims' + - 'orchestra_clearwaterims' + default: 'connection_check' + - choice: + name: FUNCTEST_TIER + choices: + - 'healthcheck' + - 'smoke' + - 'features' + - 'components' + - 'vnf' + default: 'healthcheck' + - string: + name: TESTCASE_OPTIONS + default: '' + description: 'Additional parameters specific to test case(s)' + - parameter: name: functest-parameter parameters: - - string: - name: GS_PATHNAME - default: '{gs-pathname}' - description: "Version directory where the opnfv documents will be stored in gs repository" - - string: - name: FUNCTEST_REPO_DIR - default: "/home/opnfv/repos/functest" - description: "Directory where the Functest repository is cloned" - - string: - name: PUSH_RESULTS_TO_DB - default: "true" - description: "Push the results of all the tests to the resultDB" - - string: - name: CI_DEBUG - default: 'false' - description: "Show debug output information" - - string: - name: RC_FILE_PATH - default: '' - description: "Path to the OS credentials file if given" + - string: + name: GS_PATHNAME + default: '{gs-pathname}' + description: "Version directory where the opnfv documents will be stored in gs repository" + - string: + name: FUNCTEST_REPO_DIR + default: "/home/opnfv/repos/functest" + description: "Directory where the Functest repository is cloned" + - string: + name: PUSH_RESULTS_TO_DB + default: "true" + description: "Push the results of all the tests to the resultDB" + - string: + name: CI_DEBUG + default: 'false' + description: "Show debug output information" + - string: + name: RC_FILE_PATH + default: '' + description: "Path to the OS credentials file if given" ######################## # trigger macros ######################## - trigger: name: 'functest-master' triggers: - - pollscm: - cron: "H 9 * * *" + - pollscm: + cron: "H 9 * * *" ######################## # builder macros ######################## - builder: name: functest-daily-builder builders: - - 'functest-cleanup' - - 'set-functest-env-alpine' - - 'functest-daily' - - 'functest-store-results' + - 'functest-cleanup' + - 'functest-daily' + - 'functest-store-results' + - 'functest-exit' - builder: name: functest-arm-daily-builder builders: - - 'functest-cleanup' - - 'set-functest-env' - - 'functest-arm-daily' - - 'functest-store-results' - - 'functest-exit' + - 'functest-cleanup' + - 'set-functest-env' + - 'functest-arm-daily' + - 'functest-store-results' + - 'functest-exit' - builder: name: functest-suite-builder builders: - - 'functest-cleanup' - - 'set-functest-env' - - 'functest-suite' - - 'functest-store-results' - - 'functest-exit' + - 'functest-cleanup' + - 'set-functest-env-alpine' + - 'functest-suite' + - 'functest-store-results' + - 'functest-exit' - builder: name: functest-alpine-daily-builder builders: - - 'functest-cleanup' - - 'set-functest-env-alpine' - - 'functest-daily' - - 'functest-store-results' + - 'functest-cleanup' + - 'set-functest-env-alpine' + - 'functest-daily' + - 'functest-store-results' + - 'functest-exit' - builder: name: functest-daily builders: - - shell: - !include-raw: ./functest-alpine.sh + # yamllint disable rule:indentation + - shell: + !include-raw: + - ./functest-env-presetup.sh + - ../../utils/fetch_os_creds.sh + - ./functest-alpine.sh +# yamllint enable rule:indentation - builder: name: functest-arm-daily builders: - - shell: - !include-raw: ./functest-loop.sh + - shell: + !include-raw: ./functest-loop.sh - builder: name: functest-suite builders: - - shell: - !include-raw: ./functest-suite.sh + # yamllint disable rule:indentation + - shell: + !include-raw: + - ./functest-alpine.sh +# yamllint enable rule:indentation - builder: name: set-functest-env builders: - - shell: - !include-raw: - - ./functest-env-presetup.sh - - ../../utils/fetch_os_creds.sh - - ./set-functest-env.sh + # yamllint disable rule:indentation + - shell: + !include-raw: + - ./functest-env-presetup.sh + - ../../utils/fetch_os_creds.sh + - ./set-functest-env.sh +# yamllint enable rule:indentation - builder: name: set-functest-env-alpine builders: - - shell: - !include-raw: - - ./functest-env-presetup.sh - - ../../utils/fetch_os_creds.sh + # yamllint disable rule:indentation + - shell: + !include-raw: + - ./functest-env-presetup.sh + - ../../utils/fetch_os_creds.sh +# yamllint enable rule:indentation - builder: name: functest-store-results builders: - - shell: - !include-raw: ../../utils/push-test-logs.sh + - shell: + !include-raw: ../../utils/push-test-logs.sh - builder: name: functest-cleanup builders: - - shell: - !include-raw: ./functest-cleanup.sh + - shell: + !include-raw: ./functest-cleanup.sh - builder: name: functest-exit builders: - - shell: - !include-raw: ./functest-exit.sh + - shell: + !include-raw: ./functest-exit.sh diff --git a/jjb/functest/functest-loop.sh b/jjb/functest/functest-loop.sh index 00a5f135b..a590d9f95 100755 --- a/jjb/functest/functest-loop.sh +++ b/jjb/functest/functest-loop.sh @@ -2,11 +2,7 @@ set +e [[ "$PUSH_RESULTS_TO_DB" == "true" ]] && flags+="-r" -if [ "$BRANCH" == 'master' ]; then - cmd="run_tests -t all ${flags}" -else - cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/run_tests.py -t all ${flags}" -fi +cmd="run_tests -t all ${flags}" container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1) docker exec $container_id $cmd diff --git a/jjb/functest/functest-project-jobs.yml b/jjb/functest/functest-project-jobs.yml index c25e4ab4a..e068a4fee 100644 --- a/jjb/functest/functest-project-jobs.yml +++ b/jjb/functest/functest-project-jobs.yml @@ -1,3 +1,4 @@ +--- ################################################### # All the jobs except verify have been removed! # They will only be enabled on request by projects! @@ -8,27 +9,27 @@ project: 'functest' jobs: - - 'functest-verify-{stream}' - - 'functest-verify-{phase}-{stream}' - - 'functest-docs-upload-{stream}' + - 'functest-verify-{stream}' + - 'functest-verify-{phase}-{stream}' + - 'functest-docs-upload-{stream}' stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false phase: - - 'unit-tests-and-docs': - slave-label: 'opnfv-build-ubuntu' - - 'build-x86_64': - slave-label: 'opnfv-build-ubuntu' - - 'build-aarch64': - slave-label: 'opnfv-build-ubuntu-arm' + - 'unit-tests-and-docs': + slave-label: 'opnfv-build-ubuntu' + - 'build-x86_64': + slave-label: 'opnfv-build-ubuntu' + - 'build-aarch64': + slave-label: 'opnfv-build-ubuntu-arm' - job-template: name: 'functest-verify-{stream}' @@ -38,64 +39,64 @@ project-type: 'multijob' 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: - - 'functest-verify-triggers-macro': - project: '{project}' - branch: '{branch}' + - 'functest-verify-triggers-macro': + project: '{project}' + branch: '{branch}' builders: - - shell: | - #!/bin/bash - # we do nothing here as the main stuff will be done - # in phase jobs - echo "Triggering phase jobs!" - - multijob: - name: 'functest-build-and-unittest' - execution-type: PARALLEL - projects: - - name: 'functest-verify-unit-tests-and-docs-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - git-revision: true - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: false - - name: 'functest-verify-build-x86_64-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - ARCH=x86_64 - git-revision: true - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: false - - name: 'functest-verify-build-aarch64-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - ARCH=aarch64 - git-revision: true - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: false + - shell: | + #!/bin/bash + # we do nothing here as the main stuff will be done + # in phase jobs + echo "Triggering phase jobs!" + - multijob: + name: 'functest-build-and-unittest' + execution-type: PARALLEL + projects: + - name: 'functest-verify-unit-tests-and-docs-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + git-revision: true + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: false + - name: 'functest-verify-build-x86_64-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + ARCH=x86_64 + git-revision: true + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: false + - name: 'functest-verify-build-aarch64-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + ARCH=aarch64 + git-revision: true + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: false - job-template: name: 'functest-verify-{phase}-{stream}' @@ -103,24 +104,24 @@ disabled: '{obj:disabled}' wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 30 + - ssh-agent-wrapper + - build-timeout: + timeout: 30 parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{slave-label}-defaults' scm: - - git-scm-gerrit + - git-scm-gerrit builders: - - 'functest-verify-{phase}-builders-macro' + - 'functest-verify-{phase}-builders-macro' publishers: - - 'functest-verify-{phase}-publishers-macro' + - 'functest-verify-{phase}-publishers-macro' - job-template: name: 'functest-docs-upload-{stream}' @@ -128,21 +129,21 @@ 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 + - git-scm triggers: - - 'functest-docs-upload-triggers-macro': - project: '{project}' - branch: '{branch}' + - 'functest-docs-upload-triggers-macro': + project: '{project}' + branch: '{branch}' builders: - - functest-upload-doc-artifact + - functest-upload-doc-artifact ################################ # job triggers @@ -150,47 +151,48 @@ - trigger: name: 'functest-verify-triggers-macro' 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' + - trigger: name: 'functest-docs-upload-triggers-macro' 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}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**|.gitignore' + - 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}' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**|.gitignore' ################################ # job builders ################################ @@ -198,23 +200,26 @@ - builder: name: 'functest-verify-unit-tests-and-docs-builders-macro' builders: - - shell: | - cd $WORKSPACE && tox + - shell: | + cd $WORKSPACE && tox + - builder: name: 'functest-verify-build-x86_64-builders-macro' builders: - - shell: | - echo "Not activated!" + - shell: | + echo "Not activated!" + - builder: name: 'functest-verify-build-aarch64-builders-macro' builders: - - shell: | - echo "Not activated!" + - shell: | + echo "Not activated!" + - builder: name: 'functest-upload-doc-artifact' builders: - - shell: | - cd $WORKSPACE && tox -edocs + - shell: | + cd $WORKSPACE && tox -edocs wget -O - https://git.opnfv.org/releng/plain/utils/upload-artifact.sh | bash -s "api/_build" "docs" ################################ # job publishers @@ -222,29 +227,31 @@ - publisher: name: 'functest-verify-unit-tests-and-docs-publishers-macro' publishers: - - junit: - results: nosetests.xml - - cobertura: - report-file: "coverage.xml" - only-stable: "true" - health-auto-update: "true" - stability-auto-update: "true" - zoom-coverage-chart: "true" - targets: - - files: - healthy: 10 - unhealthy: 20 - failing: 30 - - method: - healthy: 50 - unhealthy: 40 - failing: 30 - - email-jenkins-admins-on-failure + - junit: + results: nosetests.xml + - cobertura: + report-file: "coverage.xml" + only-stable: "true" + health-auto-update: "true" + stability-auto-update: "true" + zoom-coverage-chart: "true" + targets: + - files: + healthy: 10 + unhealthy: 20 + failing: 30 + - method: + healthy: 50 + unhealthy: 40 + failing: 30 + - email-jenkins-admins-on-failure + - publisher: name: 'functest-verify-build-x86_64-publishers-macro' publishers: - - email-jenkins-admins-on-failure + - email-jenkins-admins-on-failure + - publisher: name: 'functest-verify-build-aarch64-publishers-macro' publishers: - - email-jenkins-admins-on-failure + - email-jenkins-admins-on-failure diff --git a/jjb/functest/functest-suite.sh b/jjb/functest/functest-suite.sh index 9b7f1356c..469a57726 100755 --- a/jjb/functest/functest-suite.sh +++ b/jjb/functest/functest-suite.sh @@ -10,11 +10,7 @@ global_ret_val=0 tests=($(echo $FUNCTEST_SUITE_NAME | tr "," "\n")) for test in ${tests[@]}; do - if [ "$BRANCH" == 'master' ]; then - cmd="run_tests -t $test" - else - cmd="python /home/opnfv/repos/functest/functest/ci/run_tests.py -t $test" - fi + cmd="run_tests -t $test" docker exec $container_id $cmd let global_ret_val+=$? done diff --git a/jjb/functest/functest-weekly-jobs.yml b/jjb/functest/functest-weekly-jobs.yml index 59d24cc87..6826e4151 100644 --- a/jjb/functest/functest-weekly-jobs.yml +++ b/jjb/functest/functest-weekly-jobs.yml @@ -1,3 +1,4 @@ +--- ################################### # job configuration for functest ################################### @@ -6,50 +7,50 @@ project: functest -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- + # ------------------------------- + # BRANCH ANCHORS + # ------------------------------- master: &master - stream: master - branch: '{stream}' - gs-pathname: '' - docker-tag: 'latest' - disabled: false - danube: &danube - stream: danube - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - docker-tag: 'stable' - disabled: true -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# Installers using labels -# CI PODs -# This section should only contain the installers -# that have been switched using labels for slaves -#-------------------------------- + stream: master + branch: '{stream}' + gs-pathname: '' + docker-tag: 'latest' + disabled: false + euphrates: &euphrates + stream: euphrates + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + docker-tag: 'stable' + disabled: false + # ------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ------------------------------- + # Installers using labels + # CI PODs + # This section should only contain the installers + # that have been switched using labels for slaves + # ------------------------------- pod: -# fuel CI PODs - - baremetal: - slave-label: fuel-baremetal - installer: fuel - <<: *master - - virtual: - slave-label: fuel-virtual - installer: fuel - <<: *master - - baremetal: - slave-label: fuel-baremetal - installer: fuel - <<: *danube - - virtual: - slave-label: fuel-virtual - installer: fuel - <<: *danube -#-------------------------------- + # fuel CI PODs + - baremetal: + slave-label: fuel-baremetal + installer: fuel + <<: *master + - virtual: + slave-label: fuel-virtual + installer: fuel + <<: *master + - baremetal: + slave-label: fuel-baremetal + installer: fuel + <<: *euphrates + - virtual: + slave-label: fuel-virtual + installer: fuel + <<: *euphrates + # ------------------------------- jobs: - - 'functest-{installer}-{pod}-weekly-{stream}' + - 'functest-{installer}-{pod}-weekly-{stream}' ################################ # job template @@ -62,66 +63,68 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' wrappers: - - build-name: - name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: '400' - abort: true + - build-name: + name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: '400' + abort: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults' - - string: - name: FUNCTEST_SUITE_NAME - default: 'weekly' - description: "Weekly suite name to run" - - string: - name: DEPLOY_SCENARIO - default: 'os-odl_l2-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull docker image' - - string: - name: CLEAN_DOCKER_IMAGES - default: 'false' - description: 'Remove downloaded docker images (opnfv/functest*:*)' - - functest-parameter: - gs-pathname: '{gs-pathname}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults' + - string: + name: FUNCTEST_SUITE_NAME + default: 'weekly' + description: "Weekly suite name to run" + - string: + name: DEPLOY_SCENARIO + default: 'os-odl_l2-nofeature-ha' + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: 'Tag to pull docker image' + - string: + name: CLEAN_DOCKER_IMAGES + default: 'false' + description: 'Remove downloaded docker images (opnfv/functest*:*)' + - functest-parameter: + gs-pathname: '{gs-pathname}' scm: - - git-scm + - git-scm builders: - - description-setter: - description: "Built on $NODE_NAME" - - 'functest-weekly-builder' + - description-setter: + description: "Built on $NODE_NAME" + - 'functest-weekly-builder' ######################## # builder macros ######################## - builder: name: functest-weekly-builder builders: - - shell: - !include-raw: ./functest-cleanup.sh - - shell: - !include-raw: - - ./functest-env-presetup.sh - - ../../utils/fetch_os_creds.sh - - ./set-functest-env.sh - - shell: - !include-raw: ./functest-loop.sh - - shell: - !include-raw: ../../utils/push-test-logs.sh - - shell: - !include-raw: ./functest-exit.sh + - shell: + !include-raw: ./functest-cleanup.sh + # yamllint disable rule:indentation + - shell: + !include-raw: + - ./functest-env-presetup.sh + - ../../utils/fetch_os_creds.sh + - ./set-functest-env.sh + # yamllint enable rule:indentation + - shell: + !include-raw: ./functest-loop.sh + - shell: + !include-raw: ../../utils/push-test-logs.sh + - shell: + !include-raw: ./functest-exit.sh diff --git a/jjb/functest/set-functest-env.sh b/jjb/functest/set-functest-env.sh index bb79dacbe..b116a8528 100755 --- a/jjb/functest/set-functest-env.sh +++ b/jjb/functest/set-functest-env.sh @@ -106,12 +106,6 @@ if [ $(docker ps | grep "${FUNCTEST_IMAGE}:${DOCKER_TAG}" | wc -l) == 0 ]; then exit 1 fi -if [ "$BRANCH" == 'master' ]; then - cmd="prepare_env start" -else - cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/prepare_env.py start" -fi - - +cmd="prepare_env start" echo "Executing command inside the docker: ${cmd}" docker exec ${container_id} ${cmd} diff --git a/jjb/global/installer-params.yml b/jjb/global/installer-params.yml index 8c01a9f1f..454cee841 100644 --- a/jjb/global/installer-params.yml +++ b/jjb/global/installer-params.yml @@ -48,7 +48,7 @@ description: 'Installer used for deploying OPNFV on this POD' - string: name: EXTERNAL_NETWORK - default: 'admin_floating_net' + default: 'floating_net' description: 'external network for test' - string: name: BRIDGE diff --git a/jjb/global/slave-params.yml b/jjb/global/slave-params.yml index 2acc96fd9..5b94607e5 100644 --- a/jjb/global/slave-params.yml +++ b/jjb/global/slave-params.yml @@ -27,6 +27,28 @@ - lf-pod1 - parameter: + name: 'apex-baremetal-euphrates-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 + +- parameter: name: 'apex-baremetal-danube-defaults' parameters: - label: @@ -73,11 +95,11 @@ - lf-virtual3 - parameter: - name: 'apex-virtual-danube-defaults' + name: 'apex-virtual-euphrates-defaults' parameters: - label: name: SLAVE_LABEL - default: 'apex-virtual-danube' + default: 'apex-virtual-master' - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT @@ -90,24 +112,33 @@ name: SLAVE_NAME description: 'Slave name on Jenkins' allowed-slaves: - - lf-pod3 + - lf-virtual2 + - lf-virtual3 default-slaves: - - lf-pod3 + - lf-virtual2 + - lf-virtual3 - parameter: - name: 'arm-pod5-defaults' + 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: - - arm-pod5 + - lf-pod3 default-slaves: - - arm-pod5 - - string: - name: BRIDGE - default: 'admin7_br0,mgmt7_br0,,public7_br0' - description: 'Pre-existing bridges used by Fuel' + - lf-pod3 - parameter: name: 'lf-pod1-defaults' @@ -129,21 +160,6 @@ description: 'SSH key to use for Apex' - parameter: - name: 'lf-pod2-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - lf-pod2 - default-slaves: - - lf-pod2 - - string: - name: BRIDGE - default: 'pxebr,br-ctl' - description: 'Pre-existing bridges used by Fuel' - -- parameter: name: 'lf-pod3-defaults' parameters: - node: @@ -475,21 +491,6 @@ # 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' - -- parameter: name: 'cengn-pod1-defaults' parameters: - node: @@ -715,7 +716,7 @@ - string: name: BRIDGE default: 'br7' - description: 'pxe bridge for booting of Fuel master' + description: 'pxe bridge for booting of Daisy master' - parameter: name: 'zte-pod3-defaults' @@ -732,9 +733,13 @@ default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' - string: + name: INSTALLER_IP + default: '10.20.0.2' + description: 'IP of the installer' + - string: name: BRIDGE default: 'br0' - description: 'pxe bridge for booting of Fuel master' + description: 'pxe bridge for booting of Daisy master' - parameter: name: zte-pod4-defaults @@ -865,21 +870,6 @@ description: 'SSH key to use for Apex' - 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: BRIDGE - default: ',,,public8_br0' - description: 'Pre-existing bridges used by Fuel' - -- parameter: name: 'intel-virtual6-defaults' parameters: - node: diff --git a/jjb/ipv6/ipv6.yml b/jjb/ipv6/ipv6.yml index cc143bff9..f51c4970b 100644 --- a/jjb/ipv6/ipv6.yml +++ b/jjb/ipv6/ipv6.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/joid/joid-daily-jobs.yml b/jjb/joid/joid-daily-jobs.yml index ac04962e0..569bff293 100644 --- a/jjb/joid/joid-daily-jobs.yml +++ b/jjb/joid/joid-daily-jobs.yml @@ -13,11 +13,11 @@ # ------------------------------- # BRANCH ANCHORS # ------------------------------- - master: &master - stream: master - branch: '{stream}' + euphrates: &euphrates + stream: euphrates + branch: 'stable/{stream}' disabled: false - gs-pathname: '' + gs-pathname: '/{stream}' # ------------------------------- # POD, INSTALLER, AND BRANCH MAPPING # ------------------------------- @@ -26,19 +26,8 @@ pod: - baremetal: slave-label: joid-baremetal - <<: *master - - virtual: - slave-label: joid-virtual - <<: *master - # ------------------------------- - # None-CI PODs - # ------------------------------- - - orange-pod1: - slave-label: orange-pod1 - <<: *master - - cengn-pod1: - slave-label: cengn-pod1 - <<: *master + <<: *euphrates + # ------------------------------- # scenarios # ------------------------------- @@ -53,18 +42,12 @@ auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger' - 'os-odl_l2-nofeature-ha': auto-trigger-name: 'daily-trigger-disabled' - - 'os-onos-nofeature-ha': - auto-trigger-name: 'daily-trigger-disabled' - 'os-odl_l2-nofeature-noha': auto-trigger-name: 'daily-trigger-disabled' - - 'os-onos-nofeature-noha': - auto-trigger-name: 'daily-trigger-disabled' - - 'os-onos-sfc-ha': - auto-trigger-name: 'daily-trigger-disabled' - 'os-ocl-nofeature-ha': - auto-trigger-name: 'daily-trigger-disabled' + auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger' - 'os-ocl-nofeature-noha': - auto-trigger-name: 'daily-trigger-disabled' + auto-trigger-name: 'joid-{scenario}-{pod}-{stream}-trigger' - 'k8-nosdn-nofeature-noha': auto-trigger-name: 'daily-trigger-disabled' - 'k8-nosdn-lb-noha': @@ -98,7 +81,7 @@ - build-blocker: use-build-blocker: true blocking-jobs: - - 'joid-os-.*?-{pod}-daily-.*' + - 'joid-(os|k8)-.*?-{pod}-daily-.*' block-level: 'NODE' wrappers: @@ -151,7 +134,7 @@ build-step-failure-threshold: 'never' failure-threshold: 'never' unstable-threshold: 'FAILURE' -# 1.dovetail only master by now, not sync with A/B/C branches +# 1.dovetail only euphrates by now, not sync with A/B/C branches # 2.here the stream means the SUT stream, dovetail stream is defined in # its own job # 3.only debug testsuite here(includes basic testcase, @@ -234,191 +217,58 @@ ######################## # trigger macros ######################## -# os-nosdn-nofeature-ha trigger - branch: master +# os-nosdn-nofeature-ha trigger - branch: euphrates - trigger: - name: 'joid-os-nosdn-nofeature-ha-baremetal-master-trigger' + name: 'joid-os-nosdn-nofeature-ha-baremetal-euphrates-trigger' triggers: - timed: '5 2 * * *' +# os-odl_l2-nofeature-ha trigger - branch: euphrates - trigger: - name: 'joid-os-nosdn-nofeature-ha-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-nosdn-nofeature-ha-orange-pod1-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-nosdn-nofeature-ha-cengn-pod1-master-trigger' - triggers: - - timed: '' -# os-odl_l2-nofeature-ha trigger - branch: master -- trigger: - name: 'joid-os-odl_l2-nofeature-ha-baremetal-master-trigger' + name: 'joid-os-odl_l2-nofeature-ha-baremetal-euphrates-trigger' triggers: - timed: '5 7 * * *' +# os-nosdn-lxd-noha trigger - branch: euphrates - trigger: - name: 'joid-os-odl_l2-nofeature-ha-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-odl_l2-nofeature-ha-orange-pod1-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-odl_l2-nofeature-ha-cengn-pod1-master-trigger' - triggers: - - timed: '' -# os-onos-nofeature-ha trigger - branch: master -- trigger: - name: 'joid-os-onos-nofeature-ha-baremetal-master-trigger' - triggers: - - timed: '5 12 * * *' -- trigger: - name: 'joid-os-onos-nofeature-ha-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-onos-nofeature-ha-orange-pod1-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-onos-nofeature-ha-cengn-pod1-master-trigger' - triggers: - - timed: '' -# os-onos-sfc-ha trigger - branch: master -- trigger: - name: 'joid-os-onos-sfc-ha-baremetal-master-trigger' - triggers: - - timed: '5 17 * * *' -- trigger: - name: 'joid-os-onos-sfc-ha-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-onos-sfc-ha-orange-pod1-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-onos-sfc-ha-cengn-pod1-master-trigger' - triggers: - - timed: '' -# os-nosdn-lxd-noha trigger - branch: master -- trigger: - name: 'joid-os-nosdn-lxd-noha-baremetal-master-trigger' + name: 'joid-os-nosdn-lxd-noha-baremetal-euphrates-trigger' triggers: - timed: '5 22 * * *' +# os-nosdn-lxd-ha trigger - branch: euphrates - trigger: - name: 'joid-os-nosdn-lxd-noha-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-nosdn-lxd-noha-orange-pod1-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-nosdn-lxd-noha-cengn-pod1-master-trigger' - triggers: - - timed: '' -# os-nosdn-lxd-ha trigger - branch: master -- trigger: - name: 'joid-os-nosdn-lxd-ha-baremetal-master-trigger' + name: 'joid-os-nosdn-lxd-ha-baremetal-euphrates-trigger' triggers: - timed: '5 10 * * *' +# os-nosdn-nofeature-noha trigger - branch: euphrates - trigger: - name: 'joid-os-nosdn-lxd-ha-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-nosdn-lxd-ha-orange-pod1-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-nosdn-lxd-ha-cengn-pod1-master-trigger' - triggers: - - timed: '' -# os-nosdn-nofeature-noha trigger - branch: master -- trigger: - name: 'joid-os-nosdn-nofeature-noha-baremetal-master-trigger' + name: 'joid-os-nosdn-nofeature-noha-baremetal-euphrates-trigger' triggers: - timed: '5 4 * * *' +# k8-nosdn-nofeature-noha trigger - branch: euphrates - trigger: - name: 'joid-os-nosdn-nofeature-noha-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-nosdn-nofeature-noha-orange-pod1-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-nosdn-nofeature-noha-cengn-pod1-master-trigger' - triggers: - - timed: '' -# k8-nosdn-nofeature-noha trigger - branch: master -- trigger: - name: 'joid-k8-nosdn-nofeature-noha-baremetal-master-trigger' + name: 'joid-k8-nosdn-nofeature-noha-baremetal-euphrates-trigger' triggers: - timed: '5 15 * * *' +# k8-nosdn-lb-noha trigger - branch: euphrates - trigger: - name: 'joid-k8-nosdn-nofeature-noha-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-k8-nosdn-nofeature-noha-orange-pod1-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-k8-nosdn-nofeature-noha-cengn-pod1-master-trigger' - triggers: - - timed: '' -# k8-nosdn-lb-noha trigger - branch: master -- trigger: - name: 'joid-k8-nosdn-lb-noha-baremetal-master-trigger' + name: 'joid-k8-nosdn-lb-noha-baremetal-euphrates-trigger' triggers: - timed: '5 20 * * *' +# k8-ovn-lb-noha trigger - branch: euphrates - trigger: - name: 'joid-k8-nosdn-lb-noha-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-k8-nosdn-lb-noha-orange-pod1-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-k8-nosdn-lb-noha-cengn-pod1-master-trigger' - triggers: - - timed: '' -# k8-ovn-lb-noha trigger - branch: master -- trigger: - name: 'joid-k8-ovn-lb-noha-baremetal-master-trigger' + name: 'joid-k8-ovn-lb-noha-baremetal-euphrates-trigger' triggers: - timed: '5 17 * * *' +# os-nosdn-openbaton-ha trigger - branch: euphrates - trigger: - name: 'joid-k8-ovn-lb-noha-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-k8-ovn-lb-noha-orange-pod1-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-k8-ovn-lb-noha-cengn-pod1-master-trigger' - triggers: - - timed: '' - -# os-nosdn-openbaton-ha trigger - branch: master -- trigger: - name: 'joid-os-nosdn-openbaton-ha-baremetal-master-trigger' + name: 'joid-os-nosdn-openbaton-ha-baremetal-euphrates-trigger' triggers: - timed: '5 25 * * *' +# os-ocl-nofeature-ha trigger - branch: euphrates - trigger: - name: 'joid-os-nosdn-openbaton-ha-virtual-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'joid-os-nosdn-openbaton-ha-orange-pod1-master-trigger' + name: 'joid-os-ocl-nofeature-ha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '5 13 * * *' +# os-ocl-nofeature-ha trigger - branch: euphrates - trigger: - name: 'joid-os-nosdn-openbaton-ha-cengn-pod1-master-trigger' + name: 'joid-os-ocl-nofeature-noha-baremetal-euphrates-trigger' triggers: - - timed: '' + - timed: '5 17 * * *' diff --git a/jjb/joid/joid-verify-jobs.yml b/jjb/joid/joid-verify-jobs.yml index 3b30cb6c9..53bc3f38a 100644 --- a/jjb/joid/joid-verify-jobs.yml +++ b/jjb/joid/joid-verify-jobs.yml @@ -13,7 +13,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/kvmfornfv/kvmfornfv.yml b/jjb/kvmfornfv/kvmfornfv.yml index 5aafb0947..ad497e97d 100644 --- a/jjb/kvmfornfv/kvmfornfv.yml +++ b/jjb/kvmfornfv/kvmfornfv.yml @@ -9,7 +9,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: true diff --git a/jjb/models/models.yml b/jjb/models/models.yml index 3a9f4c614..b317c05f2 100644 --- a/jjb/models/models.yml +++ b/jjb/models/models.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/moon/moon.yml b/jjb/moon/moon.yml index 573b098c9..d254129e1 100644 --- a/jjb/moon/moon.yml +++ b/jjb/moon/moon.yml @@ -11,6 +11,9 @@ - master: branch: '{stream}' gs-pathname: '' + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' - job-template: name: 'moon-verify-{stream}' @@ -49,7 +52,7 @@ pattern: 'docs/**|.gitignore' builders: - - shell: + - shell: | #!/bin/bash echo "launch Moon unit tests" nosetest $WORKSPACE/keystone-moon/keystone/tests/moon/unit diff --git a/jjb/octopus/octopus.yml b/jjb/octopus/octopus.yml index c06fa89e8..fb6263d81 100644 --- a/jjb/octopus/octopus.yml +++ b/jjb/octopus/octopus.yml @@ -1,3 +1,4 @@ +--- ################################ # job configuration for Octopus ################################ @@ -7,17 +8,17 @@ project: '{name}' jobs: - - 'octopus-verify-{stream}' + - 'octopus-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 + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false - job-template: name: 'octopus-verify-{stream}' @@ -25,38 +26,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/onosfw/onosfw.yml b/jjb/onosfw/onosfw.yml index 6029204d7..58a50bd57 100644 --- a/jjb/onosfw/onosfw.yml +++ b/jjb/onosfw/onosfw.yml @@ -14,7 +14,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/opera/opera-daily-jobs.yml b/jjb/opera/opera-daily-jobs.yml index d0dd0525a..5d7526bba 100644 --- a/jjb/opera/opera-daily-jobs.yml +++ b/jjb/opera/opera-daily-jobs.yml @@ -92,6 +92,7 @@ current-parameters: false predefined-parameters: | DEPLOY_SCENARIO=os-nosdn-openo-ha + FUNCTEST_MODE=testcase FUNCTEST_SUITE_NAME=opera_vims node-parameters: true kill-phase-on: NEVER diff --git a/jjb/opnfvdocs/opnfvdocs.yml b/jjb/opnfvdocs/opnfvdocs.yml index 6f63db96b..95bc8a9dd 100644 --- a/jjb/opnfvdocs/opnfvdocs.yml +++ b/jjb/opnfvdocs/opnfvdocs.yml @@ -18,7 +18,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/orchestra/orchestra-daily-jobs.yml b/jjb/orchestra/orchestra-daily-jobs.yml index 74c997cad..7c2deaec4 100644 --- a/jjb/orchestra/orchestra-daily-jobs.yml +++ b/jjb/orchestra/orchestra-daily-jobs.yml @@ -93,6 +93,7 @@ current-parameters: false predefined-parameters: | DEPLOY_SCENARIO=os-nosdn-openbaton-ha + FUNCTEST_MODE=testcase FUNCTEST_SUITE_NAME=orchestra_ims node-parameters: true kill-phase-on: NEVER diff --git a/jjb/ovn4nfv/ovn4nfv-daily-jobs.yml b/jjb/ovn4nfv/ovn4nfv-daily-jobs.yml index a4c5865c0..ca4cfeede 100644 --- a/jjb/ovn4nfv/ovn4nfv-daily-jobs.yml +++ b/jjb/ovn4nfv/ovn4nfv-daily-jobs.yml @@ -81,6 +81,7 @@ current-parameters: false predefined-parameters: | DEPLOY_SCENARIO=os-ovn-nofeature-ha + FUNCTEST_MODE=testcase FUNCTEST_SUITE_NAME=ovn4nfv_test_suite node-parameters: true kill-phase-on: NEVER diff --git a/jjb/ovn4nfv/ovn4nfv-project-jobs.yml b/jjb/ovn4nfv/ovn4nfv-project-jobs.yml index 8c82cac5e..b5e078ca6 100644 --- a/jjb/ovn4nfv/ovn4nfv-project-jobs.yml +++ b/jjb/ovn4nfv/ovn4nfv-project-jobs.yml @@ -10,6 +10,10 @@ branch: '{stream}' gs-pathname: '' disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false jobs: - 'ovn4nfv-build-{stream}' diff --git a/jjb/ovsnfv/ovsnfv.yml b/jjb/ovsnfv/ovsnfv.yml index 4a72ac18f..ac2c4497f 100644 --- a/jjb/ovsnfv/ovsnfv.yml +++ b/jjb/ovsnfv/ovsnfv.yml @@ -14,7 +14,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/parser/parser.yml b/jjb/parser/parser.yml index e9a4c9dc7..87544196a 100644 --- a/jjb/parser/parser.yml +++ b/jjb/parser/parser.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/pharos/pharos.yml b/jjb/pharos/pharos.yml index 1009d6497..0c104c0c0 100644 --- a/jjb/pharos/pharos.yml +++ b/jjb/pharos/pharos.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/prediction/prediction.yml b/jjb/prediction/prediction.yml index 09f9700b7..5e6e834e8 100644 --- a/jjb/prediction/prediction.yml +++ b/jjb/prediction/prediction.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/promise/promise.yml b/jjb/promise/promise.yml index 3e328dc84..3f1d9e23b 100644 --- a/jjb/promise/promise.yml +++ b/jjb/promise/promise.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/qtip/qtip-experimental-jobs.yml b/jjb/qtip/qtip-experimental-jobs.yml index 23e441a1c..4c336d1d5 100644 --- a/jjb/qtip/qtip-experimental-jobs.yml +++ b/jjb/qtip/qtip-experimental-jobs.yml @@ -13,6 +13,10 @@ branch: '{stream}' gs-pathname: '' disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false ################################ ## job templates diff --git a/jjb/qtip/qtip-validate-jobs.yml b/jjb/qtip/qtip-validate-jobs.yml index b63782b8c..42240ed95 100644 --- a/jjb/qtip/qtip-validate-jobs.yml +++ b/jjb/qtip/qtip-validate-jobs.yml @@ -14,6 +14,11 @@ branch: '{stream}' gs-pathname: '' docker-tag: latest + euphrates: &euphrates + stream: euphrates + branch: 'stable/{stream}' + gs-pathname: '{stream}' + docker-tag: 'stable' # ------------------------------- # JOB VARIABLES @@ -27,6 +32,14 @@ installer: apex pod: zte-pod4 <<: *master + - compute: + installer: apex + pod: zte-pod4 + <<: *euphrates + - storage: + installer: apex + pod: zte-pod4 + <<: *euphrates # ------------------------------- # JOB LIST @@ -40,6 +53,7 @@ - job-template: name: 'qtip-{qpi}-{installer}-{stream}' disabled: false + parameters: - project-parameter: project: '{project}' @@ -60,9 +74,21 @@ - string: name: TEST_SUITE default: '{qpi}' + - string: + name: TESTAPI_URL + default: 'http://testresults.opnfv.org/test/api/v1' + - string: + name: OPNFV_RELEASE + default: '{stream}' scm: - git-scm + wrappers: + - timeout: + timeout: 15 + abort: true + - timestamps + triggers: - 'qtip-daily' diff --git a/jjb/qtip/qtip-verify-jobs.yml b/jjb/qtip/qtip-verify-jobs.yml index 26a97066f..047d7f2be 100644 --- a/jjb/qtip/qtip-verify-jobs.yml +++ b/jjb/qtip/qtip-verify-jobs.yml @@ -8,14 +8,14 @@ project: qtip jobs: - 'qtip-verify-{stream}' - - 'qtip-review-notebook-{stream}' - - 'qtip-merge-{stream}' + - 'qtip-verify-notebook-{stream}' + - 'qtip-merged-notebook-{stream}' stream: - master: branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false @@ -69,7 +69,7 @@ # upload juypter notebook to artifacts for review - job-template: - name: 'qtip-review-notebook-{stream}' + name: 'qtip-verify-notebook-{stream}' disabled: '{obj:disabled}' @@ -104,14 +104,14 @@ disable-strict-forbidden-file-verification: 'true' file-paths: - compare-type: ANT - pattern: 'examples/**' + pattern: '**/*.ipynb' builders: - upload-under-review-notebooks-to-opnfv-artifacts - report-build-result-to-gerrit - job-template: - name: 'qtip-merge-{stream}' + name: 'qtip-merged-notebook-{stream}' disabled: '{obj:disabled}' @@ -146,7 +146,7 @@ branch-pattern: '**/{branch}' file-paths: - compare-type: ANT - pattern: examples/** + pattern: '**/*ipynb' builders: - remove-old-docs-from-opnfv-artifacts @@ -178,7 +178,6 @@ export PATH=$PATH:/usr/local/bin/ [[ $GERRIT_CHANGE_NUMBER =~ .+ ]] - [[ -d examples ]] || exit 0 echo echo "###########################" @@ -190,8 +189,9 @@ gs_path="$gs_base/$GERRIT_CHANGE_NUMBER" local_path="upload/$GERRIT_CHANGE_NUMBER" - mkdir -p upload - cp -r examples "$local_path" + mkdir -p $local_path + + git diff HEAD~1 --name-only | grep -E ".+\.ipynb$" | xargs -I '{}' cp '{}' $local_path gsutil -m cp -r "$local_path" "gs://$gs_base/" echo "Document link(s):" >> gerrit_comment.txt diff --git a/jjb/releng/artifact-cleanup.yml b/jjb/releng/artifact-cleanup.yml index 2d0205660..2a250618c 100644 --- a/jjb/releng/artifact-cleanup.yml +++ b/jjb/releng/artifact-cleanup.yml @@ -1,15 +1,16 @@ +--- - project: name: releng-artifact-cleanup project: 'releng' jobs: - - 'releng-artifact-cleanup-daily-{stream}' + - 'releng-artifact-cleanup-daily-{stream}' stream: - - master: - branch: '{stream}' - gs-pathname: '' + - master: + branch: '{stream}' + gs-pathname: '' - job-template: @@ -25,16 +26,16 @@ disabled: false parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' + - project-parameter: + project: '{project}' + branch: '{branch}' scm: - - git-scm + - git-scm triggers: - - timed: 'H H * * *' + - timed: 'H H * * *' builders: - - shell: | - $WORKSPACE/utils/retention_script.sh + - shell: | + $WORKSPACE/utils/retention_script.sh diff --git a/jjb/releng/automate.yml b/jjb/releng/automate.yml index 908e9a196..de7fcd6c0 100644 --- a/jjb/releng/automate.yml +++ b/jjb/releng/automate.yml @@ -1,22 +1,23 @@ +--- - project: name: utils-automate stream: - - master: - branch: '{stream}' + - master: + branch: '{stream}' module: - - 'testapi' - - 'reporting' + - 'testapi' + - 'reporting' phase: - - 'docker-deploy': - slave-label: 'testresults' - - 'generate-doc' + - 'docker-deploy': + slave-label: 'testresults' + - 'generate-doc' jobs: - - '{module}-automate-{stream}' - - '{module}-automate-{phase}-{stream}' - - '{module}-verify-{stream}' + - '{module}-automate-{stream}' + - '{module}-automate-{phase}-{stream}' + - '{module}-verify-{stream}' project: 'releng' @@ -24,73 +25,73 @@ name: 'testapi-mongodb-backup' parameters: - - label: - name: SLAVE_LABEL - default: 'testresults' - description: 'Slave label on Jenkins' - - project-parameter: - project: 'releng' - branch: 'master' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/releng - description: 'Git URL to use on this Jenkins Slave' + - label: + name: SLAVE_LABEL + default: 'testresults' + description: 'Slave label on Jenkins' + - project-parameter: + project: 'releng' + branch: 'master' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/releng + description: 'Git URL to use on this Jenkins Slave' scm: - - git-scm + - git-scm triggers: - - timed: '@weekly' + - timed: '@weekly' builders: - - mongodb-backup + - mongodb-backup - job-template: name: '{module}-verify-{stream}' 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}' - file-paths: - - compare-type: 'ANT' - pattern: 'utils/test/{module}/**' + - 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: 'utils/test/{module}/**' builders: - - shell: | - cd ./utils/test/{module}/ - tox - if [ -e *.xml ];then - cp *.xml $WORKSPACE - fi + - shell: | + cd ./utils/test/{module}/ + tox + if [ -e *.xml ];then + cp *.xml $WORKSPACE + fi publishers: - - publish-coverage - - email-jenkins-admins-on-failure + - publish-coverage + - email-jenkins-admins-on-failure - job-template: name: '{module}-automate-{stream}' @@ -98,108 +99,108 @@ project-type: multijob properties: - - throttle: - enabled: true - max-total: 1 - max-per-node: 1 - option: 'project' + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + option: 'project' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: DOCKER_TAG - default: 'latest' - description: 'Tag name for {module} docker image' - - string: - name: MODULE_NAME - default: '{module}' - description: "Name of the module" - - 'opnfv-build-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - string: + name: DOCKER_TAG + default: 'latest' + description: 'Tag name for {module} docker image' + - string: + name: MODULE_NAME + default: '{module}' + description: "Name of the module" + - 'opnfv-build-defaults' scm: - - git-scm + - git-scm wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 360 + fail: true 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: 'utils/test/{module}/**' + - 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: 'utils/test/{module}/**' builders: - - description-setter: - description: "Built on $NODE_NAME" - - docker-update - - multijob: - name: docker-deploy - condition: SUCCESSFUL - projects: - - name: '{module}-automate-docker-deploy-{stream}' - current-parameters: false - predefined-parameters: | - GIT_BASE=$GIT_BASE - node-label-name: SLAVE_LABEL - node-label: testresults - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: generate-doc - condition: SUCCESSFUL - projects: - - name: '{module}-automate-generate-doc-{stream}' - current-parameters: true - kill-phase-on: FAILURE - abort-all-job: true + - description-setter: + description: "Built on $NODE_NAME" + - docker-update + - multijob: + name: docker-deploy + condition: SUCCESSFUL + projects: + - name: '{module}-automate-docker-deploy-{stream}' + current-parameters: false + predefined-parameters: | + GIT_BASE=$GIT_BASE + node-label-name: SLAVE_LABEL + node-label: testresults + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: generate-doc + condition: SUCCESSFUL + projects: + - name: '{module}-automate-generate-doc-{stream}' + current-parameters: true + kill-phase-on: FAILURE + abort-all-job: true publishers: - - 'email-publisher' - - email-jenkins-admins-on-failure + - 'email-publisher' + - email-jenkins-admins-on-failure - job-template: name: '{module}-automate-{phase}-{stream}' properties: - - throttle: - enabled: true - max-per-node: 1 - option: 'project' + - throttle: + enabled: true + max-per-node: 1 + option: 'project' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' + - project-parameter: + project: '{project}' + branch: '{branch}' wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 120 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 120 + fail: true scm: - - git-scm + - git-scm builders: - - description-setter: - description: "Built on $NODE_NAME" - - '{module}-automate-{phase}-macro' + - description-setter: + description: "Built on $NODE_NAME" + - '{module}-automate-{phase}-macro' ################################ # job builders @@ -207,53 +208,53 @@ - builder: name: 'docker-update' builders: - - shell: - !include-raw: ./docker-update.sh + - shell: + !include-raw: ./docker-update.sh - builder: name: 'testapi-automate-generate-doc-macro' builders: - - 'testapi-doc-build' - - 'upload-doc-artifact' + - 'testapi-doc-build' + - 'upload-doc-artifact' - builder: name: 'testapi-doc-build' builders: - - shell: | - bash ./utils/test/testapi/htmlize/doc-build.sh + - shell: | + bash ./jjb/releng/htmlize/doc-build.sh - builder: name: 'upload-doc-artifact' builders: - - shell: | - bash ./utils/test/testapi/htmlize/push-doc-artifact.sh + - shell: | + bash ./jjb/releng/htmlize/push-doc-artifact.sh - builder: name: 'reporting-automate-generate-doc-macro' builders: - - shell: echo "To Be Done" + - shell: echo "To Be Done" - builder: name: 'testapi-automate-docker-deploy-macro' builders: - - shell: | - sudo bash ./jjb/releng/docker-deploy.sh "sudo docker run -dti --name testapi -p 8082:8000 - -e mongodb_url=mongodb://172.17.0.1:27017 - -e base_url=http://testresults.opnfv.org/test opnfv/testapi" \ - "http://testresults.opnfv.org/test/" "testapi" + - shell: | + sudo bash ./jjb/releng/docker-deploy.sh "sudo docker run -dti --name testapi -p 8082:8000 + -e mongodb_url=mongodb://172.17.0.1:27017 + -e base_url=http://testresults.opnfv.org/test opnfv/testapi" \ + "http://testresults.opnfv.org/test/" "testapi" - builder: name: 'reporting-automate-docker-deploy-macro' builders: - - shell: | - sudo bash ./jjb/releng/docker-deploy.sh "sudo docker run -itd --name reporting -p 8084:8000 opnfv/reporting" \ - "http://testresults.opnfv.org/reporting/index.html" "reporting" + - shell: | + sudo bash ./jjb/releng/docker-deploy.sh "sudo docker run -itd --name reporting -p 8084:8000 opnfv/reporting" \ + "http://testresults.opnfv.org/reporting/index.html" "reporting" - builder: name: mongodb-backup builders: - - shell: | - bash ./jjb/releng/testapi-backup-mongodb.sh + - shell: | + bash ./jjb/releng/testapi-backup-mongodb.sh ################################ # job publishers @@ -262,7 +263,7 @@ - publisher: name: 'email-publisher' publishers: - - email: - recipients: rohitsakala@gmail.com feng.xiaowei@zte.com.cn morgan.richomme@orange.com - notify-every-unstable-build: false - send-to-individuals: true + - email: + recipients: rohitsakala@gmail.com feng.xiaowei@zte.com.cn morgan.richomme@orange.com + notify-every-unstable-build: false + send-to-individuals: true diff --git a/jjb/releng/htmlize/doc-build.sh b/jjb/releng/htmlize/doc-build.sh new file mode 100644 index 000000000..33560ceea --- /dev/null +++ b/jjb/releng/htmlize/doc-build.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +set -o errexit + +# Create virtual environment +virtualenv $WORKSPACE/testapi_venv +source $WORKSPACE/testapi_venv/bin/activate + +# Swgger Codegen Tool +url="http://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.2.1/swagger-codegen-cli-2.2.1.jar" + +# Check for jar file locally and in the repo +if [ ! -f swagger-codegen-cli.jar ]; +then + wget http://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.2.1/swagger-codegen-cli-2.2.1.jar -O swagger-codegen-cli.jar +fi + +# Install Pre-requistics +pip install requests + +python ./utils/test/testapi/htmlize/htmlize.py -o ${WORKSPACE}/ diff --git a/jjb/releng/htmlize/htmlize.py b/jjb/releng/htmlize/htmlize.py new file mode 100644 index 000000000..da6a6cf91 --- /dev/null +++ b/jjb/releng/htmlize/htmlize.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python + +# 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 + +import argparse +import requests +import json +import os + + +def main(args): + + # Merging two specs + api_response = requests.get(args.api_declaration_url) + api_response = json.loads(api_response.content) + resource_response = requests.get(args.resource_listing_url) + resource_response = json.loads(resource_response.content) + resource_response['models'] = api_response['models'] + resource_response['apis'] = api_response['apis'] + + # Storing the swagger specs + with open('specs.json', 'w') as outfile: + json.dump(resource_response, outfile) + + # Generating html page + cmd = 'java -jar swagger-codegen-cli.jar generate \ + -i specs.json -l html2 -o %s' % (args.output_directory) + if os.system(cmd) == 0: + exit(0) + else: + exit(1) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Create \ + Swagger Spec documentation') + parser.add_argument('-ru', '--resource-listing-url', + type=str, + required=False, + default=('http://testresults.opnfv.org' + '/test/swagger/resources.json'), + help='Resource Listing Spec File') + parser.add_argument('-au', '--api-declaration-url', + type=str, + required=False, + default=('http://testresults.opnfv.org' + '/test/swagger/APIs'), + help='API Declaration Spec File') + parser.add_argument('-o', '--output-directory', + required=True, + default='./', + help='Output Directory where the \ + file should be stored') + main(parser.parse_args()) diff --git a/jjb/releng/htmlize/push-doc-artifact.sh b/jjb/releng/htmlize/push-doc-artifact.sh new file mode 100644 index 000000000..4cf1988b0 --- /dev/null +++ b/jjb/releng/htmlize/push-doc-artifact.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -e +set -o pipefail + +export PATH=$PATH:/usr/local/bin/ + +project=$PROJECT +workspace=$WORKSPACE +artifact_dir="$project/docs" + +set +e +gsutil&>/dev/null +if [ $? != 0 ]; then + echo "Not possible to push results to artifact: gsutil not installed" + exit 1 +else + gsutil ls gs://artifacts.opnfv.org/"$project"/ &>/dev/null + if [ $? != 0 ]; then + echo "Not possible to push results to artifact: gsutil not installed." + exit 1 + else + echo "Uploading document to artifact $artifact_dir" + gsutil cp "$workspace"/index.html gs://artifacts.opnfv.org/"$artifact_dir"/testapi.html >/dev/null 2>&1 + echo "Document can be found at http://artifacts.opnfv.org/releng/docs/testapi.html" + fi +fi diff --git a/jjb/releng/opnfv-docker-arm.yml b/jjb/releng/opnfv-docker-arm.yml index 842d4967d..b488592db 100644 --- a/jjb/releng/opnfv-docker-arm.yml +++ b/jjb/releng/opnfv-docker-arm.yml @@ -1,3 +1,4 @@ +--- ############################################## # job configuration for docker build and push ############################################## @@ -7,93 +8,211 @@ name: opnfv-docker-arm master: &master - stream: master - branch: '{stream}' - disabled: false - danube: &danube - stream: danube - branch: 'stable/{stream}' - disabled: false + stream: master + branch: '{stream}' + disabled: false + euphrates: &euphrates + stream: euphrates + branch: 'stable/{stream}' + disabled: false functest-arm-receivers: &functest-arm-receivers - receivers: > - cristina.pauna@enea.com - alexandru.avadanii@enea.com + receivers: > + cristina.pauna@enea.com + alexandru.avadanii@enea.com + delia.popescu@enea.com dovetail-arm-receivers: &dovetail-arm-receivers - receivers: > - cristina.pauna@enea.com - alexandru.avadanii@enea.com - alexandru.nemes@enea.com + receivers: > + cristina.pauna@enea.com + alexandru.avadanii@enea.com + alexandru.nemes@enea.com + storperf-arm-receivers: &storperf-arm-receivers + receivers: > + cristina.pauna@enea.com + alexandru.avadanii@enea.com + mark.beierl@emc.com yardstick-arm-receivers: &yardstick-arm-receivers - receivers: > - cristina.pauna@enea.com - alexandru.avadanii@enea.com - alexandru.nemes@enea.com - catalina.focsa@enea.com + receivers: > + cristina.pauna@enea.com + alexandru.avadanii@enea.com + alexandru.nemes@enea.com + catalina.focsa@enea.com + delia.popescu@enea.com other-receivers: &other-receivers - receivers: '' + receivers: '' - project: - # projects with jobs for master - - 'functest': - <<: *master - <<: *functest-arm-receivers - - 'dovetail': - <<: *master - <<: *dovetail-arm-receivers - - 'yardstick': - <<: *master - <<: *yardstick-arm-receivers - # projects with jobs for stable + dockerfile: "Dockerfile.aarch64" + dockerdir: "docker" + docker_repo_name: "opnfv/{project}_aarch64" + arch_tag: "" + # yamllint disable rule:key-duplicates + dockerrepo: + # projects with jobs for master + - 'functest': + project: 'functest' + <<: *master + <<: *functest-arm-receivers + - 'dovetail': + project: 'dovetail' + <<: *master + <<: *dovetail-arm-receivers + - 'storperf-master': + project: 'storperf' + dockerdir: 'docker/storperf-master' + dockerfile: 'Dockerfile' + docker_repo_name: 'opnfv/storperf-master' + arch_tag: 'aarch64' + <<: *master + <<: *storperf-arm-receivers + - 'storperf-graphite': + project: 'storperf' + dockerdir: 'docker/storperf-graphite' + dockerfile: 'Dockerfile' + docker_repo_name: 'opnfv/storperf-graphite' + arch_tag: 'aarch64' + <<: *master + <<: *storperf-arm-receivers + - 'storperf-httpfrontend': + project: 'storperf' + dockerdir: 'docker/storperf-httpfrontend' + dockerfile: 'Dockerfile' + docker_repo_name: 'opnfv/storperf-httpfrontend' + arch_tag: 'aarch64' + <<: *master + <<: *storperf-arm-receivers + - 'storperf-reporting': + project: 'storperf' + dockerdir: 'docker/storperf-reporting' + dockerfile: 'Dockerfile' + docker_repo_name: 'opnfv/storperf-reporting' + arch_tag: 'aarch64' + <<: *master + <<: *storperf-arm-receivers + - 'storperf-swaggerui': + project: 'storperf' + dockerdir: 'docker/storperf-swaggerui' + dockerfile: 'Dockerfile' + docker_repo_name: 'opnfv/storperf-swaggerui' + arch_tag: 'aarch64' + <<: *master + <<: *storperf-arm-receivers + - 'yardstick': + project: 'yardstick' + <<: *master + <<: *yardstick-arm-receivers + # projects with jobs for stable/euphrates + - 'functest': + project: 'functest' + <<: *euphrates + <<: *functest-arm-receivers + - 'dovetail': + project: 'dovetail' + <<: *euphrates + <<: *dovetail-arm-receivers + - 'storperf-master': + project: 'storperf' + dockerdir: 'docker/storperf-master' + dockerfile: 'Dockerfile' + docker_repo_name: 'opnfv/storperf-master' + arch_tag: 'aarch64' + <<: *euphrates + <<: *storperf-arm-receivers + - 'storperf-graphite': + project: 'storperf' + dockerdir: 'docker/storperf-graphite' + dockerfile: 'Dockerfile' + docker_repo_name: 'opnfv/storperf-graphite' + arch_tag: 'aarch64' + <<: *euphrates + <<: *storperf-arm-receivers + - 'storperf-httpfrontend': + project: 'storperf' + dockerdir: 'docker/storperf-httpfrontend' + dockerfile: 'Dockerfile' + docker_repo_name: 'opnfv/storperf-httpfrontend' + arch_tag: 'aarch64' + <<: *euphrates + <<: *storperf-arm-receivers + - 'storperf-reporting': + project: 'storperf' + dockerdir: 'docker/storperf-reporting' + dockerfile: 'Dockerfile' + docker_repo_name: 'opnfv/storperf-reporting' + arch_tag: 'aarch64' + <<: *euphrates + <<: *storperf-arm-receivers + - 'storperf-swaggerui': + project: 'storperf' + dockerdir: 'docker/storperf-swaggerui' + dockerfile: 'Dockerfile' + docker_repo_name: 'opnfv/storperf-swaggerui' + arch_tag: 'aarch64' + <<: *euphrates + <<: *storperf-arm-receivers + - 'yardstick': + project: 'yardstick' + <<: *euphrates + <<: *yardstick-arm-receivers + + # yamllint enable rule:key-duplicates jobs: - - '{project}-docker-build-arm-push-{stream}' + - '{dockerrepo}-docker-build-arm-push-{stream}' ######################## # job templates ######################## - job-template: - name: '{project}-docker-build-arm-push-{stream}' + name: '{dockerrepo}-docker-build-arm-push-{stream}' disabled: '{obj:disabled}' parameters: ¶meters - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-arm-defaults' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: DOCKER_REPO_NAME - default: "opnfv/{project}_aarch64" - description: "Dockerhub repo to be pushed to." - - string: - name: RELEASE_VERSION - default: "" - description: "Release version, e.g. 1.0, 2.0, 3.0" - - string: - name: DOCKER_DIR - default: "docker" - description: "Directory containing files needed by the Dockerfile" - - string: - name: DOCKERFILE - default: "Dockerfile.aarch64" - description: "Dockerfile to use for creating the image." + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-ubuntu-arm-defaults' + - string: + name: PUSH_IMAGE + default: "true" + description: "To enable/disable pushing the image to Dockerhub." + - string: + name: DOCKER_REPO_NAME + default: "{docker_repo_name}" + description: "Dockerhub repo to be pushed to." + - string: + name: RELEASE_VERSION + default: "" + description: "Release version, e.g. 1.0, 2.0, 3.0" + - string: + name: DOCKER_DIR + default: "{dockerdir}" + description: "Directory containing files needed by the Dockerfile" + - string: + name: DOCKERFILE + default: "{dockerfile}" + description: "Dockerfile to use for creating the image." + - string: + name: ARCH_TAG + default: "{arch_tag}" + description: "If set, this value will be added to the docker image tag" + + properties: + - throttle: + max-per-node: 1 + option: 'project' scm: - - git-scm + - git-scm builders: &builders - - shell: - !include-raw-escape: ./opnfv-docker.sh + - shell: + !include-raw-escape: ./opnfv-docker.sh triggers: - - pollscm: - cron: "*/30 * * * *" + - pollscm: + cron: "*/30 * * * *" publishers: - - email: - recipients: '{receivers}' - - email-jenkins-admins-on-failure + - email: + recipients: '{receivers}' + - email-jenkins-admins-on-failure diff --git a/jjb/releng/opnfv-docker-custom.yml b/jjb/releng/opnfv-docker-custom.yml new file mode 100644 index 000000000..e564ab5ef --- /dev/null +++ b/jjb/releng/opnfv-docker-custom.yml @@ -0,0 +1,111 @@ +--- +######################## +# Job configuration for opnfv-docker-custom +######################## +- project: + + name: opnfv-docker-custom + + project: '{name}' + + jobs: + - 'opnfv-docker-custom-verify-{stream}' + - 'opnfv-docker-custom-merge-{stream}' + + stream: + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - danube: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + +######################## +# job templates +######################## + +- job-template: + name: 'opnfv-docker-custom-verify-{stream}' + + disabled: '{obj:disabled}' + + parameters: + - project-parameter: + project: $GERRIT_PROJECT + branch: '{branch}' + + 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: 'REG_EXP' + project-pattern: 'disabled' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'docker/**' + + builders: + - verify-docker + +- job-template: + name: 'opnfv-docker-custom-merge-{stream}' + + disabled: '{obj:disabled}' + + parameters: + - project-parameter: + project: $GERRIT_PROJECT + branch: '{branch}' + + scm: + - git-scm + + triggers: + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'REG_EXP' + project-pattern: 'disabled' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'docker/**' + + builders: + - merge-docker + +- builder: + name: verify-docker + builders: + - shell: | + /bin/bash $WORKSPACE/verify-docker.sh + +- builder: + name: merge-docker + builders: + - shell: | + /bin/bash $WORKSPACE/merge-docker.sh diff --git a/jjb/releng/opnfv-docker.sh b/jjb/releng/opnfv-docker.sh index 0de3df28e..298d2af51 100644 --- a/jjb/releng/opnfv-docker.sh +++ b/jjb/releng/opnfv-docker.sh @@ -18,8 +18,8 @@ echo "--------------------------------------------------------" echo count=30 # docker build jobs might take up to ~30 min -while [[ -n `ps -ef|grep 'docker build'|grep -v grep` ]]; do - echo "Build in progress. Waiting..." +while [[ -n `ps -ef| grep 'docker build' | grep $DOCKER_REPO_NAME | grep -v grep` ]]; do + echo "Build or cleanup of $DOCKER_REPO_NAME in progress. Waiting..." sleep 60 count=$(( $count - 1 )) if [ $count -eq 0 ]; then @@ -89,11 +89,19 @@ if [[ -n "${COMMIT_ID-}" && -n "${RELEASE_VERSION-}" ]]; then BUILD_BRANCH=$COMMIT_ID fi +ARCH_BUILD_ARG="" +ARCH_TAG=${ARCH_TAG:-} +if [[ -n "${ARCH_TAG}" ]]; then + DOCKER_TAG=${ARCH_TAG}-${DOCKER_TAG} + ARCH_BUILD_ARG="--build-arg ARCH=${ARCH_TAG}" +fi + # Start the build echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG" echo "--------------------------------------------------------" echo cmd="docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG --build-arg BRANCH=$BUILD_BRANCH + $ARCH_BUILD_ARG -f $DOCKERFILE ." echo ${cmd} diff --git a/jjb/releng/opnfv-docker.yml b/jjb/releng/opnfv-docker.yml index 5b63f3a12..f0020aea3 100644 --- a/jjb/releng/opnfv-docker.yml +++ b/jjb/releng/opnfv-docker.yml @@ -1,3 +1,4 @@ +--- ############################################## # job configuration for docker build and push ############################################## @@ -7,112 +8,156 @@ name: opnfv-docker master: &master - stream: master - branch: '{stream}' - disabled: false + stream: master + branch: '{stream}' + disabled: false danube: &danube - stream: danube - branch: 'stable/{stream}' - disabled: false + stream: danube + branch: 'stable/{stream}' + disabled: false + euphrates: &euphrates + stream: euphrates + branch: 'stable/{stream}' + disabled: false functest-receivers: &functest-receivers - receivers: > - jose.lausuch@ericsson.com morgan.richomme@orange.com - cedric.ollivier@orange.com feng.xiaowei@zte.com.cn - yaohelan@huawei.com helanyao@gmail.com - juha.kosonen@nokia.com + receivers: > + jalausuch@suse.com morgan.richomme@orange.com + cedric.ollivier@orange.com feng.xiaowei@zte.com.cn + juha.kosonen@nokia.com wangwulin@huawei.com + storperf-receivers: &storperf-receivers + receivers: > + mark.beierl@emc.com other-receivers: &other-receivers - receivers: '' + receivers: '' dockerfile: "Dockerfile" dockerdir: "docker" + arch_tag: "" # This is the dockerhub repo the image will be pushed to as # 'opnfv/{dockerrepo}. See: DOCKER_REPO_NAME parameter. # 'project' is the OPNFV repo we expect to contain the Dockerfile + # yamllint disable rule:key-duplicates dockerrepo: - # projects with jobs for master - - 'releng-anteater': - project: 'releng-anteater' - <<: *master - <<: *other-receivers - - 'bottlenecks': - project: 'bottlenecks' - <<: *master - <<: *other-receivers - - 'cperf': - project: 'cperf' - <<: *master - <<: *other-receivers - - 'dovetail': - project: 'dovetail' - <<: *master - <<: *other-receivers - - 'functest': - project: 'functest' - <<: *master - <<: *functest-receivers - - 'nfvbench': - project: 'nfvbench' - <<: *master - <<: *other-receivers - - 'qtip': - project: 'qtip' - <<: *master - <<: *other-receivers - - 'storperf-master': - project: 'storperf' - dockerdir: 'docker/storperf-master' - <<: *master - <<: *other-receivers - - 'storperf-graphite': - project: 'storperf' - dockerdir: 'docker/storperf-graphite' - <<: *master - <<: *other-receivers - - 'storperf-httpfrontend': - project: 'storperf' - dockerdir: 'docker/storperf-httpfrontend' - <<: *master - <<: *other-receivers - - 'storperf-reporting': - project: 'storperf' - dockerdir: 'docker/storperf-reporting' - <<: *master - <<: *other-receivers - - 'storperf-swaggerui': - project: 'storperf' - dockerdir: 'docker/storperf-swaggerui' - <<: *master - <<: *other-receivers - - 'yardstick': - project: 'yardstick' - <<: *master - <<: *other-receivers - # projects with jobs for stable - - 'bottlenecks': - project: 'bottlenecks' - <<: *danube - <<: *other-receivers - - 'functest': - project: 'functest' - <<: *danube - <<: *functest-receivers - - 'qtip': - project: 'qtip' - <<: *danube - <<: *other-receivers - - 'storperf': - project: 'storperf' - <<: *danube - <<: *other-receivers - - 'yardstick': - project: 'yardstick' - <<: *danube - <<: *other-receivers + # projects with jobs for master + - 'releng-anteater': + project: 'releng-anteater' + <<: *master + <<: *other-receivers + - 'bottlenecks': + project: 'bottlenecks' + <<: *master + <<: *other-receivers + - 'cperf': + project: 'cperf' + <<: *master + <<: *other-receivers + - 'dovetail': + project: 'dovetail' + <<: *master + <<: *other-receivers + - 'functest': + project: 'functest' + <<: *master + <<: *functest-receivers + - 'nfvbench': + project: 'nfvbench' + <<: *master + <<: *other-receivers + - 'qtip': + project: 'qtip' + <<: *master + <<: *other-receivers + - 'storperf-master': + project: 'storperf' + dockerdir: 'docker/storperf-master' + arch_tag: 'x86_64' + <<: *master + <<: *storperf-receivers + - 'storperf-graphite': + project: 'storperf' + dockerdir: 'docker/storperf-graphite' + arch_tag: 'x86_64' + <<: *master + <<: *storperf-receivers + - 'storperf-httpfrontend': + project: 'storperf' + dockerdir: 'docker/storperf-httpfrontend' + arch_tag: 'x86_64' + <<: *master + <<: *storperf-receivers + - 'storperf-reporting': + project: 'storperf' + dockerdir: 'docker/storperf-reporting' + arch_tag: 'x86_64' + <<: *master + <<: *storperf-receivers + - 'storperf-swaggerui': + project: 'storperf' + dockerdir: 'docker/storperf-swaggerui' + arch_tag: 'x86_64' + <<: *master + <<: *storperf-receivers + - 'yardstick': + project: 'yardstick' + <<: *master + <<: *other-receivers + # projects with jobs for Danube + - 'qtip': + project: 'qtip' + <<: *euphrates + <<: *other-receivers + - 'yardstick': + project: 'yardstick' + <<: *euphrates + <<: *other-receivers + # projects with jobs for euphrates + - 'bottlenecks': + project: 'bottlenecks' + <<: *euphrates + <<: *other-receivers + - 'functest': + project: 'functest' + <<: *euphrates + <<: *functest-receivers + - 'storperf-master': + project: 'storperf' + dockerdir: 'docker/storperf-master' + arch_tag: 'x86_64' + <<: *euphrates + <<: *storperf-receivers + - 'storperf-graphite': + project: 'storperf' + dockerdir: 'docker/storperf-graphite' + arch_tag: 'x86_64' + <<: *euphrates + <<: *storperf-receivers + - 'storperf-httpfrontend': + project: 'storperf' + dockerdir: 'docker/storperf-httpfrontend' + arch_tag: 'x86_64' + <<: *euphrates + <<: *storperf-receivers + - 'storperf-reporting': + project: 'storperf' + dockerdir: 'docker/storperf-reporting' + arch_tag: 'x86_64' + <<: *euphrates + <<: *storperf-receivers + - 'storperf-swaggerui': + project: 'storperf' + dockerdir: 'docker/storperf-swaggerui' + arch_tag: 'x86_64' + <<: *euphrates + <<: *storperf-receivers + - 'nfvbench': + project: 'nfvbench' + <<: *euphrates + <<: *other-receivers + # yamllint enable rule:key-duplicates jobs: - - "{dockerrepo}-docker-build-push-{stream}" - + - "{dockerrepo}-docker-build-push-{stream}" - project: @@ -120,18 +165,19 @@ dockerfile: "Dockerfile" dockerdir: "docker" + arch_tag: "" project: - # projects with jobs for master - - 'daisy': - dockerrepo: 'daisy' - <<: *master - - 'escalator': - dockerrepo: 'escalator' - <<: *master + # projects with jobs for master + - 'daisy': + dockerrepo: 'daisy' + <<: *master + - 'escalator': + dockerrepo: 'escalator' + <<: *master jobs: - - '{project}-docker-build-push-monitor-{stream}' + - '{project}-docker-build-push-monitor-{stream}' ######################## # job templates @@ -142,73 +188,83 @@ disabled: '{obj:disabled}' parameters: ¶meters - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: DOCKER_REPO_NAME - default: "opnfv/{dockerrepo}" - description: "Dockerhub repo to be pushed to." - - string: - name: DOCKER_DIR - default: "{dockerdir}" - description: "Directory containing files needed by the Dockerfile" - - string: - name: COMMIT_ID - default: "" - description: "commit id to make a snapshot docker image" - - string: - name: RELEASE_VERSION - default: "" - description: "Release version, e.g. 1.0, 2.0, 3.0" - - string: - name: DOCKERFILE - default: "{dockerfile}" - description: "Dockerfile to use for creating the image." + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-ubuntu-defaults' + - string: + name: PUSH_IMAGE + default: "true" + description: "To enable/disable pushing the image to Dockerhub." + - string: + name: DOCKER_REPO_NAME + default: "opnfv/{dockerrepo}" + description: "Dockerhub repo to be pushed to." + - string: + name: DOCKER_DIR + default: "{dockerdir}" + description: "Directory containing files needed by the Dockerfile" + - string: + name: COMMIT_ID + default: "" + description: "commit id to make a snapshot docker image" + - string: + name: RELEASE_VERSION + default: "" + description: "Release version, e.g. 1.0, 2.0, 3.0" + - string: + name: DOCKERFILE + default: "{dockerfile}" + description: "Dockerfile to use for creating the image." + - string: + name: ARCH_TAG + default: "{arch_tag}" + description: "If set, this value will be added to the docker image tag as a prefix" + + properties: + - throttle: + max-per-node: 1 + option: 'project' scm: - - git-scm + - git-scm builders: &builders - - shell: - !include-raw-escape: ./opnfv-docker.sh + - shell: + !include-raw-escape: ./opnfv-docker.sh triggers: - - pollscm: - cron: "*/30 * * * *" + - pollscm: + cron: "*/30 * * * *" publishers: - - email: - recipients: '{receivers}' - - email-jenkins-admins-on-failure + - email: + recipients: '{receivers}' + - email-jenkins-admins-on-failure - job-template: name: '{project}-docker-build-push-monitor-{stream}' disabled: '{obj:disabled}' parameters: *parameters + scm: - - git-scm + - git-scm + builders: *builders # trigger only matching the file name triggers: - - gerrit: - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'docker/**' - + - gerrit: + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'docker/**' diff --git a/jjb/releng/opnfv-docs.yml b/jjb/releng/opnfv-docs.yml index f4b25017e..740274518 100644 --- a/jjb/releng/opnfv-docs.yml +++ b/jjb/releng/opnfv-docs.yml @@ -1,3 +1,4 @@ +--- ######################## # Job configuration for opnfv-docs ######################## @@ -8,20 +9,20 @@ project: opnfv-docs jobs: - - 'opnfv-docs-verify-{stream}' - - 'opnfv-docs-merge-{stream}' + - 'opnfv-docs-verify-{stream}' + - 'opnfv-docs-merge-{stream}' stream: - - master: - branch: '{stream}' - doc-version: '' - gs-pathname: '' - disabled: false - - danube: - branch: 'stable/{stream}' - doc-version: '3.0' - gs-pathname: '/{stream}/{doc-version}' - disabled: true + - master: + branch: '{stream}' + doc-version: '' + gs-pathname: '' + disabled: false + - euphrates: + branch: 'stable/{stream}' + doc-version: '5.0.0' + gs-pathname: '/{stream}/{doc-version}' + disabled: false ######################## # job templates @@ -33,40 +34,40 @@ disabled: '{obj:disabled}' parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' + - project-parameter: + project: $GERRIT_PROJECT + branch: '{branch}' 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: '*' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: docs/** - - compare-type: ANT - pattern: yardstick/** + - 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: '*' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: docs/** + - compare-type: ANT + pattern: yardstick/** builders: - - upload-review-docs + - upload-review-docs - job-template: name: 'opnfv-docs-merge-{stream}' @@ -74,41 +75,41 @@ disabled: '{obj:disabled}' parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - string: - name: GS_URL - default: '$GS_BASE{gs-pathname}' - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: GERRIT_REFSPEC - default: 'refs/heads/{branch}' - description: "JJB configured GERRIT_REFSPEC parameter" + - project-parameter: + project: $GERRIT_PROJECT + branch: '{branch}' + - string: + name: GS_URL + default: '$GS_BASE{gs-pathname}' + description: "Directory where the build artifact will be located upon the completion of the build." + - string: + name: GERRIT_REFSPEC + default: 'refs/heads/{branch}' + description: "JJB configured GERRIT_REFSPEC parameter" scm: - - git-scm + - git-scm triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - - comment-added-contains-event: - comment-contains-value: 'rebuild docs' - projects: - - project-compare-type: 'ANT' - project-pattern: '*' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: docs/** - - compare-type: ANT - pattern: yardstick/** + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + - comment-added-contains-event: + comment-contains-value: 'rebuild docs' + projects: + - project-compare-type: 'ANT' + project-pattern: '*' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: docs/** + - compare-type: ANT + pattern: yardstick/** builders: - - upload-merged-docs + - upload-merged-docs diff --git a/jjb/releng/opnfv-lint.yml b/jjb/releng/opnfv-lint.yml index d253da027..d566430d6 100644 --- a/jjb/releng/opnfv-lint.yml +++ b/jjb/releng/opnfv-lint.yml @@ -1,3 +1,4 @@ +--- ######################## # Job configuration for opnfv-lint ######################## @@ -8,18 +9,18 @@ project: opnfv-lint jobs: - - 'opnfv-lint-verify-{stream}' - - 'opnfv-yamllint-verify-{stream}' + - 'opnfv-lint-verify-{stream}' + - 'opnfv-yamllint-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 templates @@ -31,39 +32,39 @@ disabled: '{obj:disabled}' parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' + - project-parameter: + project: $GERRIT_PROJECT + branch: '{branch}' 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: 'REG_EXP' - project-pattern: 'functest|sdnvpn|qtip|daisy|sfc|escalator|releng' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: '**/*.py' + - 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: 'REG_EXP' + project-pattern: 'functest|sdnvpn|qtip|daisy|sfc|escalator|releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: '**/*.py' builders: - - lint-python-code - - report-lint-result-to-gerrit + - lint-python-code + - report-lint-result-to-gerrit - job-template: name: 'opnfv-yamllint-verify-{stream}' @@ -73,45 +74,45 @@ concurrent: true parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - node: - name: SLAVE_NAME - description: Slaves to execute yamllint - default-slaves: - - lf-build1 - allowed-multiselect: true - ignore-offline-nodes: true + - project-parameter: + project: $GERRIT_PROJECT + branch: '{branch}' + - node: + name: SLAVE_NAME + description: Slaves to execute yamllint + default-slaves: + - lf-build1 + allowed-multiselect: true + ignore-offline-nodes: true 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: 'REG_EXP' - project-pattern: 'octopus|releng-anteater|pharos' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: '**/*.yml' - - compare-type: ANT - pattern: '**/*.yaml' + - 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: 'REG_EXP' + project-pattern: 'armband|fuel|octopus|pharos|releng|releng-anteater' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: '**/*.yml' + - compare-type: ANT + pattern: '**/*.yaml' builders: - - lint-yaml-code - - report-lint-result-to-gerrit + - lint-yaml-code + - report-lint-result-to-gerrit diff --git a/jjb/releng/opnfv-utils.yml b/jjb/releng/opnfv-utils.yml index 721b5dede..80cd08f4e 100644 --- a/jjb/releng/opnfv-utils.yml +++ b/jjb/releng/opnfv-utils.yml @@ -1,11 +1,12 @@ +--- - project: name: opnfv-utils jobs: - - 'prune-docker-images' - - 'archive-repositories' - - 'check-status-of-slaves' + - 'prune-docker-images' + - 'archive-repositories' + - 'check-status-of-slaves' ######################## # job templates @@ -18,28 +19,28 @@ concurrent: true parameters: - - node: - name: SLAVE_NAME - description: Slaves to prune docker images - default-slaves: - - arm-build2 - - ericsson-build4 - - ericsson-build5 - - lf-build2 - allowed-multiselect: true - ignore-offline-nodes: true + - node: + name: SLAVE_NAME + description: Slaves to prune docker images + default-slaves: + - arm-build2 + - ericsson-build4 + - ericsson-build5 + - lf-build2 + allowed-multiselect: true + ignore-offline-nodes: true builders: - - description-setter: - description: "Built on $NODE_NAME" - - shell: | - #!/bin/bash + - description-setter: + description: "Built on $NODE_NAME" + - shell: | + #!/bin/bash - (docker ps -q; docker ps -aq) | sort | uniq -u | xargs --no-run-if-empty docker rm - docker images -f dangling=true -q | xargs --no-run-if-empty docker rmi + (docker ps -q; docker ps -aq) | sort | uniq -u | xargs --no-run-if-empty docker rm + docker images -f dangling=true -q | xargs --no-run-if-empty docker rmi triggers: - - timed: '@midnight' + - timed: '@midnight' - job-template: name: 'archive-repositories' @@ -49,20 +50,20 @@ concurrent: true parameters: - - node: - name: SLAVE_NAME - description: Where to create the archive - default-slaves: - - master - allowed-multiselect: false - ignore-offline-nodes: true + - node: + name: SLAVE_NAME + description: Where to create the archive + default-slaves: + - master + allowed-multiselect: false + ignore-offline-nodes: true triggers: - - timed: '@monthly' + - timed: '@monthly' builders: - - shell: - !include-raw-escape: opnfv-repo-archiver.sh + - shell: + !include-raw-escape: opnfv-repo-archiver.sh - job-template: name: 'check-status-of-slaves' @@ -72,18 +73,18 @@ concurrent: true parameters: - - node: - name: SLAVE_NAME - description: We don't want workspace wiped. so I just threw the script on the master - default-slaves: - - master - allowed-multiselect: false - ignore-offline-nodes: true + - node: + name: SLAVE_NAME + description: We don't want workspace wiped. so I just threw the script on the master + default-slaves: + - master + allowed-multiselect: false + ignore-offline-nodes: true triggers: - - timed: '@midnight' + - timed: '@midnight' builders: - - shell: | - cd /opt/jenkins-ci/slavemonitor - bash slave-monitor-0.1.sh | sort + - shell: | + cd /opt/jenkins-ci/slavemonitor + bash slave-monitor-0.1.sh | sort diff --git a/jjb/releng/releng-ci-jobs.yml b/jjb/releng/releng-ci-jobs.yml index fd58ef2b8..d4f39708e 100644 --- a/jjb/releng/releng-ci-jobs.yml +++ b/jjb/releng/releng-ci-jobs.yml @@ -1,10 +1,11 @@ +--- - project: name: releng-builder-jobs jobs: - - 'releng-verify-jjb' - - 'releng-merge-jjb' - - 'releng-comment-jjb' - - 'releng-generate-artifacts-api' + - 'releng-verify-jjb' + - 'releng-merge-jjb' + - 'releng-comment-jjb' + - 'releng-generate-artifacts-api' project: 'releng' @@ -12,69 +13,71 @@ name: releng-verify-jjb parameters: - - project-parameter: - project: '{project}' - branch: 'master' + - project-parameter: + project: '{project}' + branch: 'master' + 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: 'releng' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/master' - file-paths: - - compare-type: ANT - pattern: jjb/** - - compare-type: ANT - pattern: jjb-templates/** - - compare-type: ANT - pattern: utils/** + - 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: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/master' + file-paths: + - compare-type: ANT + pattern: jjb/** + - compare-type: ANT + pattern: jjb-templates/** + - compare-type: ANT + pattern: utils/** builders: - - shell: - !include-raw: verify-releng.sh + - shell: + !include-raw: verify-releng.sh publishers: - - archive-artifacts: - artifacts: 'job_output/*' - - email-jenkins-admins-on-failure + - archive-artifacts: + artifacts: 'job_output/*' + - email-jenkins-admins-on-failure - job-template: name: releng-comment-jjb parameters: - - project-parameter: - project: '{project}' - branch: 'master' + - project-parameter: + project: '{project}' + branch: 'master' + scm: - - git-scm-gerrit + - git-scm-gerrit triggers: - - experimental: - project: '{project}' - branch: 'master' - files: 'jjb/**' + - experimental: + project: '{project}' + branch: 'master' + files: 'jjb/**' builders: - - shell: - !include-raw-escape: generate-job-list.sh - - report-build-result-to-gerrit + - shell: + !include-raw-escape: generate-job-list.sh + - report-build-result-to-gerrit - job-template: name: 'releng-merge-jjb' @@ -84,38 +87,38 @@ # This job's purpose is to update all the JJB parameters: - - project-parameter: - project: '{project}' - branch: 'master' + - project-parameter: + project: '{project}' + branch: 'master' scm: - - git-scm + - git-scm 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: 'releng' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/master' - file-paths: - - compare-type: ANT - pattern: jjb/** - - compare-type: ANT - pattern: utils/** + - 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: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/master' + file-paths: + - compare-type: ANT + pattern: jjb/** + - compare-type: ANT + pattern: utils/** builders: - - shell: | - source /opt/virtualenv/jenkins-job-builder/bin/activate - cd /opt/jenkins-ci/releng - git pull - jenkins-jobs update -r --delete-old jjb/ + - shell: | + source /opt/virtualenv/jenkins-job-builder/bin/activate + cd /opt/jenkins-ci/releng + git pull + jenkins-jobs update -r --delete-old jjb/ - job-template: name: 'releng-generate-artifacts-api' @@ -123,15 +126,15 @@ # Generate and upload the JSON file to used for artifacts site parameters: - - project-parameter: - project: '{project}' - branch: 'master' + - project-parameter: + project: '{project}' + branch: 'master' scm: - - git-scm + - git-scm triggers: - - timed: '@hourly' + - timed: '@hourly' builders: - - build-and-upload-artifacts-json-api + - build-and-upload-artifacts-json-api diff --git a/jjb/releng/verify-releng.sh b/jjb/releng/verify-releng.sh index 682a8beda..a6eaa0f50 100755 --- a/jjb/releng/verify-releng.sh +++ b/jjb/releng/verify-releng.sh @@ -8,7 +8,7 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## #test for non-ascii characters, these can pass the test and end up breaking things in production -for x in $(find . -name *\.yml -or -name *\.yaml); do +for x in $(find . -name *\.yml -or -name *\.yaml -or -name *\.sh); do if LC_ALL=C grep -q '[^[:print:][:space:]]' "$x"; then echo "file "$x" contains non-ascii characters" diff --git a/jjb/securedlab/check-jinja2.sh b/jjb/securedlab/check-jinja2.sh deleted file mode 100755 index 4c1927d77..000000000 --- a/jjb/securedlab/check-jinja2.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -set +x -set -o errexit -for lab_configs in $(find labs/ -name 'pod*.yaml'); do - while IFS= read -r jinja_templates; do - echo "./utils/generate_config.py -y $lab_configs -j $jinja_templates" - ./utils/generate_config.py -y $lab_configs -j $jinja_templates - done < <(find installers/ -name '*.j2') -done diff --git a/jjb/securedlab/check-jinja2.yml b/jjb/securedlab/check-jinja2.yml index 430ced560..155be175d 100644 --- a/jjb/securedlab/check-jinja2.yml +++ b/jjb/securedlab/check-jinja2.yml @@ -1,5 +1,6 @@ +--- ######################## -# Job configuration to validate jninja2 files +# Job configuration to validate jinja2 files ######################## - project: @@ -8,15 +9,15 @@ project: 'securedlab' jobs: - - 'validate-jinja2-templates-{stream}' + - 'validate-jinja2-templates-{stream}' stream: - - master: - branch: '{stream}' - disabled: false - - danube: - branch: 'stable/{stream}' - disabled: false + - master: + branch: '{stream}' + disabled: false + - euphrates: + branch: 'stable/{stream}' + disabled: false ######################## # job templates @@ -30,57 +31,55 @@ concurrent: true parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - node: - name: SLAVE_NAME - description: Slave to execute jnija template test - default-slaves: - - lf-build1 - allowed-multiselect: true - ignore-offline-nodes: true + - project-parameter: + project: $GERRIT_PROJECT + branch: '{branch}' + - node: + name: SLAVE_NAME + description: Slave to execute jnija template test + default-slaves: + - lf-build1 + allowed-multiselect: true + ignore-offline-nodes: true 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: 'REG_EXP' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'utils/generate_config.yml' - - compare-type: ANT - pattern: '**/*.jinja2' - - compare-type: ANT - pattern: '**/*.yaml' - skip-vote: - successful: true - failed: true - unstable: true - notbuilt: true + - 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: 'REG_EXP' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: '**/*.yaml' + - compare-type: ANT + pattern: 'check-jinja2.sh' + skip-vote: + successful: true + failed: true + unstable: true + notbuilt: true builders: - - check-jinja + - check-jinja - builder: name: check-jinja builders: - - shell: - !include-raw-escape: ./check-jinja2.sh + - shell: | + $WORKSPACE/check-jinja2.sh diff --git a/jjb/sfc/sfc-project-jobs.yml b/jjb/sfc/sfc-project-jobs.yml index 379fe793a..82a2cfb5d 100644 --- a/jjb/sfc/sfc-project-jobs.yml +++ b/jjb/sfc/sfc-project-jobs.yml @@ -1,3 +1,4 @@ +--- ################################################### # All the jobs except verify have been removed! # They will only be enabled on request by projects! @@ -8,16 +9,17 @@ project: 'sfc' jobs: - - 'sfc-verify-{stream}' + - 'sfc-verify-{stream}' + stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false - job-template: name: 'sfc-verify-{stream}' @@ -25,39 +27,40 @@ 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: - - sfc-unit-tests + - sfc-unit-tests ################################ # job builders @@ -66,5 +69,5 @@ - builder: name: sfc-unit-tests builders: - - shell: | - cd $WORKSPACE && yamllint $(git ls-tree -r HEAD --name-only | egrep 'yml$|yaml$') + - shell: | + cd $WORKSPACE && yamllint $(git ls-tree -r HEAD --name-only | egrep 'yml$|yaml$' | egrep -v 'scenarios') diff --git a/jjb/snaps/snaps-verify-jobs.yml b/jjb/snaps/snaps-verify-jobs.yml index 01ea3e41e..bc3f39315 100644 --- a/jjb/snaps/snaps-verify-jobs.yml +++ b/jjb/snaps/snaps-verify-jobs.yml @@ -1,3 +1,4 @@ +--- ################################################### # All the jobs except verify have been removed! # They will only be enabled on request by projects! @@ -8,13 +9,13 @@ project: '{name}' jobs: - - 'snaps-verify-{stream}' + - 'snaps-verify-{stream}' stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false - job-template: name: 'snaps-verify-{stream}' @@ -24,49 +25,49 @@ concurrent: false parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: DEPLOYMENT_HOST_IP - default: 192.168.122.2 - description: 'IP of the deployment node' - - string: - name: CONTROLLER_IP - default: 192.168.122.3 - description: 'IP of the controller node' - - 'intel-virtual10-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - string: + name: DEPLOYMENT_HOST_IP + default: 192.168.122.2 + description: 'IP of the deployment node' + - string: + name: CONTROLLER_IP + default: 192.168.122.3 + description: 'IP of the controller node' + - 'intel-virtual10-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: | - #!/bin/bash + - shell: | + #!/bin/bash - cd $WORKSPACE/ci - ./run_tests.sh $DEPLOYMENT_HOST_IP $CONTROLLER_IP + cd $WORKSPACE/ci + ./run_tests.sh $DEPLOYMENT_HOST_IP $CONTROLLER_IP diff --git a/jjb/stor4nfv/stor4nfv-project.yml b/jjb/stor4nfv/stor4nfv-project.yml new file mode 100644 index 000000000..fc479b1a1 --- /dev/null +++ b/jjb/stor4nfv/stor4nfv-project.yml @@ -0,0 +1,64 @@ +--- +################################################### +# All the jobs except verify have been removed! +# They will only be enabled on request by projects! +################################################### +- project: + name: stor4nfv + + project: '{name}' + + jobs: + - 'stor4nfv-verify-{stream}' + + stream: + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + +- job-template: + name: 'stor4nfv-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: + - shell: | + echo "Nothing to verify!" diff --git a/jjb/storperf/storperf-daily-jobs.yml b/jjb/storperf/storperf-daily-jobs.yml index e849e29e1..3c9e527be 100644 --- a/jjb/storperf/storperf-daily-jobs.yml +++ b/jjb/storperf/storperf-daily-jobs.yml @@ -1,3 +1,4 @@ +--- ################################### # job configuration for storperf ################################### @@ -6,80 +7,90 @@ project: storperf -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- + # ------------------------------- + # BRANCH ANCHORS + # ------------------------------- master: &master - stream: master - branch: '{stream}' - gs-pathname: '' - docker-tag: 'latest' -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# Installers using labels -# CI PODs -# This section should only contain the installers -# that have been switched using labels for slaves -#-------------------------------- + stream: master + branch: '{stream}' + gs-pathname: '' + docker-tag: 'latest' + euphrates: &euphrates + stream: euphrates + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + docker-tag: 'stable' + # ------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ------------------------------- + # Installers using labels + # CI PODs + # This section should only contain the installers + # that have been switched using labels for slaves + # ------------------------------- pod: -## fuel CI PODs -# - baremetal: -# slave-label: fuel-baremetal -# installer: fuel -# <<: *master -# - virtual: -# slave-label: fuel-virtual -# installer: fuel -# <<: *master -## joid CI PODs -# - baremetal: -# slave-label: joid-baremetal -# installer: joid -# <<: *master -# - virtual: -# slave-label: joid-virtual -# installer: joid -# <<: *master -## compass CI PODs -# - baremetal: -# slave-label: compass-baremetal -# installer: compass -# <<: *master -# - virtual: -# slave-label: compass-virtual -# installer: compass -# <<: *master -## apex CI PODs -# - virtual: -# slave-label: apex-virtual-master -# installer: apex -# <<: *master - - baremetal: - slave-label: apex-baremetal-master - installer: apex - <<: *master -## armband CI PODs -# - armband-baremetal: -# slave-label: armband-baremetal -# installer: fuel -# <<: *master -# - armband-virtual: -# slave-label: armband-virtual -# installer: fuel -# <<: *master -## daisy CI PODs -# - baremetal: -# slave-label: daisy-baremetal -# installer: daisy -# <<: *master -# - virtual: -# slave-label: daisy-virtual -# installer: daisy -# <<: *master + # # fuel CI PODs + # - baremetal: + # slave-label: fuel-baremetal + # installer: fuel + # <<: *master + # - virtual: + # slave-label: fuel-virtual + # installer: fuel + # <<: *master + # # joid CI PODs + # - baremetal: + # slave-label: joid-baremetal + # installer: joid + # <<: *master + # - virtual: + # slave-label: joid-virtual + # installer: joid + # <<: *master + # # compass CI PODs + # - baremetal: + # slave-label: compass-baremetal + # installer: compass + # <<: *master + # - virtual: + # slave-label: compass-virtual + # installer: compass + # <<: *master + # # apex CI PODs + # - virtual: + # slave-label: apex-virtual-master + # installer: apex + # <<: *master + - baremetal: + slave-label: apex-baremetal-master + installer: apex + <<: *master + - baremetal: + slave-label: apex-baremetal-master + installer: apex + <<: *euphrates + ## armband CI PODs + # - armband-baremetal: + # slave-label: armband-baremetal + # installer: fuel + # <<: *master + # - armband-virtual: + # slave-label: armband-virtual + # installer: fuel + # <<: *master + ## daisy CI PODs + # - baremetal: + # slave-label: daisy-baremetal + # installer: daisy + # <<: *master + # - virtual: + # slave-label: daisy-virtual + # installer: daisy + # <<: *master jobs: - - 'storperf-{installer}-{pod}-daily-{stream}' + - 'storperf-{installer}-{pod}-daily-{stream}' ################################ # job template @@ -90,77 +101,78 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' wrappers: - - build-name: - name: '$BUILD_NUMBER Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: '30' - abort: true + - build-name: + name: '$BUILD_NUMBER Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: '45' + abort: true + - fix-workspace-permissions parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults' - - string: - name: DEPLOY_SCENARIO - default: 'os-odl_l2-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull docker image' - - string: - name: CLEAN_DOCKER_IMAGES - default: 'false' - description: 'Remove downloaded docker images (opnfv/storperf*:*)' - - string: - name: GS_PATHNAME - default: '{gs-pathname}' - description: "Version directory where the opnfv documents will be stored in gs repository" - - string: - name: DISK_TYPE - default: 'HDD' - description: 'The type of hard disk that Cinder uses' - - string: - name: VOLUME_SIZE - default: '2' - description: 'Size of Cinder volume (in GB)' - - string: - name: WORKLOADS - default: 'rw' - description: 'Workloads to run' - - string: - name: BLOCK_SIZES - default: '16384' - description: 'Block sizes for VM I/O operations' - - string: - name: QUEUE_DEPTHS - default: '4' - description: 'Number of simultaneous I/O operations to keep active' - - string: - name: STEADY_STATE_SAMPLES - default: '10' - description: 'Number of samples to use (1 per minute) to measure steady state' - - string: - name: TEST_CASE - choices: - - 'snia_steady_state' - description: 'The test case to run' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults' + - string: + name: DEPLOY_SCENARIO + default: 'os-odl_l2-nofeature-ha' + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: 'Tag to pull docker image' + - string: + name: CLEAN_DOCKER_IMAGES + default: 'false' + description: 'Remove downloaded docker images (opnfv/storperf*:*)' + - string: + name: GS_PATHNAME + default: '{gs-pathname}' + description: "Version directory where the opnfv documents will be stored in gs repository" + - string: + name: DISK_TYPE + default: 'HDD' + description: 'The type of hard disk that Cinder uses' + - string: + name: VOLUME_SIZE + default: '2' + description: 'Size of Cinder volume (in GB)' + - string: + name: WORKLOADS + default: 'rw' + description: 'Workloads to run' + - string: + name: BLOCK_SIZES + default: '16384' + description: 'Block sizes for VM I/O operations' + - string: + name: QUEUE_DEPTHS + default: '4' + description: 'Number of simultaneous I/O operations to keep active' + - string: + name: STEADY_STATE_SAMPLES + default: '10' + description: 'Number of samples to use (1 per minute) to measure steady state' + - string: + name: TEST_CASE + choices: + - 'snia_steady_state' + description: 'The test case to run' scm: - - git-scm + - git-scm builders: - - description-setter: - description: "Built on $NODE_NAME" - - 'storperf-daily-builder' + - description-setter: + description: "Built on $NODE_NAME" + - 'storperf-daily-builder' ######################## # builder macros @@ -168,8 +180,8 @@ - builder: name: storperf-daily-builder builders: - - shell: | - #!/bin/bash + - shell: | + #!/bin/bash - cd $WORKSPACE - ./ci/daily.sh + cd $WORKSPACE + ./ci/daily.sh diff --git a/jjb/storperf/storperf-verify-jobs.yml b/jjb/storperf/storperf-verify-jobs.yml index f99ceeacb..7e29addb9 100644 --- a/jjb/storperf/storperf-verify-jobs.yml +++ b/jjb/storperf/storperf-verify-jobs.yml @@ -1,36 +1,42 @@ +--- - project: name: storperf-verify project: 'storperf' -#-------------------------------- -# branches -#-------------------------------- + # ------------------------------- + # branches + # ------------------------------- stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - docker-tag: 'latest' -#-------------------------------- -# patch verification phases -#-------------------------------- + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + docker-tag: 'latest' + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + docker-tag: 'stable' + # ------------------------------- + # patch verification phases + # ------------------------------- phase: - - 'unit-test': - slave-label: 'opnfv-build-ubuntu' - - 'build-x86_64': - slave-label: 'opnfv-build-ubuntu' - - 'build-aarch64': - slave-label: 'opnfv-build-ubuntu-arm' -#-------------------------------- -# jobs -#-------------------------------- + - 'unit-test': + slave-label: 'opnfv-build-ubuntu' + - 'build-x86_64': + slave-label: 'opnfv-build-ubuntu' + - 'build-aarch64': + slave-label: 'opnfv-build-ubuntu-arm' + # ------------------------------- + # jobs + # ------------------------------- jobs: - - 'storperf-verify-{stream}' - - 'storperf-verify-{phase}-{stream}' -#-------------------------------- + - 'storperf-verify-{stream}' + - 'storperf-verify-{phase}-{stream}' +# ------------------------------- # job templates -#-------------------------------- +# ------------------------------- - job-template: name: 'storperf-verify-{stream}' @@ -39,80 +45,80 @@ project-type: 'multijob' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-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}' + - 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}' builders: - - shell: | - #!/bin/bash - - # we do nothing here as the main stuff will be done - # in phase jobs - echo "Triggering phase jobs!" - - multijob: - name: 'storperf-build-and-unittest' - execution-type: PARALLEL - projects: - - name: 'storperf-verify-unit-test-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - git-revision: true - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: false - - name: 'storperf-verify-build-x86_64-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - ARCH=x86_64 - git-revision: true - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: false - - name: 'storperf-verify-build-aarch64-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - ARCH=aarch64 - git-revision: true - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: false + - shell: | + #!/bin/bash + + # we do nothing here as the main stuff will be done + # in phase jobs + echo "Triggering phase jobs!" + - multijob: + name: 'storperf-build-and-unittest' + execution-type: PARALLEL + projects: + - name: 'storperf-verify-unit-test-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + git-revision: true + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: false + - name: 'storperf-verify-build-x86_64-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + ARCH=x86_64 + git-revision: true + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: false + - name: 'storperf-verify-build-aarch64-{stream}' + current-parameters: false + predefined-parameters: | + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + ARCH=aarch64 + git-revision: true + node-parameters: false + kill-phase-on: FAILURE + abort-all-job: false - job-template: name: 'storperf-verify-{phase}-{stream}' @@ -120,71 +126,75 @@ disabled: '{obj:disabled}' wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 60 + - ssh-agent-wrapper + - build-timeout: + timeout: 60 parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{slave-label}-defaults' scm: - - git-scm-gerrit + - git-scm-gerrit builders: - - 'storperf-verify-{phase}-builders-macro' + - 'storperf-verify-{phase}-builders-macro' publishers: - - 'storperf-verify-{phase}-publishers-macro' -#-------------------------------- + - 'storperf-verify-{phase}-publishers-macro' +# ------------------------------- # builder macros -#-------------------------------- +# ------------------------------- - builder: name: 'storperf-verify-unit-test-builders-macro' builders: - - shell: | - $WORKSPACE/ci/verify.sh + - shell: | + $WORKSPACE/ci/verify.sh + - builder: name: 'storperf-verify-build-x86_64-builders-macro' builders: - - shell: | - $WORKSPACE/ci/verify-build.sh + - shell: | + $WORKSPACE/ci/verify-build.sh + - builder: name: 'storperf-verify-build-aarch64-builders-macro' builders: - - shell: | - $WORKSPACE/ci/verify-build.sh -#-------------------------------- + - shell: | + $WORKSPACE/ci/verify-build.sh +# ------------------------------- # publisher macros -#-------------------------------- +# ------------------------------- - publisher: name: 'storperf-verify-unit-test-publishers-macro' publishers: - - junit: - results: nosetests.xml - - cobertura: - report-file: "coverage.xml" - only-stable: "true" - health-auto-update: "true" - stability-auto-update: "true" - zoom-coverage-chart: "true" - targets: - - files: - healthy: 10 - unhealthy: 20 - failing: 30 - - method: - healthy: 50 - unhealthy: 40 - failing: 30 - - email-jenkins-admins-on-failure + - junit: + results: nosetests.xml + - cobertura: + report-file: "coverage.xml" + only-stable: "true" + health-auto-update: "true" + stability-auto-update: "true" + zoom-coverage-chart: "true" + targets: + - files: + healthy: 60 + unhealthy: 50 + failing: 40 + - method: + healthy: 60 + unhealthy: 50 + failing: 40 + - email-jenkins-admins-on-failure + - publisher: name: 'storperf-verify-build-x86_64-publishers-macro' publishers: - - email-jenkins-admins-on-failure + - email-jenkins-admins-on-failure + - publisher: name: 'storperf-verify-build-aarch64-publishers-macro' publishers: - - email-jenkins-admins-on-failure + - email-jenkins-admins-on-failure diff --git a/jjb/storperf/storperf.yml b/jjb/storperf/storperf.yml index 307becfed..b9f3a3679 100644 --- a/jjb/storperf/storperf.yml +++ b/jjb/storperf/storperf.yml @@ -1,22 +1,23 @@ +--- - project: name: storperf project: '{name}' jobs: - - 'storperf-merge-{stream}' + - 'storperf-merge-{stream}' stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - docker-tag: 'latest' - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - docker-tag: 'stable' + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + docker-tag: 'latest' + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false + docker-tag: 'stable' - job-template: name: 'storperf-merge-{stream}' @@ -24,52 +25,53 @@ node: opnfv-build-ubuntu parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." + - project-parameter: + project: '{project}' + branch: '{branch}' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + # yamllint disable rule:line-length + description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." + # yamllint enable rule:line-length scm: - - git-scm + - git-scm 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}' + - 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}' builders: - - shell: | - $WORKSPACE/ci/merge.sh + - shell: | + $WORKSPACE/ci/merge.sh publishers: - - junit: - results: nosetests.xml - - cobertura: - report-file: "coverage.xml" - only-stable: "true" - health-auto-update: "true" - stability-auto-update: "true" - zoom-coverage-chart: "true" - targets: - - files: - healthy: 10 - unhealthy: 20 - failing: 30 - - method: - healthy: 50 - unhealthy: 40 - failing: 30 - - email-jenkins-admins-on-failure - + - junit: + results: nosetests.xml + - cobertura: + report-file: "coverage.xml" + only-stable: "true" + health-auto-update: "true" + stability-auto-update: "true" + zoom-coverage-chart: "true" + targets: + - files: + healthy: 10 + unhealthy: 20 + failing: 30 + - method: + healthy: 50 + unhealthy: 40 + failing: 30 + - email-jenkins-admins-on-failure diff --git a/jjb/ves/ves.yml b/jjb/ves/ves.yml index 2d21aa5be..d2182cbc3 100644 --- a/jjb/ves/ves.yml +++ b/jjb/ves/ves.yml @@ -16,7 +16,7 @@ branch: '{stream}' gs-pathname: '' disabled: false - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml b/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml index 450599eaf..7f21032e2 100644 --- a/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml +++ b/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml @@ -1,20 +1,21 @@ +--- - project: name: vnf_forwarding_graph project: '{name}' jobs: - - 'vnf_forwarding_graph-verify-{stream}' + - 'vnf_forwarding_graph-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 + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false - job-template: name: 'vnf_forwarding_graph-verify-{stream}' @@ -22,32 +23,32 @@ disabled: '{obj:disabled}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' + - project-parameter: + project: '{project}' + branch: '{branch}' 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}' + - 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}' builders: - - shell: | - echo "Nothing to verify!" + - shell: | + echo "Nothing to verify!" diff --git a/jjb/vswitchperf/vswitchperf.yml b/jjb/vswitchperf/vswitchperf.yml index d05f4c1ee..bab8b24c2 100644 --- a/jjb/vswitchperf/vswitchperf.yml +++ b/jjb/vswitchperf/vswitchperf.yml @@ -16,7 +16,7 @@ gs-pathname: '' disabled: false slave-label: 'opnfv-build-ubuntu' - - danube: + - euphrates: branch: 'stable/{stream}' gs-pathname: '/{stream}' disabled: false diff --git a/jjb/xci/bifrost-cleanup-job.yml b/jjb/xci/bifrost-cleanup-job.yml index 6f3f51a6d..d51776173 100644 --- a/jjb/xci/bifrost-cleanup-job.yml +++ b/jjb/xci/bifrost-cleanup-job.yml @@ -1,32 +1,34 @@ +--- - project: name: 'openstack-bifrost-cleanup' -#-------------------------------- -# branches -#-------------------------------- + # ------------------------------- + # branches + # ------------------------------- stream: - - master: - branch: '{stream}' + - master: + branch: '{stream}' -#-------------------------------- -# projects -#-------------------------------- + # ------------------------------- + # projects + # ------------------------------- project: - - 'openstack': - project-repo: 'https://git.openstack.org/openstack/bifrost' - clone-location: '/opt/bifrost' - - 'opnfv': - project-repo: 'https://gerrit.opnfv.org/gerrit/releng-xci' - clone-location: '/opt/releng-xci' - -#-------------------------------- -# jobs -#-------------------------------- + - 'openstack': + project-repo: 'https://git.openstack.org/openstack/bifrost' + clone-location: '/opt/bifrost' + - 'opnfv': + project-repo: 'https://gerrit.opnfv.org/gerrit/releng-xci' + clone-location: '/opt/releng-xci' + + # ------------------------------- + # jobs + # ------------------------------- jobs: - - '{project}-bifrost-cleanup-{stream}' + - '{project}-bifrost-cleanup-{stream}' - job-template: name: '{project}-bifrost-cleanup-{stream}' + disabled: true concurrent: false node: bifrost-verify-virtual @@ -34,109 +36,111 @@ # Make sure no verify job is running on any of the slaves since that would # produce build logs after we wipe the destination directory. properties: - - build-blocker: - blocking-jobs: - - '{project}-bifrost-verify-*' + - build-blocker: + blocking-jobs: + - '{project}-bifrost-verify-*' parameters: - - string: - name: PROJECT - default: '{project}' + - string: + name: PROJECT + default: '{project}' builders: - - shell: | - #!/bin/bash - - set -eu - - # DO NOT change this unless you know what you are doing. - BIFROST_GS_URL="gs://artifacts.opnfv.org/cross-community-ci/openstack/bifrost/$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/" - - # This should never happen... even 'recheck' uses the last jobs' - # gerrit information. Better exit with error so we can investigate - [[ ! -n $GERRIT_NAME ]] || [[ ! -n $GERRIT_CHANGE_NUMBER ]] && exit 1 - - echo "Removing build artifacts for $GERRIT_NAME/$GERRIT_CHANGE_NUMBER" - - if ! [[ "$BIFROST_GS_URL" =~ "/cross-community-ci/openstack/bifrost/" ]]; then - echo "Oops! BIFROST_GS_URL=$BIFROST_GS_URL does not seem like a valid" - echo "bifrost location on the Google storage server. Please double-check" - echo "that it's set properly or fix this line if necessary." - echo "gsutil will not be executed until this is fixed!" - exit 1 - fi - try_to_rm=1 - while [[ $try_to_rm -lt 6 ]]; do - gsutil -m rm -r $BIFROST_GS_URL && _exitcode=$? && break - _exitcode=$? - echo "gsutil rm failed! Trying again... (attempt #$try_to_rm)" - let try_to_rm += 1 - # Give it some time... - sleep 10 - done - exit $_exitcode + - shell: | + #!/bin/bash + + set -eu + + # DO NOT change this unless you know what you are doing. + BIFROST_GS_URL="gs://artifacts.opnfv.org/cross-community-ci/openstack/bifrost/$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/" + + # This should never happen... even 'recheck' uses the last jobs' + # gerrit information. Better exit with error so we can investigate + [[ ! -n $GERRIT_NAME ]] || [[ ! -n $GERRIT_CHANGE_NUMBER ]] && exit 1 + + echo "Removing build artifacts for $GERRIT_NAME/$GERRIT_CHANGE_NUMBER" + + if ! [[ "$BIFROST_GS_URL" =~ "/cross-community-ci/openstack/bifrost/" ]]; then + echo "Oops! BIFROST_GS_URL=$BIFROST_GS_URL does not seem like a valid" + echo "bifrost location on the Google storage server. Please double-check" + echo "that it's set properly or fix this line if necessary." + echo "gsutil will not be executed until this is fixed!" + exit 1 + fi + try_to_rm=1 + while [[ $try_to_rm -lt 6 ]]; do + gsutil -m rm -r $BIFROST_GS_URL && _exitcode=$? && break + _exitcode=$? + echo "gsutil rm failed! Trying again... (attempt #$try_to_rm)" + let try_to_rm += 1 + # Give it some time... + sleep 10 + done + exit $_exitcode triggers: - - '{project}-gerrit-trigger-cleanup': - branch: '{branch}' + - '{project}-gerrit-trigger-cleanup': + branch: '{branch}' publishers: - - email: - recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com zhang.jun3g@zte.com.cn - - email-jenkins-admins-on-failure -#-------------------------------- + # yamllint disable rule:line-length + - email: + recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com zhang.jun3g@zte.com.cn + # yamllint enable rule:line-length + - email-jenkins-admins-on-failure +# ------------------------------- # trigger macros -#-------------------------------- +# ------------------------------- - trigger: name: 'openstack-gerrit-trigger-cleanup' triggers: - - gerrit: - server-name: 'review.openstack.org' - escape-quotes: true - trigger-on: - # We only run this when the change is merged or - # abandoned since we don't need the logs anymore - - change-merged-event - - change-abandoned-event - # This is an OPNFV maintenance job. We don't want to provide - # feedback on Gerrit - silent: true - silent-start: true - projects: - - project-compare-type: 'PLAIN' - project-pattern: 'openstack/bifrost' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'doc/**' - - compare-type: ANT - pattern: 'releasenotes/**' - disable-strict-forbidden-file-verification: 'true' - readable-message: true + - gerrit: + server-name: 'review.openstack.org' + escape-quotes: true + trigger-on: + # We only run this when the change is merged or + # abandoned since we don't need the logs anymore + - change-merged-event + - change-abandoned-event + # This is an OPNFV maintenance job. We don't want to provide + # feedback on Gerrit + silent: true + silent-start: true + projects: + - project-compare-type: 'PLAIN' + project-pattern: 'openstack/bifrost' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'doc/**' + - compare-type: ANT + pattern: 'releasenotes/**' + readable-message: true + - trigger: name: 'opnfv-gerrit-trigger-cleanup' triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - # We only run this when the change is merged or - # abandoned since we don't need the logs anymore - - change-merged-event - - change-abandoned-event - # This is an OPNFV maintenance job. We don't want to provide - # feedback on Gerrit - silent: true - silent-start: true - projects: - - project-compare-type: 'ANT' - project-pattern: 'releng-xci' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'bifrost/**' - readable-message: true + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + # We only run this when the change is merged or + # abandoned since we don't need the logs anymore + - change-merged-event + - change-abandoned-event + # This is an OPNFV maintenance job. We don't want to provide + # feedback on Gerrit + silent: true + silent-start: true + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng-xci' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'bifrost/**' + readable-message: true diff --git a/jjb/xci/bifrost-periodic-jobs.yml b/jjb/xci/bifrost-periodic-jobs.yml index 67151891f..0bca26aa5 100644 --- a/jjb/xci/bifrost-periodic-jobs.yml +++ b/jjb/xci/bifrost-periodic-jobs.yml @@ -1,68 +1,71 @@ +--- - project: project: 'releng-xci' name: 'bifrost-periodic' -#-------------------------------- -# Branch Anchors -#-------------------------------- -# the versions stated here default to branches which then later -# on used for checking out the branches, pulling in head of the branch. + # ------------------------------- + # Branch Anchors + # ------------------------------- + # the versions stated here default to branches which then later + # on used for checking out the branches, pulling in head of the branch. master: &master - stream: master - openstack-bifrost-version: '{stream}' - opnfv-releng-version: 'master' - gs-pathname: '' + stream: master + openstack-bifrost-version: '{stream}' + opnfv-releng-version: 'master' + gs-pathname: '' ocata: &ocata - stream: ocata - openstack-bifrost-version: 'stable/{stream}' - opnfv-releng-version: 'master' - gs-pathname: '/{stream}' -#-------------------------------- -# XCI PODs -#-------------------------------- + stream: ocata + openstack-bifrost-version: 'stable/{stream}' + opnfv-releng-version: 'master' + gs-pathname: '/{stream}' + # ------------------------------- + # XCI PODs + # ------------------------------- pod: - - virtual: - <<: *master - - virtual: - <<: *ocata -#-------------------------------- -# XCI PODs -#-------------------------------- -#-------------------------------- -# Supported Distros -#-------------------------------- + - virtual: + <<: *master + - virtual: + <<: *ocata + # ------------------------------- + # XCI PODs + # ------------------------------- + # ------------------------------- + # Supported Distros + # ------------------------------- distro: - - 'xenial': - disabled: false - slave-label: xci-xenial-virtual - dib-os-release: 'xenial' - dib-os-element: 'ubuntu-minimal' - dib-os-packages: 'vlan,vim,less,bridge-utils,sudo,language-pack-en,iputils-ping,rsyslog,curl,python,debootstrap,ifenslave,ifenslave-2.6,lsof,lvm2,tcpdump,nfs-kernel-server,chrony,iptables' - extra-dib-elements: 'openssh-server' - - 'centos7': - disabled: true - slave-label: xci-centos7-virtual - dib-os-release: '7' - dib-os-element: 'centos7' - dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - 'suse': - disabled: true - slave-label: xci-suse-virtual - 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' + - 'xenial': + disabled: false + slave-label: xci-xenial-virtual + dib-os-release: 'xenial' + dib-os-element: 'ubuntu-minimal' + # yamllint disable rule:line-length + dib-os-packages: 'vlan,vim,less,bridge-utils,sudo,language-pack-en,iputils-ping,rsyslog,curl,python,debootstrap,ifenslave,ifenslave-2.6,lsof,lvm2,tcpdump,nfs-kernel-server,chrony,iptables' + # yamllint enable rule:line-length + extra-dib-elements: 'openssh-server' + - 'centos7': + disabled: true + slave-label: xci-centos7-virtual + dib-os-release: '7' + dib-os-element: 'centos7' + dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' + extra-dib-elements: 'openssh-server' + - 'suse': + disabled: true + slave-label: xci-suse-virtual + 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' -#-------------------------------- -# jobs -#-------------------------------- + # ------------------------------- + # jobs + # ------------------------------- jobs: - - 'bifrost-provision-{pod}-{distro}-periodic-{stream}' + - 'bifrost-provision-{pod}-{distro}-periodic-{stream}' -#-------------------------------- +# ------------------------------- # job templates -#-------------------------------- +# ------------------------------- - job-template: name: 'bifrost-provision-{pod}-{distro}-periodic-{stream}' @@ -71,79 +74,79 @@ concurrent: false properties: - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '^xci-os.*' - - '^xci-deploy.*' - - '^xci-functest.*' - - '^bifrost-.*periodic.*' - - '^osa-.*periodic.*' - block-level: 'NODE' - - logrotate-default + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '^xci-os.*' + - '^xci-deploy.*' + - '^xci-functest.*' + - '^bifrost-.*periodic.*' + - '^osa-.*periodic.*' + block-level: 'NODE' + - logrotate-default parameters: - - project-parameter: - project: '{project}' - branch: '{opnfv-releng-version}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - - string: - name: XCI_FLAVOR - default: 'ha' - - string: - name: OPENSTACK_BIFROST_VERSION - default: '{openstack-bifrost-version}' - - string: - name: OPNFV_RELENG_VERSION - default: '{opnfv-releng-version}' - - string: - name: DISTRO - default: '{distro}' - - string: - name: DIB_OS_RELEASE - default: '{dib-os-release}' - - string: - name: DIB_OS_ELEMENT - default: '{dib-os-element}' - - string: - name: DIB_OS_PACKAGES - default: '{dib-os-packages}' - - string: - name: EXTRA_DIB_ELEMENTS - default: '{extra-dib-elements}' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - label: - name: SLAVE_LABEL - default: '{slave-label}' - - string: - name: XCI_LOOP - default: 'periodic' + - project-parameter: + project: '{project}' + branch: '{opnfv-releng-version}' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + - string: + name: XCI_FLAVOR + default: 'ha' + - string: + name: OPENSTACK_BIFROST_VERSION + default: '{openstack-bifrost-version}' + - string: + name: OPNFV_RELENG_VERSION + default: '{opnfv-releng-version}' + - string: + name: DISTRO + default: '{distro}' + - string: + name: DIB_OS_RELEASE + default: '{dib-os-release}' + - string: + name: DIB_OS_ELEMENT + default: '{dib-os-element}' + - string: + name: DIB_OS_PACKAGES + default: '{dib-os-packages}' + - string: + name: EXTRA_DIB_ELEMENTS + default: '{extra-dib-elements}' + - string: + name: CLEAN_DIB_IMAGES + default: 'true' + - label: + name: SLAVE_LABEL + default: '{slave-label}' + - string: + name: XCI_LOOP + default: 'periodic' wrappers: - - fix-workspace-permissions + - fix-workspace-permissions scm: - - git-scm + - git-scm # trigger is disabled until we know which jobs we will have # and adjust stuff accordingly triggers: - - timed: '' # '@midnight' + - timed: '' # '@midnight' builders: - - description-setter: - description: "Built on $NODE_NAME - Flavor: $XCI_FLAVOR" - - 'bifrost-provision-builder' + - description-setter: + description: "Built on $NODE_NAME - Flavor: $XCI_FLAVOR" + - 'bifrost-provision-builder' -#--------------------------- +# -------------------------- # builder macros -#--------------------------- +# -------------------------- - builder: name: bifrost-provision-builder builders: - - shell: - !include-raw: ./bifrost-provision.sh + - shell: + !include-raw: ./bifrost-provision.sh diff --git a/jjb/xci/bifrost-verify-jobs.yml b/jjb/xci/bifrost-verify-jobs.yml index d6eb5ffdb..5f0b6572a 100644 --- a/jjb/xci/bifrost-verify-jobs.yml +++ b/jjb/xci/bifrost-verify-jobs.yml @@ -1,57 +1,48 @@ +--- - project: name: 'openstack-bifrost-verify' -#-------------------------------- -# branches -#-------------------------------- + # ------------------------------- + # branches + # ------------------------------- stream: - - master: - branch: '{stream}' -#-------------------------------- -# projects -#-------------------------------- - project: - - 'openstack': - project-repo: 'https://git.openstack.org/openstack/bifrost' - clone-location: '$WORKSPACE/bifrost' - - 'opnfv': - project-repo: 'https://gerrit.opnfv.org/gerrit/releng-xci' - clone-location: '$WORKSPACE/releng-xci' -#-------------------------------- -# distros -#-------------------------------- + - master: + branch: '{stream}' + # ------------------------------- + # distros + # ------------------------------- distro: - - 'xenial': - disabled: false - dib-os-release: 'xenial' - dib-os-element: 'ubuntu-minimal' - dib-os-packages: 'vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - 'centos7': - disabled: false - dib-os-release: '7' - dib-os-element: 'centos-minimal' - dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - 'suse': - disabled: false - 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' -#-------------------------------- -# type -#-------------------------------- + - 'xenial': + disabled: true + dib-os-release: 'xenial' + dib-os-element: 'ubuntu-minimal' + dib-os-packages: 'vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl' + extra-dib-elements: 'openssh-server' + - 'centos7': + disabled: true + dib-os-release: '7' + dib-os-element: 'centos-minimal' + dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' + extra-dib-elements: 'openssh-server' + - 'suse': + disabled: true + 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' + # ------------------------------- + # type + # ------------------------------- type: - - virtual -#-------------------------------- -# jobs -#-------------------------------- + - virtual + # ------------------------------- + # jobs + # ------------------------------- jobs: - - '{project}-bifrost-verify-{distro}-{type}-{stream}' + - 'openstack-bifrost-verify-{distro}-{type}-{stream}' -#-------------------------------- +# ------------------------------- # VM defaults -#-------------------------------- +# ------------------------------- - defaults: name: verify_vm_defaults test-vm-num-nodes: '3' @@ -62,11 +53,11 @@ vm-memory-size: '4096' vm-disk-cache: 'unsafe' -#-------------------------------- +# ------------------------------- # job templates -#-------------------------------- +# ------------------------------- - job-template: - name: '{project}-bifrost-verify-{distro}-{type}-{stream}' + name: 'openstack-bifrost-verify-{distro}-{type}-{stream}' disabled: '{obj:disabled}' @@ -75,170 +66,138 @@ concurrent: false properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '.*-bifrost-verify.*-{type}' - block-level: 'NODE' + - logrotate-default + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '.*-bifrost-verify.*-{type}' + block-level: 'NODE' parameters: - - string: - name: PROJECT - default: '{project}' - - string: - name: PROJECT_REPO - default: '{project-repo}' - - string: - name: CLONE_LOCATION - default: '{clone-location}' - - string: - name: DISTRO - default: '{distro}' - - string: - name: DIB_OS_RELEASE - default: '{dib-os-release}' - - string: - name: DIB_OS_ELEMENT - default: '{dib-os-element}' - - string: - name: EXTRA_DIB_ELEMENTS - default: '{extra-dib-elements}' - - string: - name: DIB_OS_PACKAGES - default: '{dib-os-packages}' - - string: - name: TEST_VM_NUM_NODES - default: '{test-vm-num-nodes}' - - string: - name: TEST_VM_NODE_NAMES - default: '{test-vm-node-names}' - - string: - name: VM_DOMAIN_TYPE - default: '{vm-domain-type}' - - string: - name: VM_CPU - default: '{vm-cpu}' - - string: - name: VM_DISK - default: '{vm-disk}' - - string: - name: VM_MEMORY_SIZE - default: '{vm-memory-size}' - - string: - name: VM_DISK_CACHE - default: '{vm-disk-cache}' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - label: - name: SLAVE_LABEL - default: 'infra-{type}-{distro}' - - string: - name: BIFROST_LOG_URL - default: 'http://artifacts.opnfv.org/cross-community-ci/openstack/bifrost/$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER/$JOB_NAME' - - string: - name: XCI_LOOP - default: 'verify' + - string: + name: PROJECT_REPO + default: 'https://git.openstack.org/openstack/bifrost' + - string: + name: CLONE_LOCATION + default: '$WORKSPACE/bifrost' + - string: + name: DISTRO + default: '{distro}' + - string: + name: DIB_OS_RELEASE + default: '{dib-os-release}' + - string: + name: DIB_OS_ELEMENT + default: '{dib-os-element}' + - string: + name: EXTRA_DIB_ELEMENTS + default: '{extra-dib-elements}' + - string: + name: DIB_OS_PACKAGES + default: '{dib-os-packages}' + - string: + name: TEST_VM_NUM_NODES + default: '{test-vm-num-nodes}' + - string: + name: TEST_VM_NODE_NAMES + default: '{test-vm-node-names}' + - string: + name: VM_DOMAIN_TYPE + default: '{vm-domain-type}' + - string: + name: VM_CPU + default: '{vm-cpu}' + - string: + name: VM_DISK + default: '{vm-disk}' + - string: + name: VM_MEMORY_SIZE + default: '{vm-memory-size}' + - string: + name: VM_DISK_CACHE + default: '{vm-disk-cache}' + - string: + name: CLEAN_DIB_IMAGES + default: 'true' + - label: + name: SLAVE_LABEL + default: 'xci-virtual' + - string: + name: XCI_LOOP + default: 'verify' scm: - - git: - url: '$PROJECT_REPO' - refspec: '$GERRIT_REFSPEC' - branches: - - 'origin/$BRANCH' - skip-tag: true - choosing-strategy: 'gerrit' - timeout: 10 - wipe-workspace: true + - git: + url: '$PROJECT_REPO' + refspec: '$GERRIT_REFSPEC' + branches: + - 'origin/$BRANCH' + skip-tag: true + choosing-strategy: 'gerrit' + timeout: 10 + wipe-workspace: true triggers: - - '{project}-gerrit-trigger': - branch: '{branch}' + - 'openstack-gerrit-trigger': + branch: '{branch}' builders: - - bifrost-set-name - - bifrost-build + - bifrost-set-name + - bifrost-build wrappers: - - fix-workspace-permissions - - build-timeout: - timeout: 90 + - fix-workspace-permissions + - build-timeout: + timeout: 90 publishers: - - email: - recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com julienjut@gmail.com - - email-jenkins-admins-on-failure -#-------------------------------- + # yamllint disable rule:line-length + - email: + recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com julienjut@gmail.com + # yamllint enable rule:line-length + - email-jenkins-admins-on-failure +# ------------------------------- # trigger macros -#-------------------------------- +# ------------------------------- - trigger: name: 'openstack-gerrit-trigger' triggers: - - gerrit: - server-name: 'review.openstack.org' - escape-quotes: true - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - comment-added-contains-event: - comment-contains-value: 'recheck' - custom-url: '* $JOB_NAME $BIFROST_LOG_URL/index.html' - silent-start: true - projects: - - project-compare-type: 'PLAIN' - project-pattern: 'openstack/bifrost' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'doc/**' - - compare-type: ANT - pattern: 'releasenotes/**' - disable-strict-forbidden-file-verification: 'true' - readable-message: true -- trigger: - name: 'opnfv-gerrit-trigger' - 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' - custom-url: '* $JOB_NAME $BIFROST_LOG_URL/index.html' - projects: - - project-compare-type: 'ANT' - project-pattern: 'releng-xci' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'bifrost/**' - readable-message: true + - gerrit: + server-name: 'review.openstack.org' + escape-quotes: true + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - comment-added-contains-event: + comment-contains-value: 'recheck' + silent-start: true + projects: + - project-compare-type: 'PLAIN' + project-pattern: 'openstack/bifrost' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'doc/**' + - compare-type: ANT + pattern: 'releasenotes/**' + readable-message: true -#--------------------------- +# -------------------------- # builder macros -#--------------------------- +# -------------------------- - builder: name: bifrost-set-name builders: - - description-setter: - description: "Built on $NODE_NAME" + - description-setter: + description: "Built on $NODE_NAME" - builder: name: bifrost-build builders: - - shell: - !include-raw: ./bifrost-verify.sh + - shell: + !include-raw: ./bifrost-verify.sh diff --git a/jjb/xci/bifrost-verify.sh b/jjb/xci/bifrost-verify.sh index 03d9afccd..ef0730938 100755 --- a/jjb/xci/bifrost-verify.sh +++ b/jjb/xci/bifrost-verify.sh @@ -11,100 +11,6 @@ set -o errexit set -o nounset set -o pipefail -trap cleanup_and_upload EXIT - -function upload_logs() { - BIFROST_CONSOLE_LOG="${BUILD_URL}/consoleText" - BIFROST_GS_URL=${BIFROST_LOG_URL/http:/gs:} - - # Make sure the old landing page is gone in case - # we break later on. We don't want to publish - # stale information. - # TODO: Maybe cleanup the entire $BIFROST_GS_URL directory - # before we upload the new data. - gsutil -q rm ${BIFROST_GS_URL}/index.html || true - - echo "Uploading collected bifrost build logs to ${BIFROST_LOG_URL}" - - if [[ -d ${WORKSPACE}/logs ]]; then - pushd ${WORKSPACE}/logs &> /dev/null - for x in *.log; do - echo "Compressing and uploading $x" - gsutil -q cp -Z ${x} ${BIFROST_GS_URL}/${x} - done - popd &> /dev/null - fi - - echo "Generating the ${BIFROST_LOG_URL}/index.html landing page" - cat > ${WORKSPACE}/index.html <<EOF -<html> -<h1>Build results for <a href=https://$GERRIT_NAME/#/c/$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER>$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER</a></h1> -<h2>Job: <a href=${BUILD_URL}>$JOB_NAME</a></h2> -<ul> -<li><a href=${BIFROST_LOG_URL}/build_log.txt>build_log.txt</a></li> -EOF - - if [[ -d ${WORKSPACE}/logs ]]; then - pushd ${WORKSPACE}/logs &> /dev/null - for x in *.log; do - echo "<li><a href=${BIFROST_LOG_URL}/${x}>${x}</a></li>" >> ${WORKSPACE}/index.html - done - popd &> /dev/null - fi - - cat >> ${WORKSPACE}/index.html << EOF -</ul> -</html> -EOF - - # Upload landing page - echo "Uploading the landing page" - gsutil -q cp ${WORKSPACE}/index.html ${BIFROST_GS_URL}/index.html - rm -f ${WORKSPACE}/index.html - - # Finally, download and upload the entire build log so we can retain - # as much build information as possible - echo "Uploading the final console output" - curl -s -L ${BIFROST_CONSOLE_LOG} > ${WORKSPACE}/build_log.txt - gsutil -q cp -Z ${WORKSPACE}/build_log.txt ${BIFROST_GS_URL}/build_log.txt - rm -f ${WORKSPACE}/build_log.txt -} - -function fix_ownership() { - if [ -z "${JOB_URL+x}" ]; then - echo "Not running as part of Jenkins. Handle the logs manually." - else - # Make sure cache exists - [[ ! -d ${HOME}/.cache ]] && mkdir ${HOME}/.cache - - sudo chown -R jenkins:jenkins $WORKSPACE - sudo chown -R jenkins:jenkins ${HOME}/.cache - fi -} - -function cleanup_and_upload() { - original_exit=$? - echo "Job exit code: $original_exit" - # Turn off errexit - set +o errexit - fix_ownership - upload_logs - exit $original_exit -} - -# check distro to see if we support it -if [[ ! "$DISTRO" =~ (xenial|centos7|suse) ]]; then - echo "Distro $DISTRO is not supported!" - exit 1 -fi - -# remove previously cloned repos -/bin/rm -rf $WORKSPACE/bifrost $WORKSPACE/releng-xci - -# Fix up permissions -fix_ownership - -# clone all the repos first and checkout the patch afterwards git clone https://git.openstack.org/openstack/bifrost $WORKSPACE/bifrost git clone https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE/releng-xci @@ -115,10 +21,9 @@ git fetch $PROJECT_REPO $GERRIT_REFSPEC && sudo git checkout FETCH_HEAD # combine opnfv and upstream scripts/playbooks /bin/cp -rf $WORKSPACE/releng-xci/bifrost/* $WORKSPACE/bifrost/ -# cleanup remnants of previous deployment -cd $WORKSPACE/bifrost -sudo -H -E ./scripts/destroy-env.sh - +cd $WORKSPACE/releng-xci +cat > bifrost_test.sh<<EOF +cd ~/bifrost # provision 3 VMs; xcimaster, controller, and compute cd $WORKSPACE/bifrost ./scripts/bifrost-provision.sh @@ -128,3 +33,11 @@ cd $WORKSPACE/bifrost source env-vars ironic node-list sudo -H -E virsh list +EOF +chmod a+x bifrost_test.sh + +./xci/scripts/vm/start-new-vm.sh $DISTRO + +rsync -a $WORKSPACE/bifrost ${DISTRO,,}_xci_vm:~/bifrost + +ssh ${DISTRO,,}_xci_vm "cd ~/bifrost && ./bifrost_test.sh" diff --git a/jjb/xci/osa-periodic-jobs.yml b/jjb/xci/osa-periodic-jobs.yml index 86910ac4f..26c1575f4 100644 --- a/jjb/xci/osa-periodic-jobs.yml +++ b/jjb/xci/osa-periodic-jobs.yml @@ -1,43 +1,45 @@ +--- - project: name: 'opnfv-osa-periodic' project: 'releng-xci' -#-------------------------------- -# branches -#-------------------------------- + # ------------------------------- + # branches + # ------------------------------- stream: - - master: - branch: '{stream}' -#-------------------------------- -# distros -#-------------------------------- + - master: + branch: '{stream}' + # ------------------------------- + # distros + # ------------------------------- distro: - - 'xenial': - disabled: false - - 'centos7': - disabled: true - - 'suse': - disabled: true -#-------------------------------- -# type -#-------------------------------- + - 'xenial': + disabled: false + - 'centos7': + disabled: true + - 'suse': + disabled: true + # ------------------------------- + # type + # ------------------------------- type: - - virtual -#-------------------------------- -# phases -#-------------------------------- + - virtual + # ------------------------------- + # phases + # ------------------------------- phase: - - 'deploy' - - 'healthcheck' -#-------------------------------- -# jobs -#-------------------------------- + - 'deploy' + - 'healthcheck' + # ------------------------------- + # jobs + # ------------------------------- jobs: - - 'osa-periodic-{distro}-{type}-{stream}' - - 'osa-periodic-{phase}-{type}-{stream}' -#-------------------------------- + - 'osa-periodic-{distro}-{type}-{stream}' + - 'osa-periodic-{phase}-{type}-{stream}' + +# ------------------------------- # job templates -#-------------------------------- +# ------------------------------- - job-template: name: 'osa-periodic-{distro}-{type}-{stream}' @@ -48,68 +50,69 @@ concurrent: false properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'xci-verify-.*' - - 'bifrost-verify-.*' - - 'bifrost-periodic-.*' - - 'osa-verify-.*' - - 'osa-periodic-.*' - block-level: 'NODE' + - logrotate-default + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'xci-verify-.*' + - 'bifrost-verify-.*' + - 'bifrost-periodic-.*' + - 'osa-verify-.*' + - 'osa-periodic-.*' + block-level: 'NODE' wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions + - ssh-agent-wrapper + - build-timeout: + timeout: 240 + - fix-workspace-permissions scm: - - git-scm-osa + - git-scm-osa triggers: - - pollscm: - cron: "@midnight" - ignore-post-commit-hooks: True + - pollscm: + cron: "@midnight" + ignore-post-commit-hooks: true parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'xci-virtual-{distro}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - label: + name: SLAVE_LABEL + default: 'xci-virtual-{distro}' builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'osa-periodic-deploy-{type}-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - DEPLOY_SCENARIO=os-nosdn-nofeature-noha - git-revision: true - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: healthcheck - condition: SUCCESSFUL - projects: - - name: 'osa-periodic-healthcheck-{type}-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - DEPLOY_SCENARIO=os-nosdn-nofeature-noha - FUNCTEST_SUITE_NAME=healthcheck - node-parameters: true - kill-phase-on: NEVER - abort-all-job: false + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: deploy + condition: SUCCESSFUL + projects: + - name: 'osa-periodic-deploy-{type}-{stream}' + current-parameters: true + predefined-parameters: | + DISTRO={distro} + DEPLOY_SCENARIO=os-nosdn-nofeature-noha + git-revision: true + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: healthcheck + condition: SUCCESSFUL + projects: + - name: 'osa-periodic-healthcheck-{type}-{stream}' + current-parameters: true + predefined-parameters: | + DISTRO={distro} + DEPLOY_SCENARIO=os-nosdn-nofeature-noha + FUNCTEST_MODE=tier + FUNCTEST_TIER=healthcheck + node-parameters: true + kill-phase-on: NEVER + abort-all-job: false - job-template: name: 'osa-periodic-{phase}-{type}-{stream}' @@ -119,106 +122,109 @@ concurrent: true properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'xci-verify-deploy-.*' - - 'xci-verify-healthcheck-.*' - - 'bifrost-verify-.*' - - 'bifrost-periodic-.*' - - 'osa-verify-deploy-.*' - - 'osa-verify-halthcheck-.*' - - 'osa-periodic-deploy-.*' - - 'osa-periodic-healthcheck-.*' - block-level: 'NODE' + - logrotate-default + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'xci-verify-deploy-.*' + - 'xci-verify-healthcheck-.*' + - 'bifrost-verify-.*' + - 'bifrost-periodic-.*' + - 'osa-verify-deploy-.*' + - 'osa-verify-halthcheck-.*' + - 'osa-periodic-deploy-.*' + - 'osa-periodic-healthcheck-.*' + block-level: 'NODE' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'xci-virtual-{distro}' - - string: - name: OPENSTACK_OSA_VERSION - default: 'master' - - string: - name: DISTRO - default: 'xenial' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-noha' - - string: - name: XCI_FLAVOR - default: 'mini' - - string: - name: XCI_LOOP - default: 'periodic' - - string: - name: OPNFV_RELENG_DEV_PATH - default: $WORKSPACE/releng-xci - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: FORCE_MASTER - default: 'true' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT + - project-parameter: + project: '{project}' + branch: '{branch}' + - label: + name: SLAVE_LABEL + default: 'xci-virtual-{distro}' + - string: + name: OPENSTACK_OSA_VERSION + default: 'master' + - string: + name: DISTRO + default: 'xenial' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-noha' + - string: + name: XCI_FLAVOR + default: 'mini' + - string: + name: XCI_LOOP + default: 'periodic' + - string: + name: OPNFV_RELENG_DEV_PATH + default: $WORKSPACE/releng-xci + - string: + name: FUNCTEST_MODE + default: 'tier' + - string: + name: FUNCTEST_SUITE_NAME + default: 'healthcheck' + - string: + name: FORCE_MASTER + default: 'true' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT scm: - - git-scm-osa + - git-scm-osa wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions + - ssh-agent-wrapper + - build-timeout: + timeout: 240 + - fix-workspace-permissions builders: - - description-setter: - description: "Built on $NODE_NAME" - - 'osa-periodic-{phase}-macro' + - description-setter: + description: "Built on $NODE_NAME" + - 'osa-periodic-{phase}-macro' -#-------------------------------- +# ------------------------------- # builder macros -#-------------------------------- +# ------------------------------- - builder: name: 'osa-periodic-deploy-macro' builders: - - shell: | - #!/bin/bash - - # here we will - # - clone releng-xci repo as the jobs are running against openstack gerrit - # and we need to clone releng-xci ourselves to $OPNFV_RELENG_DEV_PATH - # - run sources-branch-updater.sh from osa to update/pin the role versions - # at the time this job gets triggered against osa master in case if the - # deployment succeeds and we decide to bump version used by xci - # - copy generated role versions into $OPNFV_RELENG_DEV_PATH/xci/file - # - start the deployment by executing xci-deploy.sh as usual - # - # we might also need to pin versions of openstack services as well. - - echo "Hello World!" + - shell: | + #!/bin/bash + + # here we will + # - clone releng-xci repo as the jobs are running against openstack gerrit + # and we need to clone releng-xci ourselves to $OPNFV_RELENG_DEV_PATH + # - run sources-branch-updater.sh from osa to update/pin the role versions + # at the time this job gets triggered against osa master in case if the + # deployment succeeds and we decide to bump version used by xci + # - copy generated role versions into $OPNFV_RELENG_DEV_PATH/xci/file + # - start the deployment by executing xci-deploy.sh as usual + # + # we might also need to pin versions of openstack services as well. + + echo "Hello World!" - builder: name: 'osa-periodic-healthcheck-macro' builders: - - shell: | - #!/bin/bash + - shell: | + #!/bin/bash - echo "Hello World!" -#-------------------------------- + echo "Hello World!" +# ------------------------------- # scm macro -#-------------------------------- +# ------------------------------- - scm: name: git-scm-osa scm: - - git: - url: https://review.openstack.org/p/openstack/openstack-ansible.git - branches: - - master - timeout: 15 + - git: + url: https://review.openstack.org/p/openstack/openstack-ansible.git + branches: + - master + timeout: 15 diff --git a/jjb/xci/xci-daily-jobs.yml b/jjb/xci/xci-daily-jobs.yml index 64659da40..a95374933 100644 --- a/jjb/xci/xci-daily-jobs.yml +++ b/jjb/xci/xci-daily-jobs.yml @@ -1,85 +1,88 @@ -#-------------------------------- +--- +# ------------------------------- # These jobs run on a daily basis and deploy OpenStack # using the pinned versions of opnfv/releng, openstack/bifrost # and openstack/openstack-ansible. Due to this, there is no # version/branch is set/passed to jobs and instead the versions # are checked out based on what is configured. -#-------------------------------- +# ------------------------------- - project: project: 'releng-xci' name: 'xci-daily' -#-------------------------------- -# Branch Anchors -#-------------------------------- + # ------------------------------- + # Branch Anchors + # ------------------------------- master: &master - stream: master - opnfv-releng-version: master - gs-pathname: '' -#-------------------------------- -# Scenarios -#-------------------------------- + stream: master + opnfv-releng-version: master + gs-pathname: '' + # ------------------------------- + # Scenarios + # ------------------------------- scenario: - - 'os-nosdn-nofeature-ha': - auto-trigger-name: 'daily-trigger-disabled' - xci-flavor: 'ha' - - '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 -#-------------------------------- + - 'os-nosdn-nofeature-ha': + auto-trigger-name: 'daily-trigger-disabled' + xci-flavor: 'ha' + - '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 -#-------------------------------- -# Supported Distros -#-------------------------------- + - virtual: + <<: *master + # ------------------------------- + # Supported Distros + # ------------------------------- distro: - - 'xenial': - disabled: false - slave-label: xci-xenial-virtual - dib-os-release: 'xenial' - dib-os-element: 'ubuntu-minimal' - dib-os-packages: 'vlan,vim,less,bridge-utils,sudo,language-pack-en,iputils-ping,rsyslog,curl,python,debootstrap,ifenslave,ifenslave-2.6,lsof,lvm2,tcpdump,nfs-kernel-server,chrony,iptabls' - extra-dib-elements: 'openssh-server' - - 'centos7': - disabled: true - slave-label: xci-centos7-virtual - dib-os-release: '7' - dib-os-element: 'centos7' - dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - 'suse': - disabled: true - slave-label: xci-suse-virtual - 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' - -#-------------------------------- -# Phases -#-------------------------------- + - 'xenial': + disabled: false + slave-label: xci-xenial-virtual + dib-os-release: 'xenial' + dib-os-element: 'ubuntu-minimal' + # yamllint disable rule:line-length + dib-os-packages: 'vlan,vim,less,bridge-utils,sudo,language-pack-en,iputils-ping,rsyslog,curl,python,debootstrap,ifenslave,ifenslave-2.6,lsof,lvm2,tcpdump,nfs-kernel-server,chrony,iptabls' + # yamllint enable rule:line-length + extra-dib-elements: 'openssh-server' + - 'centos7': + disabled: true + slave-label: xci-centos7-virtual + dib-os-release: '7' + dib-os-element: 'centos7' + dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' + extra-dib-elements: 'openssh-server' + - 'suse': + disabled: true + slave-label: xci-suse-virtual + 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' + + # ------------------------------- + # Phases + # ------------------------------- phase: - - 'deploy' - - 'functest' -#-------------------------------- -# jobs -#-------------------------------- + - 'deploy' + - 'functest' + # ------------------------------- + # jobs + # ------------------------------- jobs: - - 'xci-{scenario}-{pod}-{distro}-daily-{stream}' - - 'xci-{phase}-{pod}-{distro}-daily-{stream}' + - 'xci-{scenario}-{pod}-{distro}-daily-{stream}' + - 'xci-{phase}-{pod}-{distro}-daily-{stream}' -#-------------------------------- +# ------------------------------- # job templates -#-------------------------------- +# ------------------------------- - job-template: name: 'xci-{scenario}-{pod}-{distro}-daily-{stream}' @@ -88,67 +91,69 @@ concurrent: false properties: - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '^xci-os.*' - - '^xci-deploy.*' - - '^xci-functest.*' - - '^bifrost-.*periodic.*' - - '^osa-.*periodic.*' - block-level: 'NODE' - - logrotate-default + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '^xci-os.*' + - '^xci-deploy.*' + - '^xci-functest.*' + - '^bifrost-.*periodic.*' + - '^osa-.*periodic.*' + block-level: 'NODE' + - logrotate-default parameters: - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - - string: - name: XCI_FLAVOR - default: '{xci-flavor}' - - label: - name: SLAVE_LABEL - default: '{slave-label}' - - string: - name: XCI_LOOP - default: 'daily' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' + - string: + name: XCI_FLAVOR + default: '{xci-flavor}' + - label: + name: SLAVE_LABEL + default: '{slave-label}' + - string: + name: XCI_LOOP + default: 'daily' triggers: - - '{auto-trigger-name}' + - '{auto-trigger-name}' wrappers: - - fix-workspace-permissions + - fix-workspace-permissions builders: - - description-setter: - description: "Built on $NODE_NAME" - - trigger-builds: - - project: 'xci-deploy-{pod}-{distro}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - XCI_FLAVOR=$XCI_FLAVOR - XCI_LOOP=$XCI_LOOP - same-node: true - block: true - - trigger-builds: - - project: 'xci-functest-{pod}-{distro}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - XCI_FLAVOR=$XCI_FLAVOR - XCI_LOOP=$XCI_LOOP - same-node: true - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' + - description-setter: + description: "Built on $NODE_NAME" + - trigger-builds: + - project: 'xci-deploy-{pod}-{distro}-daily-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + XCI_FLAVOR=$XCI_FLAVOR + XCI_LOOP=$XCI_LOOP + same-node: true + block: true + - trigger-builds: + - project: 'xci-functest-{pod}-{distro}-daily-{stream}' + current-parameters: false + predefined-parameters: | + DEPLOY_SCENARIO=$DEPLOY_SCENARIO + XCI_FLAVOR=$XCI_FLAVOR + XCI_LOOP=$XCI_LOOP + same-node: true + block: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' publishers: - - email: - recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com julienjut@gmail.com - - email-jenkins-admins-on-failure + # yamllint disable rule:line-length + - email: + recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com julienjut@gmail.com + # yamllint enable rule:line-length + - email-jenkins-admins-on-failure - job-template: name: 'xci-{phase}-{pod}-{distro}-daily-{stream}' @@ -158,90 +163,94 @@ concurrent: false properties: - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '^xci-deploy.*' - - '^xci-functest.*' - - '^bifrost-.*periodic.*' - - '^osa-.*periodic.*' - block-level: 'NODE' - - logrotate-default + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '^xci-deploy.*' + - '^xci-functest.*' + - '^bifrost-.*periodic.*' + - '^osa-.*periodic.*' + block-level: 'NODE' + - logrotate-default wrappers: - - fix-workspace-permissions + - fix-workspace-permissions scm: - - git-scm + - git-scm parameters: - - project-parameter: - project: '{project}' - branch: '{opnfv-releng-version}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - - string: - name: XCI_FLAVOR - default: 'ha' - - string: - name: DISTRO - default: '{distro}' - - string: - name: DIB_OS_RELEASE - default: '{dib-os-release}' - - string: - name: DIB_OS_ELEMENT - default: '{dib-os-element}' - - string: - name: DIB_OS_PACKAGES - default: '{dib-os-packages}' - - string: - name: EXTRA_DIB_ELEMENTS - default: '{extra-dib-elements}' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - label: - name: SLAVE_LABEL - default: '{slave-label}' - - string: - name: XCI_LOOP - default: 'daily' - - string: - name: INSTALLER_TYPE - default: 'osa' - - string: - name: FUNCTEST_SUITE_NAME - default: 'daily' - description: "Daily suite name to run" + - project-parameter: + project: '{project}' + branch: '{opnfv-releng-version}' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-ha' + - string: + name: XCI_FLAVOR + default: 'ha' + - string: + name: DISTRO + default: '{distro}' + - string: + name: DIB_OS_RELEASE + default: '{dib-os-release}' + - string: + name: DIB_OS_ELEMENT + default: '{dib-os-element}' + - string: + name: DIB_OS_PACKAGES + default: '{dib-os-packages}' + - string: + name: EXTRA_DIB_ELEMENTS + default: '{extra-dib-elements}' + - string: + name: CLEAN_DIB_IMAGES + default: 'true' + - label: + name: SLAVE_LABEL + default: '{slave-label}' + - string: + name: XCI_LOOP + default: 'daily' + - string: + name: INSTALLER_TYPE + default: 'osa' + - string: + name: FUNCTEST_MODE + default: 'daily' + - string: + name: FUNCTEST_SUITE_NAME + default: 'daily' + description: "Daily suite name to run" + builders: - - description-setter: - description: "Built on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" - - 'xci-{phase}-builder' + - description-setter: + description: "Built on $NODE_NAME - Scenario: $DEPLOY_SCENARIO" + - 'xci-{phase}-builder' -#--------------------------- +# -------------------------- # builder macros -#--------------------------- +# -------------------------- - builder: name: xci-deploy-builder builders: - - shell: - !include-raw: ./xci-deploy.sh + - shell: + !include-raw: ./xci-deploy.sh - builder: name: xci-functest-builder builders: - - shell: | - #!/bin/bash + - shell: | + #!/bin/bash - echo "Hello World!" + echo "Hello World!" # this will be enabled once the xci is prepared -#- builder: +# - builder: # name: xci-functest-builder # builders: # - shell: diff --git a/jjb/xci/xci-verify-jobs.yml b/jjb/xci/xci-verify-jobs.yml index f7dcb9937..93ca18708 100644 --- a/jjb/xci/xci-verify-jobs.yml +++ b/jjb/xci/xci-verify-jobs.yml @@ -1,43 +1,56 @@ +--- - project: name: 'opnfv-xci-verify' project: releng-xci -#-------------------------------- -# branches -#-------------------------------- + # ------------------------------- + # branches + # ------------------------------- stream: - - master: - branch: '{stream}' -#-------------------------------- -# distros -#-------------------------------- + - master: + branch: '{stream}' + # ------------------------------- + # distros + # ------------------------------- distro: - - 'xenial': - disabled: false - - 'centos7': - disabled: true - - 'suse': - disabled: true -#-------------------------------- -# type -#-------------------------------- + - ubuntu: + disabled: false + successful: false + failed: false + unstable: false + notbuilt: false + - centos: + disabled: false + successful: true + failed: true + unstable: true + notbuilt: true + - opensuse: + disabled: false + successful: false + failed: false + unstable: false + notbuilt: false + # ------------------------------- + # type + # ------------------------------- type: - - virtual -#-------------------------------- -# patch verification phases -#-------------------------------- + - virtual + # ------------------------------- + # patch verification phases + # ------------------------------- phase: - - 'deploy' - - 'healthcheck' -#-------------------------------- -# jobs -#-------------------------------- + - 'deploy' + - 'healthcheck' + # ------------------------------- + # jobs + # ------------------------------- jobs: - - 'xci-verify-{distro}-{type}-{stream}' - - 'xci-verify-{phase}-{type}-{stream}' -#-------------------------------- + - 'xci-verify-{distro}-{type}-{stream}' + - 'xci-verify-{distro}-{phase}-{type}-{stream}' +# ------------------------------- # job templates -#-------------------------------- +# ------------------------------- - job-template: name: 'xci-verify-{distro}-{type}-{stream}' @@ -48,188 +61,275 @@ concurrent: true properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'xci-verify-.*' - - 'bifrost-verify-.*' - - 'bifrost-periodic-.*' - - 'osa-verify-.*' - - 'osa-periodic-.*' - block-level: 'NODE' + - logrotate-default + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'xci-verify-{distro}-.*' + - 'bifrost-verify-{distro}-.*' + - 'bifrost-periodic-{distro}-.*' + - 'osa-verify-{distro}-.*' + - 'osa-periodic-{distro}-.*' + block-level: 'NODE' + - throttle: + max-per-node: 2 + max-total: 10 + categories: + - xci-verify-virtual + option: category wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions + - ssh-agent-wrapper + - build-timeout: + timeout: 240 + - fix-workspace-permissions 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: 'true' - - 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' - file-paths: - - compare-type: ANT - pattern: 'xci/**' - forbidden-file-paths: - - compare-type: ANT - pattern: 'bifrost/**' - - compare-type: ANT - pattern: 'prototypes/**' - - compare-type: ANT - pattern: 'upstream/**' - - compare-type: ANT - pattern: '**/README.rst' - - compare-type: ANT - pattern: 'docs/**' - readable-message: true + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'true' + - 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' + file-paths: + - compare-type: ANT + pattern: 'bifrost/**' + - compare-type: ANT + pattern: 'xci/**' + forbidden-file-paths: + - compare-type: ANT + pattern: 'prototypes/**' + - compare-type: ANT + pattern: 'upstream/**' + - compare-type: ANT + pattern: '**/README.rst' + - compare-type: ANT + pattern: 'docs/**' + readable-message: true + skip-vote: + successful: '{obj:successful}' + failed: '{obj:failed}' + unstable: '{obj:unstable}' + notbuilt: '{obj:notbuilt}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'xci-virtual-{distro}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - project-parameter: + project: '{project}' + branch: '{branch}' + - label: + name: SLAVE_LABEL + default: 'xci-virtual' + - string: + name: CLEAN_DIB_IMAGES + default: 'true' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'xci-verify-deploy-{type}-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - DEPLOY_SCENARIO=os-nosdn-nofeature-noha - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: healthcheck - condition: SUCCESSFUL - projects: - - name: 'xci-verify-healthcheck-{type}-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - DEPLOY_SCENARIO=os-nosdn-nofeature-noha - FUNCTEST_SUITE_NAME=healthcheck - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true + - description-setter: + description: "Built on $NODE_NAME" + - multijob: + name: deploy + condition: SUCCESSFUL + projects: + - name: 'xci-verify-{distro}-deploy-{type}-{stream}' + current-parameters: true + predefined-parameters: | + DISTRO={distro} + DEPLOY_SCENARIO=os-nosdn-nofeature-noha + CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: FAILURE + abort-all-job: true + - multijob: + name: healthcheck + condition: SUCCESSFUL + projects: + - name: 'xci-verify-{distro}-healthcheck-{type}-{stream}' + current-parameters: true + predefined-parameters: | + DISTRO={distro} + DEPLOY_SCENARIO=os-nosdn-nofeature-noha + CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES + FUNCTEST_MODE=tier + FUNCTEST_TIER=healthcheck + GERRIT_BRANCH=$GERRIT_BRANCH + GERRIT_REFSPEC=$GERRIT_REFSPEC + GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER + GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE + node-parameters: true + kill-phase-on: NEVER + abort-all-job: true - job-template: - name: 'xci-verify-{phase}-{type}-{stream}' + name: 'xci-verify-{distro}-{phase}-{type}-{stream}' disabled: false concurrent: true properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'xci-verify-deploy-.*' - - 'xci-verify-healthcheck-.*' - - 'bifrost-verify-.*' - - 'bifrost-periodic-.*' - - 'osa-verify-.*' - - 'osa-periodic-.*' - block-level: 'NODE' + - logrotate-default + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'bifrost-verify-.*' + - 'bifrost-periodic-.*' + - 'osa-verify-.*' + - 'osa-periodic-.*' + block-level: 'NODE' parameters: - - string: - name: DISTRO - default: 'xenial' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-noha' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: XCI_FLAVOR - default: 'mini' - - string: - name: OPNFV_RELENG_DEV_PATH - default: $WORKSPACE/ - - string: - name: INSTALLER_TYPE - default: 'osa' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' + - string: + name: PROJECT + default: 'releng-xci' + - string: + name: DISTRO + default: 'ubuntu' + - string: + name: DEPLOY_SCENARIO + default: 'os-nosdn-nofeature-noha' + - string: + name: FUNCTEST_MODE + default: 'tier' + - string: + name: FUNCTEST_SUITE_NAME + default: 'healthcheck' + - string: + name: XCI_FLAVOR + default: 'mini' + - string: + name: CLEAN_DIB_IMAGES + default: 'true' + - string: + name: OPNFV_RELENG_DEV_PATH + default: $WORKSPACE/ + - string: + name: INSTALLER_TYPE + default: 'osa' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions + - ssh-agent-wrapper + - build-timeout: + timeout: 240 + - fix-workspace-permissions scm: - - git-scm-gerrit + - git-scm-gerrit builders: - - description-setter: - description: "Built on $NODE_NAME" - - 'xci-verify-{phase}-macro' + - description-setter: + description: "Built on $NODE_NAME" + - 'xci-verify-{phase}-macro' -#-------------------------------- +# ------------------------------- # builder macros -#-------------------------------- +# ------------------------------- - builder: name: 'xci-verify-deploy-macro' builders: - - shell: | - #!/bin/bash + - shell: | + #!/bin/bash - # for some reason, the PATH is not set correctly - # setting PATH for ansible stuff - export PATH=/home/jenkins/.local/bin:$PATH + # skip the deployment if the patch doesn't impact the deployment + if [[ "$GERRIT_TOPIC" =~ 'skip-verify' ]]; then + echo "Skipping the deployment!" + exit 0 + fi - cd $WORKSPACE/xci - ./xci-deploy.sh + cd $WORKSPACE + + # The start-new-vm.sh script will copy the entire releng-xci directory + # so lets prepare the test script now so it can be copied by the script. + # Please do not move it elsewhere or you would have to move it to the VM + # yourself. + cat > xci_test.sh<<EOF + #!/bin/bash + export DISTRO=$DISTRO + export DEPLOY_SCENARIO=$DEPLOY_SCENARIO + export FUNCTEST_MODE=$FUNCTEST_MODE + export FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME + export XCI_FLAVOR=$XCI_FLAVOR + export CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES + export OPNFV_RELENG_DEV_PATH=/home/devuser/releng-xci/ + export INSTALLER_TYPE=$INSTALLER_TYPE + export GIT_BASE=$GIT_BASE + export JENKINS_HOME=$JENKINS_HOME + + cd xci + ./xci-deploy.sh + EOF + chmod a+x xci_test.sh + + export XCI_BUILD_CLEAN_VM_OS=false + export XCI_UPDATE_CLEAN_VM_OS=true + + ./xci/scripts/vm/start-new-vm.sh $DISTRO + - shell: | + #!/bin/bash + + # skip the deployment if the patch doesn't impact the deployment + if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then + echo "Skipping the deployment!" + exit 0 + fi + + ssh -F $HOME/.ssh/xci-vm-config ${DISTRO}_xci_vm "cd releng-xci && ./xci_test.sh" - builder: name: 'xci-verify-healthcheck-macro' builders: - - shell: | - #!/bin/bash + - shell: | + #!/bin/bash + + # skip the healthcheck if the patch doesn't impact the deployment + if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then + echo "Skipping the healthcheck!" + exit 0 + fi + + echo "Hello World!" + - shell: | + #!/bin/bash + + # skip the deployment if the patch doesn't impact the deployment + if [[ "$GERRIT_TOPIC" =~ 'skip-verify' ]]; then + echo "Skipping the deployment!" + exit 0 + fi - echo "Hello World!" + sudo virsh destroy ${DISTRO}_xci_vm + sudo virsh undefine ${DISTRO}_xci_vm # this will be enabled once the xci is prepared -#- builder: +# - builder: # name: 'xci-verify-healthcheck-macro' # builders: # - shell: diff --git a/jjb/yardstick/yardstick-cleanup.sh b/jjb/yardstick/yardstick-cleanup.sh index 51455b593..47bf9bd10 100755 --- a/jjb/yardstick/yardstick-cleanup.sh +++ b/jjb/yardstick/yardstick-cleanup.sh @@ -1,36 +1,36 @@ #!/bin/bash -[[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" +[[ ${CI_DEBUG} == true ]] && redirect="/dev/stdout" || redirect="/dev/null" # Remove containers along with image opnfv/yardstick*:<none> -dangling_images=($(docker images -f "dangling=true" | grep opnfv/yardstick | awk '{print $3}')) -if [[ -n ${dangling_images} ]]; then +dangling_images=($(docker images -f "dangling=true" | awk '/opnfv[/]yardstick/ {print $3}')) +if [[ ${#dangling_images[@]} -eq 0 ]] ; then echo "Removing opnfv/yardstick:<none> images and their containers..." for image_id in "${dangling_images[@]}"; do echo " Removing image_id: $image_id and its containers" - containers=$(docker ps -a | grep $image_id | awk '{print $1}') + containers=$(docker ps -a | awk "/${image_id}/ {print \$1}") if [[ -n "$containers" ]];then - docker rm -f $containers >${redirect} + docker rm -f "${containers}" >${redirect} fi - docker rmi $image_id >${redirect} + docker rmi "${image_id}" >${redirect} done fi echo "Cleaning up docker containers/images..." # Remove previous running containers if exist -if [[ ! -z $(docker ps -a | grep opnfv/yardstick) ]]; then +if docker ps -a | grep -q opnfv/yardstick; then echo "Removing existing opnfv/yardstick containers..." - docker ps -a | grep opnfv/yardstick | awk '{print $1}' | xargs docker rm -f >$redirect + docker ps -a | awk "/${image_id}/ {print \$1}" | xargs docker rm -f >${redirect} fi # Remove existing images if exist -if [[ ! -z $(docker images | grep opnfv/yardstick) ]]; then +if docker images | grep -q opnfv/yardstick; then echo "Docker images to remove:" docker images | head -1 && docker images | grep opnfv/yardstick - image_tags=($(docker images | grep opnfv/yardstick | awk '{print $2}')) - for tag in "${image_tags[@]}"; do - echo "Removing docker image opnfv/yardstick:$tag..." - docker rmi opnfv/yardstick:$tag >$redirect + image_ids=($(docker images | awk '/opnfv[/]yardstick/ {print $3}')) + for id in "${image_ids[@]}"; do + echo "Removing docker image id $id..." + docker rmi "${id}" >${redirect} done fi diff --git a/jjb/yardstick/yardstick-daily-jobs.yml b/jjb/yardstick/yardstick-daily-jobs.yml index 5d38a0b7d..1ae79e12f 100644 --- a/jjb/yardstick/yardstick-daily-jobs.yml +++ b/jjb/yardstick/yardstick-daily-jobs.yml @@ -1,3 +1,4 @@ +--- ################################### # job configuration for yardstick ################################### @@ -6,197 +7,197 @@ project: '{name}' -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- + # ------------------------------- + # BRANCH ANCHORS + # ------------------------------- master: &master - stream: master - branch: '{stream}' - gs-pathname: '' - docker-tag: 'latest' - danube: &danube - stream: danube - branch: 'stable/{stream}' - gs-pathname: '{stream}' - docker-tag: 'stable' -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# Installers using labels -# CI PODs -# This section should only contain the installers -# that have been switched using labels for slaves -#-------------------------------- + stream: master + branch: '{stream}' + gs-pathname: '' + docker-tag: 'latest' + euphrates: &euphrates + stream: euphrates + branch: 'stable/{stream}' + gs-pathname: '{stream}' + docker-tag: 'stable' + # ------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ------------------------------- + # Installers using labels + # CI PODs + # This section should only contain the installers + # that have been switched using labels for slaves + # ------------------------------- pod: -# apex CI PODs - - virtual: - slave-label: apex-virtual-master - installer: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: apex-baremetal-master - installer: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: apex-virtual-danube - installer: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - baremetal: - slave-label: apex-baremetal-danube - installer: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube -# fuel CI PODs - - baremetal: - slave-label: fuel-baremetal - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: fuel-virtual - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: fuel-baremetal - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - virtual: - slave-label: fuel-virtual - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube -# armband CI PODs - - armband-baremetal: - slave-label: armband-baremetal - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - armband-virtual: - slave-label: armband-virtual - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - armband-baremetal: - slave-label: armband-baremetal - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - armband-virtual: - slave-label: armband-virtual - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube -# joid CI PODs - - baremetal: - slave-label: joid-baremetal - installer: joid - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: joid-virtual - installer: joid - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: joid-baremetal - installer: joid - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - virtual: - slave-label: joid-virtual - installer: joid - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube -# compass CI PODs - - baremetal: - slave-label: compass-baremetal - installer: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: compass-virtual - installer: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: compass-baremetal - installer: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - virtual: - slave-label: compass-virtual - installer: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube -#-------------------------------- -# None-CI PODs -#-------------------------------- - - orange-pod1: - slave-label: '{pod}' - installer: joid - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod1: - slave-label: '{pod}' - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod1: - slave-label: '{pod}' - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - zte-pod2: - slave-label: '{pod}' - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod3: - slave-label: '{pod}' - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod3: - slave-label: '{pod}' - installer: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - orange-pod2: - slave-label: '{pod}' - installer: joid - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - huawei-pod3: - slave-label: '{pod}' - installer: compass - auto-trigger-name: 'yardstick-daily-huawei-pod3-trigger' - <<: *master - - huawei-pod4: - slave-label: '{pod}' - installer: compass - auto-trigger-name: 'yardstick-daily-huawei-pod4-trigger' - <<: *master - - baremetal-centos: - slave-label: 'intel-pod8' - installer: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - flex-pod1: - slave-label: '{pod}' - installer: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *master -#-------------------------------- + # apex CI PODs + - virtual: + slave-label: apex-virtual-master + installer: apex + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - baremetal: + slave-label: apex-baremetal-master + installer: apex + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - virtual: + slave-label: apex-virtual-euphrates + installer: apex + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + - baremetal: + slave-label: apex-baremetal-euphrates + installer: apex + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + # fuel CI PODs + - baremetal: + slave-label: fuel-baremetal + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - virtual: + slave-label: fuel-virtual + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - baremetal: + slave-label: fuel-baremetal + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + - virtual: + slave-label: fuel-virtual + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + # armband CI PODs + - armband-baremetal: + slave-label: armband-baremetal + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - armband-virtual: + slave-label: armband-virtual + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - armband-baremetal: + slave-label: armband-baremetal + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + - armband-virtual: + slave-label: armband-virtual + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + # joid CI PODs + - baremetal: + slave-label: joid-baremetal + installer: joid + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - virtual: + slave-label: joid-virtual + installer: joid + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - baremetal: + slave-label: joid-baremetal + installer: joid + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + - virtual: + slave-label: joid-virtual + installer: joid + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + # compass CI PODs + - baremetal: + slave-label: compass-baremetal + installer: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - virtual: + slave-label: compass-virtual + installer: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - baremetal: + slave-label: compass-baremetal + installer: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + - virtual: + slave-label: compass-virtual + installer: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + # ------------------------------- + # None-CI PODs + # ------------------------------- + - orange-pod1: + slave-label: '{pod}' + installer: joid + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - zte-pod1: + slave-label: '{pod}' + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - zte-pod1: + slave-label: '{pod}' + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + - zte-pod2: + slave-label: '{pod}' + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - zte-pod3: + slave-label: '{pod}' + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - zte-pod3: + slave-label: '{pod}' + installer: fuel + auto-trigger-name: 'daily-trigger-disabled' + <<: *euphrates + - orange-pod2: + slave-label: '{pod}' + installer: joid + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - huawei-pod3: + slave-label: '{pod}' + installer: compass + auto-trigger-name: 'yardstick-daily-huawei-pod3-trigger' + <<: *master + - huawei-pod4: + slave-label: '{pod}' + installer: compass + auto-trigger-name: 'yardstick-daily-huawei-pod4-trigger' + <<: *master + - baremetal-centos: + slave-label: 'intel-pod8' + installer: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - flex-pod1: + slave-label: '{pod}' + installer: apex + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + # ------------------------------- testsuite: - - 'daily' + - 'daily' jobs: - - 'yardstick-{installer}-{pod}-{testsuite}-{stream}' + - 'yardstick-{installer}-{pod}-{testsuite}-{stream}' ################################ # job templates @@ -209,61 +210,61 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-per-node: 1 + option: 'project' wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: 180 - abort: true + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: 180 + abort: true triggers: - - '{auto-trigger-name}' + - '{auto-trigger-name}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults' - - 'yardstick-params-{slave-label}' - - string: - name: DEPLOY_SCENARIO - default: 'os-odl_l2-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull docker image' - - string: - name: YARDSTICK_SCENARIO_SUITE_NAME - default: opnfv_${{DEPLOY_SCENARIO}}_{testsuite}.yaml - description: 'Path to test scenario suite' - - string: - name: CI_DEBUG - default: 'false' - description: "Show debut output information" + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{slave-label}-defaults' + - 'yardstick-params-{slave-label}' + - string: + name: DEPLOY_SCENARIO + default: 'os-odl_l2-nofeature-ha' + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: 'Tag to pull docker image' + - string: + name: YARDSTICK_SCENARIO_SUITE_NAME + default: opnfv_${{DEPLOY_SCENARIO}}_{testsuite}.yaml + description: 'Path to test scenario suite' + - string: + name: CI_DEBUG + default: 'false' + description: "Show debut output information" scm: - - git-scm + - git-scm builders: - - description-setter: - description: "POD: $NODE_NAME" - - 'yardstick-cleanup' - - 'yardstick-fetch-os-creds' - - 'yardstick-fetch-k8s-conf' - - 'yardstick-{testsuite}' - - 'yardstick-store-results' + - description-setter: + description: "POD: $NODE_NAME" + - 'yardstick-cleanup' + - 'yardstick-fetch-os-creds' + - 'yardstick-fetch-k8s-conf' + - 'yardstick-{testsuite}' + - 'yardstick-store-results' publishers: - - email: - recipients: jean.gaoliang@huawei.com limingjiang@huawei.com ross.b.brattain@intel.com - - email-jenkins-admins-on-failure + - email: + recipients: jean.gaoliang@huawei.com limingjiang@huawei.com ross.b.brattain@intel.com + - email-jenkins-admins-on-failure ######################## # builder macros @@ -271,204 +272,216 @@ - builder: name: yardstick-daily builders: - - shell: - !include-raw: ./yardstick-daily.sh + - shell: + !include-raw: ./yardstick-daily.sh - builder: name: yardstick-vtcdaily builders: - - shell: - !include-raw: ./yardstick-vtcdaily.sh + - shell: + !include-raw: ./yardstick-vtcdaily.sh - builder: name: yardstick-fetch-os-creds builders: - - shell: - !include-raw: ../../utils/fetch_os_creds.sh + - shell: + !include-raw: ../../utils/fetch_os_creds.sh - builder: name: yardstick-fetch-k8s-conf builders: - - shell: - !include-raw: ./yardstick-get-k8s-conf.sh + - shell: + !include-raw: ./yardstick-get-k8s-conf.sh - builder: name: yardstick-store-results builders: - - shell: - !include-raw: ../../utils/push-test-logs.sh + - shell: + !include-raw: ../../utils/push-test-logs.sh - builder: name: yardstick-cleanup builders: - - shell: - !include-raw: ./yardstick-cleanup.sh + - shell: + !include-raw: ./yardstick-cleanup.sh ######################## # parameter macros ######################## - parameter: name: 'yardstick-params-apex-virtual-master' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-apex-baremetal-master' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-apex-virtual-danube' + name: 'yardstick-params-apex-virtual-euphrates' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-apex-baremetal-danube' + name: 'yardstick-params-apex-baremetal-euphrates' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-fuel-baremetal' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-fuel-virtual' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-armband-baremetal' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-armband-virtual' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-virtual' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-intel-pod8' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-compass-baremetal' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-zte-pod1' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-zte-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' + - 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-zte-pod3' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-orange-pod1' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-orange-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' + - 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: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-compass-virtual' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-huawei-pod3' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-huawei-pod4' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - 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-flex-pod1' parameters: - - string: - name: YARDSTICK_DB_BACKEND - default: '-i 104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - string: + name: YARDSTICK_DB_BACKEND + default: '-i 104.197.68.199:8086' + description: 'Arguments to use in order to choose the backend DB' ####################### ## trigger macros @@ -477,9 +490,9 @@ - trigger: name: 'yardstick-daily-huawei-pod3-trigger' triggers: - - timed: '0 1 * * *' + - timed: '0 1 * * *' - trigger: name: 'yardstick-daily-huawei-pod4-trigger' triggers: - - timed: '' + - timed: '' diff --git a/jjb/yardstick/yardstick-daily.sh b/jjb/yardstick/yardstick-daily.sh index aaefba26e..4b8c5d240 100755 --- a/jjb/yardstick/yardstick-daily.sh +++ b/jjb/yardstick/yardstick-daily.sh @@ -6,6 +6,8 @@ rc_file_vol="" cacert_file_vol="" sshkey="" +rc_file_vol="-v ${HOME}/opnfv-openrc.sh:/etc/yardstick/openstack.creds" + if [[ ${INSTALLER_TYPE} == 'apex' ]]; then instack_mac=$(sudo virsh domiflist undercloud | grep default | \ grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+") @@ -28,14 +30,13 @@ if [[ ${INSTALLER_TYPE} == 'joid' ]]; then # If dev lab, credentials may not be the default ones, just provide a path to put them into docker # replace the default one by the customized one provided by jenkins config fi -elif [[ ${INSTALLER_TYPE} == 'compass' && ${BRANCH} == 'master' ]]; then +elif [[ ${INSTALLER_TYPE} == 'compass' ]]; then cacert_file_vol="-v ${HOME}/os_cacert:/etc/yardstick/os_cacert" echo "export OS_CACERT=/etc/yardstick/os_cacert" >> ${HOME}/opnfv-openrc.sh - rc_file_vol="-v ${HOME}/opnfv-openrc.sh:/etc/yardstick/openstack.creds" -else - rc_file_vol="-v ${HOME}/opnfv-openrc.sh:/etc/yardstick/openstack.creds" +elif [[ ${INSTALLER_TYPE} == 'fuel' ]]; then + cacert_file_vol="-v ${HOME}/os_cacert:/etc/ssl/certs/mcp_os_cacert" + sshkey="-v ${SSH_KEY}:/root/.ssh/mcp.rsa" fi - # Set iptables rule to allow forwarding return traffic for container if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then sudo iptables -I FORWARD -j RETURN @@ -47,9 +48,17 @@ envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \ -e YARDSTICK_BRANCH=${BRANCH} -e BRANCH=${BRANCH} \ -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO}" +if [[ "${INSTALLER_TYPE}" == 'fuel' ]]; then + envs+=" -e SSH_KEY=/root/.ssh/mcp.rsa" +fi + # Pull the image with correct tag -echo "Yardstick: Pulling image opnfv/yardstick:${DOCKER_TAG}" -docker pull opnfv/yardstick:$DOCKER_TAG >$redirect +DOCKER_REPO='opnfv/yardstick' +if [ "$(uname -m)" = 'aarch64' ]; then + DOCKER_REPO="${DOCKER_REPO}_$(uname -m)" +fi +echo "Yardstick: Pulling image ${DOCKER_REPO}:${DOCKER_TAG}" +docker pull ${DOCKER_REPO}:$DOCKER_TAG >$redirect # map log directory branch=${BRANCH##*/} @@ -61,9 +70,9 @@ map_log_dir="-v ${dir_result}:/tmp/yardstick" # Run docker 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}" + cmd="juju ssh kubernetes-master/0 sudo docker run ${opts} ${envs} ${rc_file_vol} ${cacert_file_vol} ${map_log_dir} ${sshkey} ${DOCKER_REPO}:${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} \ + cmd="sudo docker run ${opts} ${envs} ${rc_file_vol} ${cacert_file_vol} ${map_log_dir} ${sshkey} ${DOCKER_REPO}:${DOCKER_TAG} \ exec_tests.sh ${YARDSTICK_DB_BACKEND} ${YARDSTICK_SCENARIO_SUITE_NAME}" fi diff --git a/jjb/yardstick/yardstick-project-jobs.yml b/jjb/yardstick/yardstick-project-jobs.yml index 643c1f932..7486d8a11 100644 --- a/jjb/yardstick/yardstick-project-jobs.yml +++ b/jjb/yardstick/yardstick-project-jobs.yml @@ -1,3 +1,4 @@ +--- ################################################### # All the jobs except verify have been removed! # They will only be enabled on request by projects! @@ -8,18 +9,18 @@ project: 'yardstick' jobs: - - 'yardstick-verify-{stream}' - - 'yardstick-merge-{stream}' + - 'yardstick-verify-{stream}' + - 'yardstick-merge-{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 + - euphrates: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: false ################################ # job templates @@ -31,42 +32,42 @@ 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}' + - 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}' wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 30 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 30 + fail: true builders: - - yardstick-unit-tests-and-docs-build + - yardstick-unit-tests-and-docs-build - job-template: name: 'yardstick-merge-{stream}' @@ -74,40 +75,40 @@ disabled: '{obj:disabled}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - string: - name: GS_URL - default: '$GS_BASE{gs-pathname}' - description: "Directory where the build artifact will be located upon the completion of the build." + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-ubuntu-defaults' + - string: + name: GS_URL + default: '$GS_BASE{gs-pathname}' + description: "Directory where the build artifact will be located upon the completion of the build." scm: - - git-scm + - git-scm 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}' + - 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}' wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 30 - fail: true + - ssh-agent-wrapper + - timeout: + timeout: 30 + fail: true builders: - - yardstick-unit-tests-and-docs-build + - yardstick-unit-tests-and-docs-build ################################ # job builders @@ -116,13 +117,13 @@ - builder: name: yardstick-unit-tests-and-docs-build builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail - sudo apt-get install -y build-essential python-dev python3-dev + sudo apt-get install -y build-essential python-dev python3-dev - echo "Running unit tests..." - cd $WORKSPACE - tox + echo "Running unit tests..." + cd $WORKSPACE + tox |