+# 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}'
- '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:
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:
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:
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:
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
branch-pattern: '**/{branch}'
- trigger:
- name: gerrit-trigger-trivial-patch-submitted-skip-vote
+ name: gerrit-trigger-trivial-patch-submitted
triggers:
- gerrit:
server-name: 'Primary'
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:
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:
- 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:
- 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:
$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
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.