6 name: project-parameter
11 # yamllint disable-line rule:line-length
12 description: "JJB configured PROJECT parameter to identify a Gerrit project"
15 name: gerrit-parameter
20 description: "JJB configured GERRIT_BRANCH parameter"
23 name: gerrit-project-parameter
28 description: "GERRIT_PROJECT parameter if not given by trigger"
36 description: "OS parameter"
39 name: gerrit-refspec-parameter
44 description: "GERRIT_REFSPEC parameter not given by trigger"
47 name: maven-project-parameter
52 description: 'Maven selector to be used by shell scripts'
59 # yamllint disable-line rule:line-length
60 default: '/w/tools/hudson.tasks.Maven_MavenInstallation/{maven-version}/bin/mvn'
61 description: 'Maven selector to be used by shell scripts'
64 name: repo-name-parameter
68 default: '{repo-name}'
69 description: 'Name of repo to which to publish packaging'
72 name: compiler-parameter
77 description: "CC parameter, can be gnu or clang"
80 name: is-csit-vpp-job-parameter
84 default: '{is-csit-vpp-job}'
85 description: "Parameter is True if this is a CSIT vpp job."
88 name: stream-parameter
93 description: "Stream job parameter to be used in shell scripts."
101 description: "Topology parameter"
109 description: "Architecture parameter"
112 name: gerrit-event-type-parameter
115 name: GERRIT_EVENT_TYPE
117 description: "GERRIT_EVENT_TYPE parameter not given by trigger"
120 name: gerrit-event-comment-text-parameter
123 name: GERRIT_EVENT_COMMENT_TEXT
125 # yamllint disable-line rule:line-length
126 description: "GERRIT_EVENT_COMMENT_TEXT parameter not given by trigger"
129 name: gerrit-csit-refspec-parameter
134 # yamllint disable-line rule:line-length
135 description: "GERRIT_REFSPEC parameter to override separately cloned CSIT repository, leave empty for autodetection / no override."
142 credentials-id: '{credentials-id}'
151 name: gerrit-trigger-scm
154 credentials-id: '{credentials-id}'
158 - 'origin/$GERRIT_BRANCH'
160 choosing-strategy: '{choosing-strategy}'
163 name: gerrit-trigger-scm-recursive
166 credentials-id: '{credentials-id}'
170 - 'origin/$GERRIT_BRANCH'
172 choosing-strategy: '{choosing-strategy}'
174 recursive: '{submodule-recursive}'
186 # This wrapper is used for all jobs that require no-activity timeouts
187 name: fdio-infra-wrappers-non-activity-timeout
191 timeout: '{build-timeout}'
194 - ssh-agent-credentials:
196 - 'jenkins-gerrit-credentials'
203 # This wrapper is required for all jobs as it configures the wrappers
204 # needed by the fd.io infra.
205 name: fdio-infra-wrappers
209 timeout: '{build-timeout}'
210 timeout-var: 'BUILD_TIMEOUT'
213 - ssh-agent-credentials:
215 - 'jenkins-gerrit-credentials'
223 name: gerrit-trigger-patch-submitted
226 server-name: 'Primary'
228 - patchset-created-event:
229 exclude-drafts: 'true'
230 exclude-trivial-rebase: 'false'
231 exclude-no-code-change: 'false'
232 - draft-published-event
233 - comment-added-contains-event:
234 comment-contains-value: 'recheck'
235 - comment-added-contains-event:
236 comment-contains-value: 'reverify'
238 - project-compare-type: 'ANT'
239 project-pattern: '{name}'
241 - branch-compare-type: 'ANT'
242 branch-pattern: '**/{branch}'
245 name: gerrit-trigger-trivial-patch-submitted
248 server-name: 'Primary'
250 - patchset-created-event:
251 exclude-drafts: 'true'
252 exclude-trivial-rebase: 'false'
253 exclude-no-code-change: 'true'
254 - draft-published-event
255 - comment-added-contains-event:
256 comment-contains-value: 'recheck'
257 - comment-added-contains-event:
258 comment-contains-value: 'reverify'
260 - project-compare-type: 'ANT'
261 project-pattern: '{name}'
263 - branch-compare-type: 'ANT'
264 branch-pattern: '**/{branch}'
267 name: gerrit-trigger-os-trivial-patch-submitted
270 server-name: 'Primary'
272 - comment-added-contains-event:
273 comment-contains-value: 'os-check'
274 - comment-added-contains-event:
275 comment-contains-value: 'os-verify'
277 - project-compare-type: 'ANT'
278 project-pattern: '{name}'
280 - branch-compare-type: 'ANT'
281 branch-pattern: '**/{branch}'
284 name: gerrit-trigger-trivial-patch-submitted-skip-vote
287 server-name: 'Primary'
289 - patchset-created-event:
290 exclude-drafts: 'true'
291 exclude-trivial-rebase: 'false'
292 exclude-no-code-change: 'true'
293 - draft-published-event
294 - comment-added-contains-event:
295 comment-contains-value: 'recheck'
296 - comment-added-contains-event:
297 comment-contains-value: 'reverify'
299 - project-compare-type: 'ANT'
300 project-pattern: '{name}'
302 - branch-compare-type: 'ANT'
303 branch-pattern: '**/{branch}'
311 name: gerrit-trigger-manually-triggered
314 server-name: 'Primary'
316 - comment-added-contains-event:
317 comment-contains-value: '{comment-trigger-value}'
319 - project-compare-type: 'ANT'
320 project-pattern: '{name}'
322 - branch-compare-type: 'ANT'
323 branch-pattern: '**/{branch}'
326 name: gerrit-trigger-patch-merged
329 server-name: 'Primary'
331 - change-merged-event
332 - comment-added-contains-event:
333 comment-contains-value: 'remerge'
335 - project-compare-type: 'ANT'
336 project-pattern: '{name}'
338 - branch-compare-type: 'ANT'
339 branch-pattern: '**/{branch}'
340 # Force Jenkins always vote the values it should already have voted
341 # during the prior verify phase
343 gerrit-build-started-verified-value: 1
344 gerrit-build-successful-verified-value: 1
345 gerrit-build-failed-verified-value: 1
346 gerrit-build-unstable-verified-value: 1
347 gerrit-build-notbuilt-verified-value: 1
348 gerrit-build-started-codereview-value: 0
349 gerrit-build-successful-codereview-value: 0
350 gerrit-build-failed-codereview-value: 0
351 gerrit-build-unstable-codereview-value: 0
352 gerrit-build-notbuilt-codereview-value: 0
355 name: gerrit-trigger-os-patch-merged
358 server-name: 'Primary'
360 - comment-added-contains-event:
361 comment-contains-value: 'os-merge'
363 - project-compare-type: 'ANT'
364 project-pattern: '{name}'
366 - branch-compare-type: 'ANT'
367 branch-pattern: '**/{branch}'
368 # Force Jenkins always vote the values it should already have voted
369 # during the prior verify phase
371 gerrit-build-started-verified-value: 1
372 gerrit-build-successful-verified-value: 1
373 gerrit-build-failed-verified-value: 1
374 gerrit-build-unstable-verified-value: 1
375 gerrit-build-notbuilt-verified-value: 1
376 gerrit-build-started-codereview-value: 0
377 gerrit-build-successful-codereview-value: 0
378 gerrit-build-failed-codereview-value: 0
379 gerrit-build-unstable-codereview-value: 0
380 gerrit-build-notbuilt-codereview-value: 0
384 name: archive-artifacts
387 artifacts: '{artifacts}'
393 name: email-notification
396 recipients: 'nobody@projectrotterdam.info'
398 content-type: default
399 # yamllint disable-line rule:line-length
400 subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
402 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
404 Check console output at $BUILD_URL to view the results.
415 exec-pattern: '**/**.exec'
416 class-pattern: '**/classes'
417 source-pattern: '**/src/main/java'
418 # yamllint disable-line rule:line-length
419 exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**'
433 output-path: '{output-path}'
437 name: fdio-infra-shiplogs
438 # To archive things, the job will need to create an "archives" directory in
439 # the workspace and this macro will handle copying the contents of the
440 # archives directory.
442 # Uses the build parameter ARCHIVE_ARTIFACTS if not empty to find files to
443 # archive. You can pass globstar patterns for example "**/*.xml **/*.log" as
444 # the archive pattern. This is a space separated list of files to archive.
446 # Also ensure that the workspace is cleaned up at the end of the build.
458 - shell: !include-raw: include-raw-deploy-archives.sh
460 maven-version: '{maven-version}'
461 pom: '.archives/deploy-archives.xml'
462 goals: 'clean deploy -V -B -q -Dmaven.repo.local=/tmp/r'
463 settings: 'jenkins-log-archives-settings'
465 global-settings: 'global-settings'
466 global-settings-type: cfp
467 - description-setter:
468 regexp: '^Build logs: .*'
469 mark-unstable-if-failed: true
474 name: retry-build-on-builder-error
481 name: ci-management-check-unicode
484 $WORKSPACE/scripts/check-unicode.sh jjb/
487 name: provide-maven-settings
489 - config-file-provider:
491 - file-id: '{global-settings-file}'
492 variable: 'GLOBAL_SETTINGS_FILE'
493 - file-id: '{settings-file}'
494 variable: 'SETTINGS_FILE'
497 name: fdio-infra-properties
500 days-to-keep: '{build-days-to-keep}'
501 num-to-keep: '{build-num-to-keep}'
505 name: packer-validate
507 - config-file-provider:
509 - file-id: 'packer-cloud-env'
511 # yamllint disable rule:line-length
515 varfiles="../packer/vars/*"
516 templates="../packer/templates/*"
517 provision="../packer/provision/*.sh"
518 for v in $varfiles; do
519 [[ "${v##*/}" =~ ^(cloud-env.*)$ ]] && continue
520 for t in $templates; do
521 export PACKER_LOG="yes" && \
522 export PACKER_LOG_PATH="packer-validate-${v##*/}-${t##*/}.log" && \
523 packer.io validate -var-file=$CLOUDENV \
525 if [ $? -ne 0 ]; then
530 for p in $provision; do
531 /bin/bash -n $p > provision-validate-${p##*/}.log 2>&1
532 if [ $? -ne 0 ]; then
541 - config-file-provider:
543 - file-id: 'packer-cloud-env'
548 export PACKER_LOG="yes" && \
549 export PACKER_LOG_PATH="packer-build.log" && \
550 packer.io build -var-file=$CLOUDENV \
551 -var-file=../packer/vars/{platform}.json \
552 ../packer/templates/{template}.json