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 false, CRC is not checked, so 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."
150 credentials-id: '{credentials-id}'
159 name: gerrit-trigger-scm
162 credentials-id: '{credentials-id}'
166 - 'origin/$GERRIT_BRANCH'
168 choosing-strategy: '{choosing-strategy}'
171 name: gerrit-trigger-scm-recursive
174 credentials-id: '{credentials-id}'
178 - 'origin/$GERRIT_BRANCH'
180 choosing-strategy: '{choosing-strategy}'
182 recursive: '{submodule-recursive}'
194 # This wrapper is used for all jobs that require no-activity timeouts
195 name: fdio-infra-wrappers-non-activity-timeout
199 timeout: '{build-timeout}'
202 - ssh-agent-credentials:
204 - 'jenkins-gerrit-credentials'
211 # This wrapper is required for all jobs as it configures the wrappers
212 # needed by the fd.io infra.
213 name: fdio-infra-wrappers
217 timeout: '{build-timeout}'
218 timeout-var: 'BUILD_TIMEOUT'
221 - ssh-agent-credentials:
223 - 'jenkins-gerrit-credentials'
231 name: gerrit-trigger-patch-submitted
234 server-name: 'Primary'
236 - patchset-created-event:
237 exclude-drafts: 'true'
238 exclude-trivial-rebase: 'false'
239 exclude-no-code-change: 'false'
240 - draft-published-event
241 - comment-added-contains-event:
242 comment-contains-value: 'recheck'
243 - comment-added-contains-event:
244 comment-contains-value: 'reverify'
246 - project-compare-type: 'ANT'
247 project-pattern: '{name}'
249 - branch-compare-type: 'ANT'
250 branch-pattern: '**/{branch}'
253 name: gerrit-trigger-trivial-patch-submitted
256 server-name: 'Primary'
258 - patchset-created-event:
259 exclude-drafts: 'true'
260 exclude-trivial-rebase: 'false'
261 exclude-no-code-change: 'true'
262 - draft-published-event
263 - comment-added-contains-event:
264 comment-contains-value: 'recheck'
265 - comment-added-contains-event:
266 comment-contains-value: 'reverify'
268 - project-compare-type: 'ANT'
269 project-pattern: '{name}'
271 - branch-compare-type: 'ANT'
272 branch-pattern: '**/{branch}'
275 name: gerrit-trigger-os-trivial-patch-submitted
278 server-name: 'Primary'
280 - comment-added-contains-event:
281 comment-contains-value: 'os-check'
282 - comment-added-contains-event:
283 comment-contains-value: 'os-verify'
285 - project-compare-type: 'ANT'
286 project-pattern: '{name}'
288 - branch-compare-type: 'ANT'
289 branch-pattern: '**/{branch}'
292 name: gerrit-trigger-trivial-patch-submitted-skip-vote
295 server-name: 'Primary'
297 - patchset-created-event:
298 exclude-drafts: 'true'
299 exclude-trivial-rebase: 'false'
300 exclude-no-code-change: 'true'
301 - draft-published-event
302 - comment-added-contains-event:
303 comment-contains-value: 'recheck'
304 - comment-added-contains-event:
305 comment-contains-value: 'reverify'
307 - project-compare-type: 'ANT'
308 project-pattern: '{name}'
310 - branch-compare-type: 'ANT'
311 branch-pattern: '**/{branch}'
319 name: gerrit-trigger-manually-triggered
322 server-name: 'Primary'
324 - comment-added-contains-event:
325 comment-contains-value: '{comment-trigger-value}'
327 - project-compare-type: 'ANT'
328 project-pattern: '{name}'
330 - branch-compare-type: 'ANT'
331 branch-pattern: '**/{branch}'
334 name: gerrit-trigger-patch-merged
337 server-name: 'Primary'
339 - change-merged-event
340 - comment-added-contains-event:
341 comment-contains-value: 'remerge'
343 - project-compare-type: 'ANT'
344 project-pattern: '{name}'
346 - branch-compare-type: 'ANT'
347 branch-pattern: '**/{branch}'
348 # Force Jenkins always vote the values it should already have voted
349 # during the prior verify phase
351 gerrit-build-started-verified-value: 1
352 gerrit-build-successful-verified-value: 1
353 gerrit-build-failed-verified-value: 1
354 gerrit-build-unstable-verified-value: 1
355 gerrit-build-notbuilt-verified-value: 1
356 gerrit-build-started-codereview-value: 0
357 gerrit-build-successful-codereview-value: 0
358 gerrit-build-failed-codereview-value: 0
359 gerrit-build-unstable-codereview-value: 0
360 gerrit-build-notbuilt-codereview-value: 0
363 name: gerrit-trigger-os-patch-merged
366 server-name: 'Primary'
368 - comment-added-contains-event:
369 comment-contains-value: 'os-merge'
371 - project-compare-type: 'ANT'
372 project-pattern: '{name}'
374 - branch-compare-type: 'ANT'
375 branch-pattern: '**/{branch}'
376 # Force Jenkins always vote the values it should already have voted
377 # during the prior verify phase
379 gerrit-build-started-verified-value: 1
380 gerrit-build-successful-verified-value: 1
381 gerrit-build-failed-verified-value: 1
382 gerrit-build-unstable-verified-value: 1
383 gerrit-build-notbuilt-verified-value: 1
384 gerrit-build-started-codereview-value: 0
385 gerrit-build-successful-codereview-value: 0
386 gerrit-build-failed-codereview-value: 0
387 gerrit-build-unstable-codereview-value: 0
388 gerrit-build-notbuilt-codereview-value: 0
392 name: archive-artifacts
395 artifacts: '{artifacts}'
401 name: email-notification
404 recipients: 'nobody@projectrotterdam.info'
406 content-type: default
407 # yamllint disable-line rule:line-length
408 subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
410 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
412 Check console output at $BUILD_URL to view the results.
423 exec-pattern: '**/**.exec'
424 class-pattern: '**/classes'
425 source-pattern: '**/src/main/java'
426 # yamllint disable-line rule:line-length
427 exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**'
441 output-path: '{output-path}'
445 name: fdio-infra-shiplogs
446 # To archive things, the job will need to create an "archives" directory in
447 # the workspace and this macro will handle copying the contents of the
448 # archives directory.
450 # Uses the build parameter ARCHIVE_ARTIFACTS if not empty to find files to
451 # archive. You can pass globstar patterns for example "**/*.xml **/*.log" as
452 # the archive pattern. This is a space separated list of files to archive.
454 # Also ensure that the workspace is cleaned up at the end of the build.
466 - shell: !include-raw: include-raw-deploy-archives.sh
468 maven-version: '{maven-version}'
469 pom: '.archives/deploy-archives.xml'
470 goals: 'clean deploy -V -B -q -Dmaven.repo.local=/tmp/r'
471 settings: 'jenkins-log-archives-settings'
473 global-settings: 'global-settings'
474 global-settings-type: cfp
475 - description-setter:
476 regexp: '^Build logs: .*'
477 mark-unstable-if-failed: true
482 name: retry-build-on-builder-error
489 name: ci-management-check-unicode
492 $WORKSPACE/scripts/check-unicode.sh jjb/
495 name: provide-maven-settings
497 - config-file-provider:
499 - file-id: '{global-settings-file}'
500 variable: 'GLOBAL_SETTINGS_FILE'
501 - file-id: '{settings-file}'
502 variable: 'SETTINGS_FILE'
505 name: fdio-infra-properties
508 days-to-keep: '{build-days-to-keep}'
509 num-to-keep: '{build-num-to-keep}'
513 name: packer-validate
515 - config-file-provider:
517 - file-id: 'packer-cloud-env'
519 # yamllint disable rule:line-length
523 varfiles="../packer/vars/*"
524 templates="../packer/templates/*"
525 provision="../packer/provision/*.sh"
526 for v in $varfiles; do
527 [[ "${v##*/}" =~ ^(cloud-env.*)$ ]] && continue
528 for t in $templates; do
529 export PACKER_LOG="yes" && \
530 export PACKER_LOG_PATH="packer-validate-${v##*/}-${t##*/}.log" && \
531 packer.io validate -var-file=$CLOUDENV \
533 if [ $? -ne 0 ]; then
538 for p in $provision; do
539 /bin/bash -n $p > provision-validate-${p##*/}.log 2>&1
540 if [ $? -ne 0 ]; then
549 - config-file-provider:
551 - file-id: 'packer-cloud-env'
556 export PACKER_LOG="yes" && \
557 export PACKER_LOG_PATH="packer-build.log" && \
558 packer.io build -var-file=$CLOUDENV \
559 -var-file=../packer/vars/{platform}.json \
560 ../packer/templates/{template}.json