-# Global macros
+# Copyright (c) 2020 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.
#### PARAMETERS
+# Keep 'parameter' entries ordered alphabetically, please.
- parameter:
- name: project-parameter
+ name: arch-parameter
+ parameters:
+ - string:
+ name: ARCH
+ default: '{arch}'
+ description: "Architecture parameter"
+
+- parameter:
+ name: compiler-parameter
+ parameters:
+ - string:
+ name: CC
+ default: '{cc}'
+ description: "CC parameter, can be gnu or clang"
+
+- parameter:
+ name: make-parallel-jobs-parameter
+ parameters:
+ - string:
+ name: MAKE_PARALLEL_JOBS
+ default: '{make-parallel-jobs}'
+ description: "The number of cores to use for builds."
+
+- parameter:
+ name: csit-fail-on-crc-mismatch-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."
+
+- parameter:
+ name: csit-perf-trial-duration-parameter
+ parameters:
+ - string:
+ name: CSIT_PERF_TRIAL_DURATION
+ default: "{csit-perf-trial-duration}"
+ description: "Duration of a trial measurement in BMRR tests."
+
+- parameter:
+ name: csit-perf-trial-multiplicity-parameter
parameters:
- - string:
- name: PROJECT
- default: '{project}'
- description: "JJB configured PROJECT parameter to identify a Gerrit project"
+ - string:
+ name: CSIT_PERF_TRIAL_MULTIPLICITY
+ default: "{csit-perf-trial-multiplicity}"
+ description: "Number of subsamples for BMRR tests."
+
+- parameter:
+ name: gerrit-csit-refspec-parameter
+ parameters:
+ - string:
+ 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: gerrit-event-comment-text-parameter
+ parameters:
+ - string:
+ name: GERRIT_EVENT_COMMENT_TEXT
+ default: ''
+ # yamllint disable-line rule:line-length
+ description: "GERRIT_EVENT_COMMENT_TEXT parameter not given by trigger"
+
+- parameter:
+ name: gerrit-event-type-parameter
+ parameters:
+ - string:
+ name: GERRIT_EVENT_TYPE
+ default: ''
+ description: "GERRIT_EVENT_TYPE parameter not given by trigger"
- parameter:
name: gerrit-parameter
parameters:
- - string:
- name: GERRIT_BRANCH
- default: '{branch}'
- description: "JJB configured GERRIT_BRANCH parameter"
+ - string:
+ name: GERRIT_BRANCH
+ default: '{branch}'
+ description: "JJB configured GERRIT_BRANCH parameter"
- parameter:
name: gerrit-project-parameter
parameters:
- - string:
- name: GERRIT_PROJECT
- default: '{project}'
- description: "GERRIT_PROJECT parameter if not given by trigger"
+ - string:
+ name: GERRIT_PROJECT
+ default: '{project}'
+ description: "GERRIT_PROJECT parameter if not given by trigger"
- parameter:
- name: os-parameter
+ name: gerrit-refspec-parameter
parameters:
- - string:
- name: OS
- default: '{os}'
- description: "OS parameter"
+ - string:
+ name: GERRIT_REFSPEC
+ default: '{refspec}'
+ description: "GERRIT_REFSPEC parameter not given by trigger"
- parameter:
- name: gerrit-refspec-parameter
+ name: is-csit-vpp-job-parameter
+ parameters:
+ - string:
+ name: IS_CSIT_VPP_JOB
+ default: '{is-csit-vpp-job}'
+ description: "Parameter is True if this is a CSIT vpp job."
+
+- parameter:
+ name: maven-exec
parameters:
- - string:
- name: GERRIT_REFSPEC
- default: '{refspec}'
- description: "GERRIT_REFSPEC parameter not given by trigger"
+ - 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'
- parameter:
name: maven-project-parameter
parameters:
- - string:
- name: MAVEN_SELECTOR
- default: '{maven}'
- description: 'Maven selector to be used by shell scripts'
+ - string:
+ 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: "JJB configured PROJECT parameter to identify a Gerrit project"
+
- parameter:
name: repo-name-parameter
parameters:
- - string:
- name: REPO_NAME
- default: '{repo-name}'
- description: 'Name of repo to which to publish packaging'
+ - string:
+ name: REPO_NAME
+ default: '{repo-name}'
+ description: 'Name of repo to which to publish packaging'
+- parameter:
+ name: stream-parameter
+ parameters:
+ - string:
+ name: STREAM
+ default: '{stream}'
+ description: "Stream job parameter to be used in shell scripts."
-##### SCMS
-- scm:
- name: git-scm
- scm:
- - git:
- credentials-id: '{credentials-id}'
- url: '$GIT_BASE'
- refspec: ''
- branches:
- - 'origin/{branch}'
- skip-tag: true
- wipe-workspace: true
+- parameter:
+ name: topo-parameter
+ parameters:
+ - string:
+ name: TOPO
+ default: '{topo}'
+ description: "Topology parameter"
+# [end] Keep 'parameter' entries ordered alphabetically, please.
+#### SCMS
+# Keep 'scm' entries ordered alphabetically, please.
- scm:
name: gerrit-trigger-scm
scm:
- - git:
- credentials-id: '{credentials-id}'
- url: '$GIT_BASE'
- refspec: '{refspec}'
- branches:
- - 'origin/$GERRIT_BRANCH'
- skip-tag: true
- choosing-strategy: '{choosing-strategy}'
+ - git:
+ credentials-id: '{credentials-id}'
+ url: '$GIT_BASE'
+ refspec: '{refspec}'
+ branches:
+ - 'origin/$GERRIT_BRANCH'
+ skip-tag: true
+ choosing-strategy: '{choosing-strategy}'
- scm:
- name: zuul-trigger-scm
+ name: gerrit-trigger-scm-recursive
scm:
- git:
- url: '$ZUUL_URL/$ZUUL_PROJECT'
+ credentials-id: '{credentials-id}'
+ url: '$GIT_BASE'
refspec: '{refspec}'
branches:
- - '{commit}'
+ - 'origin/$GERRIT_BRANCH'
+ skip-tag: true
+ choosing-strategy: '{choosing-strategy}'
+ submodule:
+ recursive: '{submodule-recursive}'
+
+- scm:
+ name: git-scm
+ scm:
+ - git:
+ credentials-id: '{credentials-id}'
+ url: '$GIT_BASE'
+ refspec: ''
+ branches:
+ - 'origin/{branch}'
skip-tag: true
wipe-workspace: true
+# [end] Keep 'scm' entries ordered alphabetically, please.
-###### WRAPPERS
+#### WRAPPERS
+# Keep 'wrapper' entries ordered alphabetically, please.
- wrapper:
name: build-timeout
wrappers:
- - timeout:
- type: absolute
- timeout: 360
- fail: true
+ - timeout:
+ type: absolute
+ timeout: 360
+ 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:
users:
- 'jenkins-gerrit-credentials'
- jclouds:
- single-use: True
+ single-use: true
+ - openstack:
+ 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:
users:
- - 'jenkins-gerrit-credentials'
+ - 'jenkins-gerrit-credentials'
- jclouds:
- single-use: True
+ single-use: true
+ - openstack:
+ single-use: true
+# [end] Keep 'wrapper' entries ordered alphabetically, please.
-###### TRIGGERS
+#### TRIGGERS
+# Keep 'trigger' entries ordered alphabetically, please.
- trigger:
- name: gerrit-trigger-patch-submitted
+ 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:
- - 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: '{name}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
+ - 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:
+ - patchset-created-event:
+ exclude-drafts: 'true'
+ 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'
+ - 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-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}'
+ - 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
-
-# Publishers
+ - 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
+
+- trigger:
+ name: gerrit-trigger-patch-submitted
+ triggers:
+ - gerrit:
+ server-name: 'Primary'
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: 'true'
+ 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: '{name}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+
+- trigger:
+ name: gerrit-trigger-os-patch-merged
+ triggers:
+ - gerrit:
+ server-name: 'Primary'
+ trigger-on:
+ - comment-added-contains-event:
+ 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
+ triggers:
+ - gerrit:
+ server-name: 'Primary'
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: 'os-check'
+ - comment-added-contains-event:
+ comment-contains-value: 'os-verify'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{name}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+
+- trigger:
+ name: gerrit-trigger-trivial-patch-submitted
+ 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'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{name}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+
+- trigger:
+ 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: '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-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:
+ - comment-added-contains-event:
+ 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}'
+ skip-vote:
+ successful: '{skip-vote}'
+ failed: '{skip-vote}'
+ unstable: '{skip-vote}'
+ notbuilt: '{skip-vote}'
+
+- trigger:
+ 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: 'devicetest'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{name}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ skip-vote:
+ successful: '{skip-vote}'
+ failed: '{skip-vote}'
+ unstable: '{skip-vote}'
+ notbuilt: '{skip-vote}'
+# [end] Keep 'trigger' entries ordered alphabetically, please.
+
+#### PUBLISHERS
+# Keep 'publisher' entries ordered alphabetically, please.
- publisher:
name: archive-artifacts
publishers:
- - archive:
- artifacts: '{artifacts}'
- allow-empty: true
- fingerprint: true
- latest-only: true
+ - archive:
+ artifacts: '{artifacts}'
+ allow-empty: true
+ fingerprint: true
+ latest-only: true
- publisher:
name: email-notification
publishers:
- - email-ext:
- recipients: 'nobody@projectrotterdam.info'
- reply-to:
- content-type: default
- subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
- body: |
- $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
-
- Check console output at $BUILD_URL to view the results.
- unstable: true
- fixed: true
- send-to:
- - developers
- - recipients
+ - email-ext:
+ recipients: 'nobody@projectrotterdam.info'
+ reply-to: ''
+ content-type: default
+ # yamllint disable-line rule:line-length
+ subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
+ body: |
+ $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
+
+ Check console output at $BUILD_URL to view the results.
+ unstable: true
+ fixed: true
+ send-to:
+ - developers
+ - recipients
+
+- 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.
+ #
+ # 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.
+ #
+ # Also ensure that the workspace is cleaned up at the end of the build.
+ publishers:
+ - postbuildscript:
+ builders:
+ - role: BOTH
+ build-on:
+ - ABORTED
+ - FAILURE
+ - NOT_BUILT
+ - 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: .*'
+ mark-unstable-if-failed: true
+ - workspace-cleanup:
+ fail-build: false
- publisher:
name: jacoco-report
publishers:
- - jacoco:
- exec-pattern: '**/**.exec'
- class-pattern: '**/classes'
- source-pattern: '**/src/main/java'
- exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**'
- status-update: true
- targets:
- - branch:
- healthy: 10
- unhealthy: 20
- - method:
- healthy: 50
- unhealthy: 40
+ - 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
- publisher:
name: robot-report
publishers:
- - robot:
- output-path: '{output-path}'
- other-files: ''
+ - robot:
+ output-path: '{output-path}'
+ other-files: ''
+# [end] Keep 'publisher' entries ordered alphabetically, please.
-###### BUILDERS
+#### BUILDERS
+# Keep 'builder' entries ordered alphabetically, please.
- builder:
name: ci-management-check-unicode
builders:
- - shell: |
- $WORKSPACE/scripts/check-unicode.sh jjb/
+ - shell: |
+ $WORKSPACE/scripts/check-unicode.sh jjb/
+
+- property:
+ name: fdio-infra-properties
+ properties:
+ - build-discarder:
+ days-to-keep: '{build-days-to-keep}'
+ num-to-keep: '{build-num-to-keep}'
+
+- builder:
+ name: packer-validate
+ builders:
+ - config-file-provider:
+ files:
+ - file-id: 'packer-cloud-env'
+ variable: 'CLOUDENV'
+ # yamllint disable rule:line-length
+ - shell: |
+ #!/bin/bash
+ cd packer
+ varfiles="../packer/vars/*"
+ templates="../packer/templates/*"
+ provision="../packer/provision/*.sh"
+ for v in $varfiles; do
+ [[ "${v##*/}" =~ ^(cloud-env.*)$ ]] && continue
+ for t in $templates; do
+ export PACKER_LOG="yes" && \
+ export PACKER_LOG_PATH="packer-validate-${v##*/}-${t##*/}.log" && \
+ packer.io validate -var-file=$CLOUDENV \
+ -var-file=$v $t
+ if [ $? -ne 0 ]; then
+ break
+ fi
+ done
+ done
+ for p in $provision; do
+ /bin/bash -n $p > provision-validate-${p##*/}.log 2>&1
+ if [ $? -ne 0 ]; then
+ break
+ fi
+ done
+ # yamllint enable
+
+- builder:
+ name: packer-build
+ builders:
+ - config-file-provider:
+ files:
+ - file-id: 'packer-cloud-env'
+ variable: 'CLOUDENV'
+ - shell: |
+ #!/bin/bash
+ cd packer
+ export PACKER_LOG="yes" && \
+ export PACKER_LOG_PATH="packer-build.log" && \
+ 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'
+ - 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.