5 name: project-parameter
10 description: "JJB configured PROJECT parameter to identify a Gerrit project"
13 name: gerrit-parameter
18 description: "JJB configured GERRIT_BRANCH parameter"
21 name: gerrit-project-parameter
26 description: "GERRIT_PROJECT parameter if not given by trigger"
34 description: "OS parameter"
37 name: gerrit-refspec-parameter
42 description: "GERRIT_REFSPEC parameter not given by trigger"
45 name: maven-project-parameter
50 description: 'Maven selector to be used by shell scripts'
57 default: '/w/tools/hudson.tasks.Maven_MavenInstallation/{maven-version}/bin/mvn'
58 description: 'Maven selector to be used by shell scripts'
61 name: repo-name-parameter
65 default: '{repo-name}'
66 description: 'Name of repo to which to publish packaging'
69 name: compiler-parameter
74 description: "CC parameter, can be gnu or clang"
77 name: is-csit-vpp-job-parameter
81 default: '{is-csit-vpp-job}'
82 description: "Parameter is True if this is a CSIT vpp job."
85 name: stream-parameter
90 description: "Stream job parameter to be used in shell scripts."
98 description: "Topology parameter"
106 description: "Architecture parameter"
109 name: gerrit-event-type-parameter
112 name: GERRIT_EVENT_TYPE
114 description: "GERRIT_EVENT_TYPE parameter not given by trigger"
117 name: gerrit-event-comment-text-parameter
120 name: GERRIT_EVENT_COMMENT_TEXT
122 description: "GERRIT_EVENT_COMMENT_TEXT parameter not given by trigger"
125 name: gerrit-csit-refspec-parameter
130 description: "GERRIT_REFSPEC parameter to override separately cloned CSIT repository, leave empty for autodetection / no override."
131 # FIXME: Wrap long lines.
138 credentials-id: '{credentials-id}'
147 name: gerrit-trigger-scm
150 credentials-id: '{credentials-id}'
154 - 'origin/$GERRIT_BRANCH'
156 choosing-strategy: '{choosing-strategy}'
159 name: gerrit-trigger-scm-recursive
162 credentials-id: '{credentials-id}'
166 - 'origin/$GERRIT_BRANCH'
168 choosing-strategy: '{choosing-strategy}'
170 recursive: '{submodule-recursive}'
173 name: zuul-trigger-scm
176 url: '$ZUUL_URL/$ZUUL_PROJECT'
193 # This wrapper is used for all jobs that require no-activity timeouts
194 name: fdio-infra-wrappers-non-activity-timeout
198 timeout: '{build-timeout}'
201 - ssh-agent-credentials:
203 - 'jenkins-gerrit-credentials'
210 # This wrapper is required for all jobs as it configures the wrappers
211 # needed by the fd.io infra.
212 name: fdio-infra-wrappers
216 timeout: '{build-timeout}'
217 timeout-var: 'BUILD_TIMEOUT'
220 - ssh-agent-credentials:
222 - 'jenkins-gerrit-credentials'
230 name: gerrit-trigger-patch-submitted
233 server-name: 'Primary'
235 - patchset-created-event:
236 exclude-drafts: 'true'
237 exclude-trivial-rebase: 'false'
238 exclude-no-code-change: 'false'
239 - draft-published-event
240 - comment-added-contains-event:
241 comment-contains-value: 'recheck'
242 - comment-added-contains-event:
243 comment-contains-value: 'reverify'
245 - project-compare-type: 'ANT'
246 project-pattern: '{name}'
248 - branch-compare-type: 'ANT'
249 branch-pattern: '**/{branch}'
252 name: gerrit-trigger-trivial-patch-submitted
255 server-name: 'Primary'
257 - patchset-created-event:
258 exclude-drafts: 'true'
259 exclude-trivial-rebase: 'false'
260 exclude-no-code-change: 'true'
261 - draft-published-event
262 - comment-added-contains-event:
263 comment-contains-value: 'recheck'
264 - comment-added-contains-event:
265 comment-contains-value: 'reverify'
267 - project-compare-type: 'ANT'
268 project-pattern: '{name}'
270 - branch-compare-type: 'ANT'
271 branch-pattern: '**/{branch}'
274 name: gerrit-trigger-os-trivial-patch-submitted
277 server-name: 'Primary'
279 - comment-added-contains-event:
280 comment-contains-value: 'os-check'
281 - comment-added-contains-event:
282 comment-contains-value: 'os-verify'
284 - project-compare-type: 'ANT'
285 project-pattern: '{name}'
287 - branch-compare-type: 'ANT'
288 branch-pattern: '**/{branch}'
291 name: gerrit-trigger-trivial-patch-submitted-skip-vote
294 server-name: 'Primary'
296 - patchset-created-event:
297 exclude-drafts: 'true'
298 exclude-trivial-rebase: 'false'
299 exclude-no-code-change: 'true'
300 - draft-published-event
301 - comment-added-contains-event:
302 comment-contains-value: 'recheck'
303 - comment-added-contains-event:
304 comment-contains-value: 'reverify'
306 - project-compare-type: 'ANT'
307 project-pattern: '{name}'
309 - branch-compare-type: 'ANT'
310 branch-pattern: '**/{branch}'
318 name: gerrit-trigger-manually-triggered
321 server-name: 'Primary'
323 - comment-added-contains-event:
324 comment-contains-value: '{comment-trigger-value}'
326 - project-compare-type: 'ANT'
327 project-pattern: '{name}'
329 - branch-compare-type: 'ANT'
330 branch-pattern: '**/{branch}'
333 name: gerrit-trigger-patch-merged
336 server-name: 'Primary'
338 - change-merged-event
339 - comment-added-contains-event:
340 comment-contains-value: 'remerge'
342 - project-compare-type: 'ANT'
343 project-pattern: '{name}'
345 - branch-compare-type: 'ANT'
346 branch-pattern: '**/{branch}'
347 # Force Jenkins always vote the values it should already have voted
348 # during the prior verify phase
350 gerrit-build-started-verified-value: 1
351 gerrit-build-successful-verified-value: 1
352 gerrit-build-failed-verified-value: 1
353 gerrit-build-unstable-verified-value: 1
354 gerrit-build-notbuilt-verified-value: 1
355 gerrit-build-started-codereview-value: 0
356 gerrit-build-successful-codereview-value: 0
357 gerrit-build-failed-codereview-value: 0
358 gerrit-build-unstable-codereview-value: 0
359 gerrit-build-notbuilt-codereview-value: 0
362 name: gerrit-trigger-os-patch-merged
365 server-name: 'Primary'
367 - comment-added-contains-event:
368 comment-contains-value: 'os-merge'
370 - project-compare-type: 'ANT'
371 project-pattern: '{name}'
373 - branch-compare-type: 'ANT'
374 branch-pattern: '**/{branch}'
375 # Force Jenkins always vote the values it should already have voted
376 # during the prior verify phase
378 gerrit-build-started-verified-value: 1
379 gerrit-build-successful-verified-value: 1
380 gerrit-build-failed-verified-value: 1
381 gerrit-build-unstable-verified-value: 1
382 gerrit-build-notbuilt-verified-value: 1
383 gerrit-build-started-codereview-value: 0
384 gerrit-build-successful-codereview-value: 0
385 gerrit-build-failed-codereview-value: 0
386 gerrit-build-unstable-codereview-value: 0
387 gerrit-build-notbuilt-codereview-value: 0
391 name: archive-artifacts
394 artifacts: '{artifacts}'
400 name: email-notification
403 recipients: 'nobody@projectrotterdam.info'
405 content-type: default
406 subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
408 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
410 Check console output at $BUILD_URL to view the results.
421 exec-pattern: '**/**.exec'
422 class-pattern: '**/classes'
423 source-pattern: '**/src/main/java'
424 exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**'
438 output-path: '{output-path}'
442 name: fdio-infra-shiplogs
443 # To archive things, the job will need to create an "archives" directory in
444 # the workspace and this macro will handle copying the contents of the
445 # archives directory.
447 # Uses the build parameter ARCHIVE_ARTIFACTS if not empty to find files to
448 # archive. You can pass globstar patterns for example "**/*.xml **/*.log" as
449 # the archive pattern. This is a space separated list of files to archive.
451 # Also ensure that the workspace is cleaned up at the end of the build.
463 - shell: !include-raw: include-raw-deploy-archives.sh
465 maven-version: '{maven-version}'
466 pom: '.archives/deploy-archives.xml'
467 goals: 'clean deploy -V -B -q -Dmaven.repo.local=/tmp/r'
468 settings: 'jenkins-log-archives-settings'
470 global-settings: 'global-settings'
471 global-settings-type: cfp
472 - description-setter:
473 regexp: '^Build logs: .*'
474 mark-unstable-if-failed: true
479 name: retry-build-on-builder-error
486 name: ci-management-check-unicode
489 $WORKSPACE/scripts/check-unicode.sh jjb/
492 name: provide-maven-settings
494 - config-file-provider:
496 - file-id: '{global-settings-file}'
497 variable: 'GLOBAL_SETTINGS_FILE'
498 - file-id: '{settings-file}'
499 variable: 'SETTINGS_FILE'
502 name: fdio-infra-properties
505 days-to-keep: '{build-days-to-keep}'
506 num-to-keep: '{build-num-to-keep}'
510 name: packer-validate
512 - config-file-provider:
514 - file-id: 'packer-cloud-env'
519 varfiles="../packer/vars/*"
520 templates="../packer/templates/*"
521 provision="../packer/provision/*.sh"
522 for v in $varfiles; do
523 [[ "${v##*/}" =~ ^(cloud-env.*)$ ]] && continue
524 for t in $templates; do
525 export PACKER_LOG="yes" && \
526 export PACKER_LOG_PATH="packer-validate-${v##*/}-${t##*/}.log" && \
527 packer.io validate -var-file=$CLOUDENV \
529 if [ $? -ne 0 ]; then
534 for p in $provision; do
535 /bin/bash -n $p > provision-validate-${p##*/}.log 2>&1
536 if [ $? -ne 0 ]; then
545 - config-file-provider:
547 - file-id: 'packer-cloud-env'
552 export PACKER_LOG="yes" && \
553 export PACKER_LOG_PATH="packer-build.log" && \
554 packer.io build -var-file=$CLOUDENV \
555 -var-file=../packer/vars/{platform}.json \
556 ../packer/templates/{template}.json