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: csit-fail-on-crc-mismatch-parameter
115 name: FDIO_CSIT_FAIL_ON_CRC_MISMATCH
116 default: '{fail-on-crc-mismatch}'
117 description: "If true, CRC is checked, else compatibility is tested."
120 name: gerrit-event-type-parameter
123 name: GERRIT_EVENT_TYPE
125 description: "GERRIT_EVENT_TYPE parameter not given by trigger"
128 name: gerrit-event-comment-text-parameter
131 name: GERRIT_EVENT_COMMENT_TEXT
133 # yamllint disable-line rule:line-length
134 description: "GERRIT_EVENT_COMMENT_TEXT parameter not given by trigger"
137 name: gerrit-csit-refspec-parameter
142 # yamllint disable-line rule:line-length
143 description: "GERRIT_REFSPEC parameter to override separately cloned CSIT repository, leave empty for autodetection / no override."
146 name: csit-perf-trial-duration-parameter
149 name: CSIT_PERF_TRIAL_DURATION
150 default: "{csit-perf-trial-duration}"
151 description: "Duration of a trial measurement in BMRR tests."
154 name: csit-perf-trial-multiplicity-parameter
157 name: CSIT_PERF_TRIAL_MULTIPLICITY
158 default: "{csit-perf-trial-multiplicity}"
159 description: "Number of subsamples for BMRR tests."
166 credentials-id: '{credentials-id}'
175 name: gerrit-trigger-scm
178 credentials-id: '{credentials-id}'
182 - 'origin/$GERRIT_BRANCH'
184 choosing-strategy: '{choosing-strategy}'
187 name: gerrit-trigger-scm-recursive
190 credentials-id: '{credentials-id}'
194 - 'origin/$GERRIT_BRANCH'
196 choosing-strategy: '{choosing-strategy}'
198 recursive: '{submodule-recursive}'
210 # This wrapper is used for all jobs that require no-activity timeouts
211 name: fdio-infra-wrappers-non-activity-timeout
215 timeout: '{build-timeout}'
218 - ssh-agent-credentials:
220 - 'jenkins-gerrit-credentials'
227 # This wrapper is required for all jobs as it configures the wrappers
228 # needed by the fd.io infra.
229 name: fdio-infra-wrappers
233 timeout: '{build-timeout}'
234 timeout-var: 'BUILD_TIMEOUT'
237 - ssh-agent-credentials:
239 - 'jenkins-gerrit-credentials'
247 name: gerrit-trigger-patch-submitted
250 server-name: 'Primary'
252 - patchset-created-event:
253 exclude-drafts: 'true'
254 exclude-trivial-rebase: 'false'
255 exclude-no-code-change: 'false'
256 - draft-published-event
257 - comment-added-contains-event:
258 comment-contains-value: 'recheck'
259 - comment-added-contains-event:
260 comment-contains-value: 'reverify'
262 - project-compare-type: 'ANT'
263 project-pattern: '{name}'
265 - branch-compare-type: 'ANT'
266 branch-pattern: '**/{branch}'
269 name: gerrit-trigger-trivial-patch-submitted
272 server-name: 'Primary'
274 - patchset-created-event:
275 exclude-drafts: 'true'
276 exclude-trivial-rebase: 'false'
277 exclude-no-code-change: 'true'
278 - draft-published-event
279 - comment-added-contains-event:
280 comment-contains-value: 'recheck'
281 - comment-added-contains-event:
282 comment-contains-value: 'reverify'
284 - project-compare-type: 'ANT'
285 project-pattern: '{name}'
287 - branch-compare-type: 'ANT'
288 branch-pattern: '**/{branch}'
291 name: gerrit-trigger-os-trivial-patch-submitted
294 server-name: 'Primary'
296 - comment-added-contains-event:
297 comment-contains-value: 'os-check'
298 - comment-added-contains-event:
299 comment-contains-value: 'os-verify'
301 - project-compare-type: 'ANT'
302 project-pattern: '{name}'
304 - branch-compare-type: 'ANT'
305 branch-pattern: '**/{branch}'
308 name: gerrit-trigger-trivial-patch-submitted-skip-vote
311 server-name: 'Primary'
313 - patchset-created-event:
314 exclude-drafts: 'true'
315 exclude-trivial-rebase: 'false'
316 exclude-no-code-change: 'true'
317 - draft-published-event
318 - comment-added-contains-event:
319 comment-contains-value: 'recheck'
320 - comment-added-contains-event:
321 comment-contains-value: 'reverify'
323 - project-compare-type: 'ANT'
324 project-pattern: '{name}'
326 - branch-compare-type: 'ANT'
327 branch-pattern: '**/{branch}'
335 name: gerrit-trigger-manually-triggered
338 server-name: 'Primary'
340 - comment-added-contains-event:
341 comment-contains-value: '{comment-trigger-value}'
343 - project-compare-type: 'ANT'
344 project-pattern: '{name}'
346 - branch-compare-type: 'ANT'
347 branch-pattern: '**/{branch}'
350 name: gerrit-trigger-patch-merged
353 server-name: 'Primary'
355 - change-merged-event
356 - comment-added-contains-event:
357 comment-contains-value: 'remerge'
359 - project-compare-type: 'ANT'
360 project-pattern: '{name}'
362 - branch-compare-type: 'ANT'
363 branch-pattern: '**/{branch}'
364 # Force Jenkins always vote the values it should already have voted
365 # during the prior verify phase
367 gerrit-build-started-verified-value: 1
368 gerrit-build-successful-verified-value: 1
369 gerrit-build-failed-verified-value: 1
370 gerrit-build-unstable-verified-value: 1
371 gerrit-build-notbuilt-verified-value: 1
372 gerrit-build-started-codereview-value: 0
373 gerrit-build-successful-codereview-value: 0
374 gerrit-build-failed-codereview-value: 0
375 gerrit-build-unstable-codereview-value: 0
376 gerrit-build-notbuilt-codereview-value: 0
379 name: gerrit-trigger-os-patch-merged
382 server-name: 'Primary'
384 - comment-added-contains-event:
385 comment-contains-value: 'os-merge'
387 - project-compare-type: 'ANT'
388 project-pattern: '{name}'
390 - branch-compare-type: 'ANT'
391 branch-pattern: '**/{branch}'
392 # Force Jenkins always vote the values it should already have voted
393 # during the prior verify phase
395 gerrit-build-started-verified-value: 1
396 gerrit-build-successful-verified-value: 1
397 gerrit-build-failed-verified-value: 1
398 gerrit-build-unstable-verified-value: 1
399 gerrit-build-notbuilt-verified-value: 1
400 gerrit-build-started-codereview-value: 0
401 gerrit-build-successful-codereview-value: 0
402 gerrit-build-failed-codereview-value: 0
403 gerrit-build-unstable-codereview-value: 0
404 gerrit-build-notbuilt-codereview-value: 0
408 name: archive-artifacts
411 artifacts: '{artifacts}'
417 name: email-notification
420 recipients: 'nobody@projectrotterdam.info'
422 content-type: default
423 # yamllint disable-line rule:line-length
424 subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
426 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
428 Check console output at $BUILD_URL to view the results.
439 exec-pattern: '**/**.exec'
440 class-pattern: '**/classes'
441 source-pattern: '**/src/main/java'
442 # yamllint disable-line rule:line-length
443 exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**'
457 output-path: '{output-path}'
461 name: fdio-infra-shiplogs
462 # To archive things, the job will need to create an "archives" directory in
463 # the workspace and this macro will handle copying the contents of the
464 # archives directory.
466 # Uses the build parameter ARCHIVE_ARTIFACTS if not empty to find files to
467 # archive. You can pass globstar patterns for example "**/*.xml **/*.log" as
468 # the archive pattern. This is a space separated list of files to archive.
470 # Also ensure that the workspace is cleaned up at the end of the build.
482 - shell: !include-raw: include-raw-deploy-archives.sh
484 maven-version: '{maven-version}'
485 pom: '.archives/deploy-archives.xml'
486 goals: 'clean deploy -V -B -q -Dmaven.repo.local=/tmp/r'
487 settings: 'jenkins-log-archives-settings'
489 global-settings: 'global-settings'
490 global-settings-type: cfp
491 - description-setter:
492 regexp: '^Build logs: .*'
493 mark-unstable-if-failed: true
498 name: retry-build-on-builder-error
505 name: ci-management-check-unicode
508 $WORKSPACE/scripts/check-unicode.sh jjb/
511 name: provide-maven-settings
513 - config-file-provider:
515 - file-id: '{global-settings-file}'
516 variable: 'GLOBAL_SETTINGS_FILE'
517 - file-id: '{settings-file}'
518 variable: 'SETTINGS_FILE'
521 name: fdio-infra-properties
524 days-to-keep: '{build-days-to-keep}'
525 num-to-keep: '{build-num-to-keep}'
529 name: packer-validate
531 - config-file-provider:
533 - file-id: 'packer-cloud-env'
535 # yamllint disable rule:line-length
539 varfiles="../packer/vars/*"
540 templates="../packer/templates/*"
541 provision="../packer/provision/*.sh"
542 for v in $varfiles; do
543 [[ "${v##*/}" =~ ^(cloud-env.*)$ ]] && continue
544 for t in $templates; do
545 export PACKER_LOG="yes" && \
546 export PACKER_LOG_PATH="packer-validate-${v##*/}-${t##*/}.log" && \
547 packer.io validate -var-file=$CLOUDENV \
549 if [ $? -ne 0 ]; then
554 for p in $provision; do
555 /bin/bash -n $p > provision-validate-${p##*/}.log 2>&1
556 if [ $? -ne 0 ]; then
565 - config-file-provider:
567 - file-id: 'packer-cloud-env'
572 export PACKER_LOG="yes" && \
573 export PACKER_LOG_PATH="packer-build.log" && \
574 packer.io build -var-file=$CLOUDENV \
575 -var-file=../packer/vars/{platform}.json \
576 ../packer/templates/{template}.json