X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=jjb%2Fglobal-macros.yaml;h=2de57c7263e930cef970b8c855432bf93815320e;hb=HEAD;hp=3a9d906214e7c84312a819c226fb5a1d6776f5e2;hpb=0276dee0af158a6870af227344dcdde35e00333e;p=ci-management.git diff --git a/jjb/global-macros.yaml b/jjb/global-macros.yaml index 3a9d90621..2de57c726 100644 --- a/jjb/global-macros.yaml +++ b/jjb/global-macros.yaml @@ -1,178 +1,218 @@ +# Copyright (c) 2021 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + --- -# Global macros +# Global macros. #### PARAMETERS +# Keep 'parameter' entries ordered alphabetically, please. - parameter: - name: project-parameter + name: arch-parameter parameters: - string: - name: PROJECT - default: '{project}' - # yamllint disable-line rule:line-length - description: "JJB configured PROJECT parameter to identify a Gerrit project" + name: ARCH + default: '{arch}' + description: "Architecture parameter" - parameter: - name: gerrit-parameter + name: compiler-parameter parameters: - string: - name: GERRIT_BRANCH - default: '{branch}' - description: "JJB configured GERRIT_BRANCH parameter" + name: CC + default: '{cc}' + description: "CC parameter, can be gnu or clang" - parameter: - name: gerrit-project-parameter + name: make-parallel-jobs-parameter parameters: - string: - name: GERRIT_PROJECT - default: '{project}' - description: "GERRIT_PROJECT parameter if not given by trigger" + name: MAKE_PARALLEL_JOBS + default: '{make-parallel-jobs}' + description: "The number of cores to use for builds." - parameter: - name: os-parameter + name: make-test-os-parameter parameters: - string: - name: OS - default: '{os}' - description: "OS parameter" + name: MAKE_TEST_OS + default: '{make-test-os}' + description: "The OS on which 'make test' is run." - parameter: - name: gerrit-refspec-parameter + name: make-test-multiworker-os-parameter parameters: - string: - name: GERRIT_REFSPEC - default: '{refspec}' - description: "GERRIT_REFSPEC parameter not given by trigger" + name: MAKE_TEST_MULTIWORKER_OS + default: '{make-test-multiworker-os}' + description: "The OS on which 'make test' is run with multiple VPP workers." - parameter: - name: maven-project-parameter + name: csit-fail-on-crc-mismatch-parameter parameters: - string: - name: MAVEN_SELECTOR - default: '{maven}' - description: 'Maven selector to be used by shell scripts' + name: FDIO_CSIT_FAIL_ON_CRC_MISMATCH + default: '{fail-on-crc-mismatch}' + description: "If true, CRC is checked, else compatibility is tested." - parameter: - name: maven-exec + name: csit-perf-trial-duration-parameter parameters: - string: - name: MVN - # yamllint disable-line rule:line-length - default: '/w/tools/hudson.tasks.Maven_MavenInstallation/{maven-version}/bin/mvn' - description: 'Maven selector to be used by shell scripts' + name: CSIT_PERF_TRIAL_DURATION + default: "{csit-perf-trial-duration}" + description: "Duration of a trial measurement in BMRR tests." - parameter: - name: repo-name-parameter + name: csit-perf-trial-multiplicity-parameter parameters: - string: - name: REPO_NAME - default: '{repo-name}' - description: 'Name of repo to which to publish packaging' + name: CSIT_PERF_TRIAL_MULTIPLICITY + default: "{csit-perf-trial-multiplicity}" + description: "Number of subsamples for BMRR tests." - parameter: - name: compiler-parameter + name: gerrit-csit-refspec-parameter parameters: - string: - name: CC - default: '{cc}' - description: "CC parameter, can be gnu or clang" + name: CSIT_REF + default: '' + # yamllint disable-line rule:line-length + description: "GERRIT_REFSPEC parameter to override separately cloned CSIT repository, leave empty for autodetection / no override." - parameter: - name: is-csit-vpp-job-parameter + name: gerrit-event-comment-text-parameter parameters: - string: - name: IS_CSIT_VPP_JOB - default: '{is-csit-vpp-job}' - description: "Parameter is True if this is a CSIT vpp job." + name: GERRIT_EVENT_COMMENT_TEXT + default: '' + # yamllint disable-line rule:line-length + description: "GERRIT_EVENT_COMMENT_TEXT parameter not given by trigger" - parameter: - name: stream-parameter + name: gerrit-event-type-parameter parameters: - string: - name: STREAM - default: '{stream}' - description: "Stream job parameter to be used in shell scripts." + name: GERRIT_EVENT_TYPE + default: '' + description: "GERRIT_EVENT_TYPE parameter not given by trigger" - parameter: - name: topo-parameter + name: gerrit-parameter parameters: - string: - name: TOPO - default: '{topo}' - description: "Topology parameter" + name: GERRIT_BRANCH + default: '{branch}' + description: "JJB configured GERRIT_BRANCH parameter" - parameter: - name: arch-parameter + name: gerrit-project-parameter parameters: - string: - name: ARCH - default: '{arch}' - description: "Architecture parameter" + name: GERRIT_PROJECT + default: '{project}' + description: "GERRIT_PROJECT parameter if not given by trigger" - parameter: - name: csit-fail-on-crc-mismatch-parameter + name: gerrit-refspec-parameter parameters: - string: - name: FDIO_CSIT_FAIL_ON_CRC_MISMATCH - default: '{fail-on-crc-mismatch}' - description: "If true, CRC is checked, else compatibility is tested." + name: GERRIT_REFSPEC + default: '{refspec}' + description: "GERRIT_REFSPEC parameter not given by trigger" - parameter: - name: gerrit-event-type-parameter + name: is-csit-vpp-job-parameter parameters: - string: - name: GERRIT_EVENT_TYPE - default: '' - description: "GERRIT_EVENT_TYPE parameter not given by trigger" + name: IS_CSIT_VPP_JOB + default: '{is-csit-vpp-job}' + description: "Parameter is True if this is a CSIT vpp job." - parameter: - name: gerrit-event-comment-text-parameter + name: maven-exec parameters: - string: - name: GERRIT_EVENT_COMMENT_TEXT - default: '' + name: MVN # yamllint disable-line rule:line-length - description: "GERRIT_EVENT_COMMENT_TEXT parameter not given by trigger" + default: '/w/tools/hudson.tasks.Maven_MavenInstallation/{maven-version}/bin/mvn' + description: 'Maven selector to be used by shell scripts' - parameter: - name: gerrit-csit-refspec-parameter + name: maven-project-parameter parameters: - string: - name: CSIT_REF - default: '' + name: MAVEN_SELECTOR + default: '{maven}' + description: 'Maven selector to be used by shell scripts' + +- parameter: + name: mode-parameter + parameters: + - string: + name: MODE + default: '{mode}' + description: "mode parameter to be used in shell scripts." + +- parameter: + name: os-parameter + parameters: + - string: + name: OS + default: '{os}' + description: "OS parameter" + +- parameter: + name: project-parameter + parameters: + - string: + name: PROJECT + default: '{project}' # yamllint disable-line rule:line-length - description: "GERRIT_REFSPEC parameter to override separately cloned CSIT repository, leave empty for autodetection / no override." + description: "JJB configured PROJECT parameter to identify a Gerrit project" - parameter: - name: csit-perf-trial-duration-parameter + name: stream-parameter parameters: - string: - name: CSIT_PERF_TRIAL_DURATION - default: "{csit-perf-trial-duration}" - description: "Duration of a trial measurement in BMRR tests." + name: STREAM + default: '{stream}' + description: "Stream job parameter to be used in shell scripts." - parameter: - name: csit-perf-trial-multiplicity-parameter + name: topo-parameter parameters: - string: - name: CSIT_PERF_TRIAL_MULTIPLICITY - default: "{csit-perf-trial-multiplicity}" - description: "Number of subsamples for BMRR tests." + name: TOPO + default: '{topo}' + description: "Topology parameter" +# [end] Keep 'parameter' entries ordered alphabetically, please. -##### SCMS +#### SCMS +# Keep 'scm' entries ordered alphabetically, please. - scm: - name: git-scm + name: gerrit-trigger-scm scm: - git: credentials-id: '{credentials-id}' url: '$GIT_BASE' - refspec: '' + refspec: '{refspec}' branches: - - 'origin/{branch}' + - 'origin/$GERRIT_BRANCH' skip-tag: true - wipe-workspace: true + choosing-strategy: '{choosing-strategy}' - scm: - name: gerrit-trigger-scm + name: gerrit-trigger-scm-recursive scm: - git: credentials-id: '{credentials-id}' @@ -182,22 +222,24 @@ - 'origin/$GERRIT_BRANCH' skip-tag: true choosing-strategy: '{choosing-strategy}' + submodule: + recursive: '{submodule-recursive}' - scm: - name: gerrit-trigger-scm-recursive + name: git-scm scm: - git: credentials-id: '{credentials-id}' url: '$GIT_BASE' - refspec: '{refspec}' + refspec: '' branches: - - 'origin/$GERRIT_BRANCH' + - 'origin/{branch}' skip-tag: true - choosing-strategy: '{choosing-strategy}' - submodule: - recursive: '{submodule-recursive}' + wipe-workspace: true +# [end] Keep 'scm' entries ordered alphabetically, please. -###### WRAPPERS +#### WRAPPERS +# Keep 'wrapper' entries ordered alphabetically, please. - wrapper: name: build-timeout wrappers: @@ -207,12 +249,14 @@ fail: true - wrapper: - # This wrapper is used for all jobs that require no-activity timeouts - name: fdio-infra-wrappers-non-activity-timeout + # This wrapper is required for all jobs as it configures the wrappers + # needed by the fd.io infra. + name: fdio-infra-wrappers wrappers: - timeout: - type: no-activity + type: absolute timeout: '{build-timeout}' + timeout-var: 'BUILD_TIMEOUT' fail: true - timestamps - ssh-agent-credentials: @@ -224,14 +268,12 @@ single-use: true - wrapper: - # This wrapper is required for all jobs as it configures the wrappers - # needed by the fd.io infra. - name: fdio-infra-wrappers + # This wrapper is used for all jobs that require no-activity timeouts + name: fdio-infra-wrappers-non-activity-timeout wrappers: - timeout: - type: absolute + type: no-activity timeout: '{build-timeout}' - timeout-var: 'BUILD_TIMEOUT' fail: true - timestamps - ssh-agent-credentials: @@ -241,8 +283,206 @@ single-use: true - openstack: single-use: true +# [end] Keep 'wrapper' entries ordered alphabetically, please. + +#### TRIGGERS +# Keep 'trigger' entries ordered alphabetically, please. +- trigger: + name: gerrit-trigger-build + # Comes from hicn, some verify jobs wait for build to pass. + triggers: + - gerrit: + server-name: 'Primary' + trigger-on: + - comment-added-contains-event: + comment-contains-value: 'build_success-{stream}-{os}-{executor-arch}' + projects: + - project-compare-type: 'ANT' + project-pattern: '{name}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + +- trigger: + name: gerrit-trigger-checkstyle + # Comes from VPP, some verify jobs wait for checkstyle to pass. + # This macro is to be used for such verify jobs which are voting. + triggers: + - gerrit: + server-name: 'Primary' + trigger-on: + - comment-added-contains-event: + comment-contains-value: 'checkstyle_success' + projects: + - project-compare-type: 'ANT' + project-pattern: '{name}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + +- trigger: + name: gerrit-trigger-checkstyle-nonvoting + # Comes from VPP, some verify jobs wait for checkstyle to pass. + # This macro is to be used for such verify jobs which are non-voting. + triggers: + - gerrit: + server-name: 'Primary' + trigger-on: + - comment-added-contains-event: + comment-contains-value: 'checkstyle_success' + projects: + - project-compare-type: 'ANT' + project-pattern: '{name}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + skip-vote: + successful: true + failed: true + unstable: true + notbuilt: true + override-votes: true + gerrit-build-successful-verified-value: 1 + gerrit-build-failed-verified-value: 1 + gerrit-build-unstable-verified-value: 1 + gerrit-build-notbuilt-verified-value: 1 + +- trigger: + name: gerrit-trigger-csit-perftest + # Manual trigger common for csit-vpp and vpp-csit perf jobs. + triggers: + - gerrit: + server-name: 'Primary' + trigger-on: + - comment-added-contains-event: + comment-contains-value: '{trigger-word}' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + skip-vote: + successful: '{skip-vote}' + failed: '{skip-vote}' + unstable: '{skip-vote}' + notbuilt: '{skip-vote}' + +- trigger: + name: gerrit-trigger-csit-terraform + # Manual trigger common for csit-terraform jobs. + triggers: + - gerrit: + server-name: 'Primary' + trigger-on: + - comment-added-contains-event: + comment-contains-value: '{trigger-word}' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + skip-vote: + successful: '{skip-vote}' + failed: '{skip-vote}' + unstable: '{skip-vote}' + notbuilt: '{skip-vote}' + +- trigger: + name: gerrit-trigger-csit-vpp-devicetest-full + # Comes from CSIT, for automatic jobs running device tests with VPP builds. + # The job acts as an automatic verify job for CSIT contributions. + triggers: + - gerrit: + server-name: 'Primary' + trigger-on: + # The main way the job is triggered automatically on patch upload. + # Gated by tox job, so we do not spend resources on WiP changes. + - comment-added-contains-event: + comment-contains-value: 'tox_success' + # Manual trigger to allow testing WiP changes with selected tags. + - comment-added-contains-event: + comment-contains-value: 'csit-devicetest' + # A comment with "recheck" restarts tox job, so no condition here. + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + skip-vote: + successful: '{skip-vote}' + failed: '{skip-vote}' + unstable: '{skip-vote}' + notbuilt: '{skip-vote}' + +- trigger: + name: gerrit-trigger-csit-vpp-devicetest-manual + # Comes from CSIT, for manual jobs running "device" tests with VPP builds. + # The job acts as a manual (optional) verify job for CSIT contributions. + triggers: + - gerrit: + server-name: 'Primary' + trigger-on: + - comment-added-contains-event: + comment-contains-value: 'csit-devicetest' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + skip-vote: + successful: '{skip-vote}' + failed: '{skip-vote}' + unstable: '{skip-vote}' + notbuilt: '{skip-vote}' + +- trigger: + name: gerrit-trigger-manually-triggered + triggers: + - gerrit: + server-name: 'Primary' + trigger-on: + - comment-added-contains-event: + comment-contains-value: '{comment-trigger-value}' + projects: + - project-compare-type: 'ANT' + project-pattern: '{name}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + +- trigger: + name: gerrit-trigger-patch-merged + triggers: + - gerrit: + server-name: 'Primary' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{name}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + # Force Jenkins always vote the values it should already have voted + # during the prior verify phase + override-votes: true + gerrit-build-started-verified-value: 1 + gerrit-build-successful-verified-value: 1 + gerrit-build-failed-verified-value: 1 + gerrit-build-unstable-verified-value: 1 + gerrit-build-notbuilt-verified-value: 1 + gerrit-build-started-codereview-value: 0 + gerrit-build-successful-codereview-value: 0 + gerrit-build-failed-codereview-value: 0 + gerrit-build-unstable-codereview-value: 0 + gerrit-build-notbuilt-codereview-value: 0 -###### TRIGGERS - trigger: name: gerrit-trigger-patch-submitted triggers: @@ -266,26 +506,32 @@ branch-pattern: '**/{branch}' - trigger: - name: gerrit-trigger-trivial-patch-submitted + name: gerrit-trigger-os-patch-merged triggers: - gerrit: server-name: 'Primary' trigger-on: - - patchset-created-event: - exclude-drafts: 'true' - 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' + comment-contains-value: 'os-merge' projects: - project-compare-type: 'ANT' project-pattern: '{name}' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' + # Force Jenkins always vote the values it should already have voted + # during the prior verify phase + override-votes: true + gerrit-build-started-verified-value: 1 + gerrit-build-successful-verified-value: 1 + gerrit-build-failed-verified-value: 1 + gerrit-build-unstable-verified-value: 1 + gerrit-build-notbuilt-verified-value: 1 + gerrit-build-started-codereview-value: 0 + gerrit-build-successful-codereview-value: 0 + gerrit-build-failed-codereview-value: 0 + gerrit-build-unstable-codereview-value: 0 + gerrit-build-notbuilt-codereview-value: 0 - trigger: name: gerrit-trigger-os-trivial-patch-submitted @@ -305,7 +551,7 @@ branch-pattern: '**/{branch}' - trigger: - name: gerrit-trigger-trivial-patch-submitted-skip-vote + name: gerrit-trigger-trivial-patch-submitted triggers: - gerrit: server-name: 'Primary' @@ -325,85 +571,83 @@ branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' - skip-vote: - successful: true - failed: true - unstable: true - notbuilt: true - trigger: - name: gerrit-trigger-manually-triggered + name: gerrit-trigger-trivial-patch-submitted-skip-vote triggers: - gerrit: server-name: 'Primary' trigger-on: + - patchset-created-event: + exclude-drafts: 'true' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'true' + - draft-published-event - comment-added-contains-event: - comment-contains-value: '{comment-trigger-value}' + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' projects: - project-compare-type: 'ANT' project-pattern: '{name}' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' + skip-vote: + successful: true + failed: true + unstable: true + notbuilt: true - trigger: - name: gerrit-trigger-patch-merged + name: gerrit-trigger-vpp-csit-devicetest-full + # Comes from VPP, for automated jobs running "device" tests with CSIT code. + # The job acts as an automatic verify job for VPP contributions. triggers: - gerrit: server-name: 'Primary' trigger-on: - - change-merged-event - comment-added-contains-event: - comment-contains-value: 'remerge' + comment-contains-value: 'checkstyle_success' + - comment-added-contains-event: + comment-contains-value: 'devicetest' projects: - project-compare-type: 'ANT' project-pattern: '{name}' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' - # Force Jenkins always vote the values it should already have voted - # during the prior verify phase - override-votes: true - gerrit-build-started-verified-value: 1 - gerrit-build-successful-verified-value: 1 - gerrit-build-failed-verified-value: 1 - gerrit-build-unstable-verified-value: 1 - gerrit-build-notbuilt-verified-value: 1 - gerrit-build-started-codereview-value: 0 - gerrit-build-successful-codereview-value: 0 - gerrit-build-failed-codereview-value: 0 - gerrit-build-unstable-codereview-value: 0 - gerrit-build-notbuilt-codereview-value: 0 + skip-vote: + successful: '{skip-vote}' + failed: '{skip-vote}' + unstable: '{skip-vote}' + notbuilt: '{skip-vote}' - trigger: - name: gerrit-trigger-os-patch-merged + name: gerrit-trigger-vpp-csit-devicetest-manual + # Comes from VPP, for manual jobs running "device" tests with CSIT code. + # The job acts as a manual (optional) verify job for VPP contributions. triggers: - gerrit: server-name: 'Primary' trigger-on: - comment-added-contains-event: - comment-contains-value: 'os-merge' + comment-contains-value: 'devicetest' projects: - project-compare-type: 'ANT' project-pattern: '{name}' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' - # Force Jenkins always vote the values it should already have voted - # during the prior verify phase - override-votes: true - gerrit-build-started-verified-value: 1 - gerrit-build-successful-verified-value: 1 - gerrit-build-failed-verified-value: 1 - gerrit-build-unstable-verified-value: 1 - gerrit-build-notbuilt-verified-value: 1 - gerrit-build-started-codereview-value: 0 - gerrit-build-successful-codereview-value: 0 - gerrit-build-failed-codereview-value: 0 - gerrit-build-unstable-codereview-value: 0 - gerrit-build-notbuilt-codereview-value: 0 + skip-vote: + successful: '{skip-vote}' + failed: '{skip-vote}' + unstable: '{skip-vote}' + notbuilt: '{skip-vote}' +# [end] Keep 'trigger' entries ordered alphabetically, please. -# Publishers +#### PUBLISHERS +# Keep 'publisher' entries ordered alphabetically, please. - publisher: name: archive-artifacts publishers: @@ -413,6 +657,103 @@ fingerprint: true latest-only: true +- publisher: + name: csit-trending-failed + publishers: + - email-ext: + # yamllint disable-line rule:line-length + recipients: 'tifrank@cisco.com, csit-report+int+616+181919729795594561@lists.fd.io' + reply-to: '' + content-type: 'text' + subject: '{branch}: Failed tests as of $BUILD_TIMESTAMP' + # yamllint disable-line rule:line-length + body: | + Following tests failed in the last trending job runs, listed per testbed type. + + ${{FILE,path="resources/tools/presentation/_build/_static/vpp/trending-failed-tests.txt"}} + failure: false + success: true + +- publisher: + name: csit-trending-failed-job + publishers: + - email-ext: + # yamllint disable-line rule:line-length + recipients: 'tifrank@cisco.com, csit-report+int+616+181919729795594561@lists.fd.io' + reply-to: '' + content-type: 'text' + subject: '{branch}: The build number $BUILD_NUMBER of the job $JOB_NAME failed' + # yamllint disable-line rule:line-length + body: | + For more information see $BUILD_URL. + failure: true + success: false + +- publisher: + name: csit-trending-progressions + publishers: + - email-ext: + # yamllint disable-line rule:line-length + recipients: 'tifrank@cisco.com, csit-report+int+616+181919729795594561@lists.fd.io' + reply-to: '' + content-type: 'text' + subject: '{branch}: Progressions as of $BUILD_TIMESTAMP' + # yamllint disable-line rule:line-length + body: | + Following progressions occured in the last trending job runs, listed per testbed type. + + ${{FILE,path="resources/tools/presentation/_build/_static/vpp/trending-progressions.txt"}} + failure: false + success: true + +- publisher: + name: csit-trending-regressions + publishers: + - email-ext: + # yamllint disable-line rule:line-length + recipients: 'tifrank@cisco.com, csit-report+int+616+181919729795594561@lists.fd.io' + reply-to: '' + content-type: 'text' + subject: '{branch}: Regressions as of $BUILD_TIMESTAMP' + # yamllint disable-line rule:line-length + body: | + Following regressions occured in the last trending job runs, listed per testbed type. + + ${{FILE,path="resources/tools/presentation/_build/_static/vpp/trending-regressions.txt"}} + failure: false + success: true + +- publisher: + name: vpp-dpdk-rdma-version-mismatch + publishers: + - email-ext: + # NOTE: noreply@jenkins.fd.io must be a member of vpp-build@lists.fd.io + # for the email to be distributed to the group members. + # yamllint disable-line rule:line-length + recipients: 'vpp-build@lists.fd.io' + reply-to: '' + content-type: 'text' + subject: '{branch}: vpp-dpdk-rdma-version-mismatch job failed!' + # yamllint disable-line rule:line-length + body: | + Build $BUILD_NUMBER of $JOB_NAME failed. + Check $BUILD_URL + console log to see if the job failed due to a package version mismatch or + a CI infra issue. If the failure was due to a CI infra issue, then + there is nothing else to be done. + + However, if there was a package version mismatch, then the MLX driver + is NOT being built in the VPP DPDK library. Please push a gerrit change + with the updated package version(s) in the version matrix file, resolve + any build issues, and merge the change to re-enable the building of the + MLX DPDK driver in the VPP DPDK library. + + Thanks, + The VPP Build Maintainers + + failure: true + success: false + - publisher: name: email-notification publishers: @@ -433,41 +774,93 @@ - recipients - publisher: - name: jacoco-report + name: fdio-infra-publish-docs + # macro to finish up a docs build. + # + # Handles the following: + # - Mapping docs S3 bucket credentials for merge job docs upload + # - Cleanup workspace publishers: - - jacoco: - exec-pattern: '**/**.exec' - class-pattern: '**/classes' - source-pattern: '**/src/main/java' - # yamllint disable-line rule:line-length - exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**' - status-update: true - targets: - - branch: - healthy: 10 - unhealthy: 20 - - method: - healthy: 50 - unhealthy: 40 + - postbuildscript: + builders: + - role: BOTH + build-on: + - ABORTED + - FAILURE + - NOT_BUILT + - SUCCESS + - UNSTABLE + build-steps: + - fdio-infra-ship-docs + mark-unstable-if-failed: true + - workspace-cleanup: + exclude: + # Do not clean up *.jenkins-trigger files for jobs that use a + # properties file as input for triggering another build. + - "**/*.jenkins-trigger" + fail-build: false - publisher: - name: robot-report + name: fdio-infra-publish-cov-7day + # macro to finish up a verify docs build. + # + # Handles the following: + # - Mapping 7-day retention S3 bucket credentials for verify job docs upload + # - Cleanup workspace publishers: - - robot: - output-path: '{output-path}' - other-files: '' + - postbuildscript: + builders: + - role: BOTH + build-on: + - ABORTED + - FAILURE + - NOT_BUILT + - SUCCESS + - UNSTABLE + build-steps: + - fdio-infra-ship-cov-7day + mark-unstable-if-failed: true + - workspace-cleanup: + exclude: + # Do not clean up *.jenkins-trigger files for jobs that use a + # properties file as input for triggering another build. + - "**/*.jenkins-trigger" + fail-build: false - publisher: - name: fdio-infra-shiplogs - # To archive things, the job will need to create an "archives" directory in - # the workspace and this macro will handle copying the contents of the - # archives directory. + name: fdio-infra-publish-docs-7day + # macro to finish up a verify docs build. # - # Uses the build parameter ARCHIVE_ARTIFACTS if not empty to find files to - # archive. You can pass globstar patterns for example "**/*.xml **/*.log" as - # the archive pattern. This is a space separated list of files to archive. + # Handles the following: + # - Mapping 7-day retention S3 bucket credentials for verify job docs upload + # - Cleanup workspace + publishers: + - postbuildscript: + builders: + - role: BOTH + build-on: + - ABORTED + - FAILURE + - NOT_BUILT + - SUCCESS + - UNSTABLE + build-steps: + - fdio-infra-ship-docs-7day + mark-unstable-if-failed: true + - workspace-cleanup: + exclude: + # Do not clean up *.jenkins-trigger files for jobs that use a + # properties file as input for triggering another build. + - "**/*.jenkins-trigger" + fail-build: false + +- publisher: + name: fdio-infra-publish + # macro to finish up a build. # - # Also ensure that the workspace is cleaned up at the end of the build. + # Handles the following: + # - Shipping logs to S3 logs repository + # - Cleanup workspace publishers: - postbuildscript: builders: @@ -479,28 +872,52 @@ - SUCCESS - UNSTABLE build-steps: - - shell: !include-raw: include-raw-deploy-archives.sh - - maven-target: - maven-version: '{maven-version}' - pom: '.archives/deploy-archives.xml' - goals: 'clean deploy -V -B -q -Dmaven.repo.local=/tmp/r' - settings: 'jenkins-log-archives-settings' - settings-type: cfp - global-settings: 'global-settings' - global-settings-type: cfp - - description-setter: - regexp: '^Build logs: .*' + - shell: !include-raw-escape: scripts/post_build_executor_info.sh + - shell: !include-raw-escape: scripts/post_build_deploy_archives.sh + - fdio-infra-ship-logs mark-unstable-if-failed: true - workspace-cleanup: + exclude: + # Do not clean up *.jenkins-trigger files for jobs that use a + # properties file as input for triggering another build. + - "**/*.jenkins-trigger" fail-build: false +- publisher: + name: jacoco-report + publishers: + - jacoco: + exec-pattern: '**/**.exec' + class-pattern: '**/classes' + source-pattern: '**/src/main/java' + # yamllint disable-line rule:line-length + exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**' + status-update: true + targets: + - branch: + healthy: 10 + unhealthy: 20 + - method: + healthy: 50 + unhealthy: 40 + - publisher: name: retry-build-on-builder-error publishers: - naginator: max-failed-builds: 1 -###### BUILDERS +- publisher: + name: robot-report + publishers: + - robot: + output-path: '{output-path}' + other-files: '' + +# [end] Keep 'publisher' entries ordered alphabetically, please. + +#### BUILDERS +# Keep 'builder' entries ordered alphabetically, please. - builder: name: ci-management-check-unicode builders: @@ -508,22 +925,62 @@ $WORKSPACE/scripts/check-unicode.sh jjb/ - builder: - name: provide-maven-settings + name: fdio-infra-ship-docs builders: - config-file-provider: files: - - file-id: '{global-settings-file}' - variable: 'GLOBAL_SETTINGS_FILE' - - file-id: '{settings-file}' - variable: 'SETTINGS_FILE' + - file-id: "jenkins-s3-docs-ship" + target: $HOME/.aws/credentials + - shell: !include-raw-escape: + - scripts/terraform_s3_docs_ship.sh + - shell: !include-raw-escape: + - scripts/publish_docs.sh + - shell: !include-raw: + - ../global-jjb/shell/logs-clear-credentials.sh + +- builder: + name: fdio-infra-ship-cov-7day + builders: + - config-file-provider: + files: + - file-id: "jenkins-s3-vpp-docs-ship" + target: $HOME/.aws/credentials + - shell: !include-raw-escape: + - scripts/terraform_s3_docs_ship.sh + - shell: !include-raw-escape: + - scripts/publish_cov.sh + - shell: !include-raw: + - ../global-jjb/shell/logs-clear-credentials.sh -- property: - name: fdio-infra-properties - properties: - - build-discarder: - days-to-keep: '{build-days-to-keep}' - num-to-keep: '{build-num-to-keep}' +- builder: + name: fdio-infra-ship-docs-7day + builders: + - config-file-provider: + files: + - file-id: "jenkins-s3-vpp-docs-ship" + target: $HOME/.aws/credentials + - shell: !include-raw-escape: + - scripts/terraform_s3_docs_ship.sh + - shell: !include-raw-escape: + - scripts/publish_docs.sh + - shell: !include-raw: + - ../global-jjb/shell/logs-clear-credentials.sh +- builder: + name: fdio-infra-ship-logs + builders: + - config-file-provider: + files: + - file-id: "jenkins-s3-log-ship" + target: $HOME/.aws/credentials + - shell: !include-raw-escape: + - scripts/publish_library_py.sh + - shell: !include-raw: + - scripts/publish_logs.sh + - shell: !include-raw: + - ../global-jjb/shell/logs-clear-credentials.sh + - description-setter: + regexp: "(^S3 build logs: .*)" - builder: name: packer-validate @@ -574,3 +1031,14 @@ packer.io build -var-file=$CLOUDENV \ -var-file=../packer/vars/{platform}.json \ ../packer/templates/{template}.json + +- builder: + name: provide-maven-settings + builders: + - config-file-provider: + files: + - file-id: '{global-settings-file}' + variable: 'GLOBAL_SETTINGS_FILE' + - file-id: '{settings-file}' + variable: 'SETTINGS_FILE' +# [end] Keep 'builder' entries ordered alphabetically, please.