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: zuul-trigger-scm
162 url: '$ZUUL_URL/$ZUUL_PROJECT'
179 # This wrapper is used for all jobs that require no-activity timeouts
180 name: fdio-infra-wrappers-non-activity-timeout
184 timeout: '{build-timeout}'
187 - ssh-agent-credentials:
189 - 'jenkins-gerrit-credentials'
196 # This wrapper is required for all jobs as it configures the wrappers
197 # needed by the fd.io infra.
198 name: fdio-infra-wrappers
202 timeout: '{build-timeout}'
203 timeout-var: 'BUILD_TIMEOUT'
206 - ssh-agent-credentials:
208 - 'jenkins-gerrit-credentials'
216 name: gerrit-trigger-patch-submitted
219 server-name: 'Primary'
221 - patchset-created-event:
222 exclude-drafts: 'true'
223 exclude-trivial-rebase: 'false'
224 exclude-no-code-change: 'false'
225 - draft-published-event
226 - comment-added-contains-event:
227 comment-contains-value: 'recheck'
228 - comment-added-contains-event:
229 comment-contains-value: 'reverify'
231 - project-compare-type: 'ANT'
232 project-pattern: '{name}'
234 - branch-compare-type: 'ANT'
235 branch-pattern: '**/{branch}'
238 name: gerrit-trigger-trivial-patch-submitted
241 server-name: 'Primary'
243 - patchset-created-event:
244 exclude-drafts: 'true'
245 exclude-trivial-rebase: 'false'
246 exclude-no-code-change: 'true'
247 - draft-published-event
248 - comment-added-contains-event:
249 comment-contains-value: 'recheck'
250 - comment-added-contains-event:
251 comment-contains-value: 'reverify'
253 - project-compare-type: 'ANT'
254 project-pattern: '{name}'
256 - branch-compare-type: 'ANT'
257 branch-pattern: '**/{branch}'
260 name: gerrit-trigger-os-trivial-patch-submitted
263 server-name: 'Primary'
265 - comment-added-contains-event:
266 comment-contains-value: 'os-check'
267 - comment-added-contains-event:
268 comment-contains-value: 'os-verify'
270 - project-compare-type: 'ANT'
271 project-pattern: '{name}'
273 - branch-compare-type: 'ANT'
274 branch-pattern: '**/{branch}'
277 name: gerrit-trigger-trivial-patch-submitted-skip-vote
280 server-name: 'Primary'
282 - patchset-created-event:
283 exclude-drafts: 'true'
284 exclude-trivial-rebase: 'false'
285 exclude-no-code-change: 'true'
286 - draft-published-event
287 - comment-added-contains-event:
288 comment-contains-value: 'recheck'
289 - comment-added-contains-event:
290 comment-contains-value: 'reverify'
292 - project-compare-type: 'ANT'
293 project-pattern: '{name}'
295 - branch-compare-type: 'ANT'
296 branch-pattern: '**/{branch}'
304 name: gerrit-trigger-manually-triggered
307 server-name: 'Primary'
309 - comment-added-contains-event:
310 comment-contains-value: '{comment-trigger-value}'
312 - project-compare-type: 'ANT'
313 project-pattern: '{name}'
315 - branch-compare-type: 'ANT'
316 branch-pattern: '**/{branch}'
319 name: gerrit-trigger-patch-merged
322 server-name: 'Primary'
324 - change-merged-event
325 - comment-added-contains-event:
326 comment-contains-value: 'remerge'
328 - project-compare-type: 'ANT'
329 project-pattern: '{name}'
331 - branch-compare-type: 'ANT'
332 branch-pattern: '**/{branch}'
333 # Force Jenkins always vote the values it should already have voted
334 # during the prior verify phase
336 gerrit-build-started-verified-value: 1
337 gerrit-build-successful-verified-value: 1
338 gerrit-build-failed-verified-value: 1
339 gerrit-build-unstable-verified-value: 1
340 gerrit-build-notbuilt-verified-value: 1
341 gerrit-build-started-codereview-value: 0
342 gerrit-build-successful-codereview-value: 0
343 gerrit-build-failed-codereview-value: 0
344 gerrit-build-unstable-codereview-value: 0
345 gerrit-build-notbuilt-codereview-value: 0
348 name: gerrit-trigger-os-patch-merged
351 server-name: 'Primary'
353 - comment-added-contains-event:
354 comment-contains-value: 'os-merge'
356 - project-compare-type: 'ANT'
357 project-pattern: '{name}'
359 - branch-compare-type: 'ANT'
360 branch-pattern: '**/{branch}'
361 # Force Jenkins always vote the values it should already have voted
362 # during the prior verify phase
364 gerrit-build-started-verified-value: 1
365 gerrit-build-successful-verified-value: 1
366 gerrit-build-failed-verified-value: 1
367 gerrit-build-unstable-verified-value: 1
368 gerrit-build-notbuilt-verified-value: 1
369 gerrit-build-started-codereview-value: 0
370 gerrit-build-successful-codereview-value: 0
371 gerrit-build-failed-codereview-value: 0
372 gerrit-build-unstable-codereview-value: 0
373 gerrit-build-notbuilt-codereview-value: 0
377 name: archive-artifacts
380 artifacts: '{artifacts}'
386 name: email-notification
389 recipients: 'nobody@projectrotterdam.info'
391 content-type: default
392 subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
394 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
396 Check console output at $BUILD_URL to view the results.
407 exec-pattern: '**/**.exec'
408 class-pattern: '**/classes'
409 source-pattern: '**/src/main/java'
410 exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**'
424 output-path: '{output-path}'
428 name: fdio-infra-shiplogs
429 # To archive things, the job will need to create an "archives" directory in
430 # the workspace and this macro will handle copying the contents of the
431 # archives directory.
433 # Uses the build parameter ARCHIVE_ARTIFACTS if not empty to find files to
434 # archive. You can pass globstar patterns for example "**/*.xml **/*.log" as
435 # the archive pattern. This is a space separated list of files to archive.
437 # Also ensure that the workspace is cleaned up at the end of the build.
441 - shell: !include-raw: include-raw-deploy-archives.sh
443 maven-version: '{maven-version}'
444 pom: '.archives/deploy-archives.xml'
445 goals: 'clean deploy -V -B -q -Dmaven.repo.local=/tmp/r'
446 settings: 'jenkins-log-archives-settings'
448 global-settings: 'global-settings'
449 global-settings-type: cfp
450 - description-setter:
451 regexp: '^Build logs: .*'
452 script-only-if-succeeded: false
453 script-only-if-failed: false
454 mark-unstable-if-failed: true
459 name: retry-build-on-builder-error
466 name: ci-management-check-unicode
469 $WORKSPACE/scripts/check-unicode.sh jjb/
472 name: provide-maven-settings
474 - config-file-provider:
476 - file-id: '{global-settings-file}'
477 variable: 'GLOBAL_SETTINGS_FILE'
478 - file-id: '{settings-file}'
479 variable: 'SETTINGS_FILE'
482 name: fdio-infra-properties
485 days-to-keep: '{build-days-to-keep}'
486 num-to-keep: '{build-num-to-keep}'
490 name: packer-validate
492 - config-file-provider:
494 - file-id: 'packer-cloud-env'
499 varfiles="../packer/vars/*"
500 templates="../packer/templates/*"
501 provision="../packer/provision/*.sh"
502 for v in $varfiles; do
503 [[ "${v##*/}" =~ ^(cloud-env.*)$ ]] && continue
504 for t in $templates; do
505 export PACKER_LOG="yes" && \
506 export PACKER_LOG_PATH="packer-validate-${v##*/}-${t##*/}.log" && \
507 packer.io validate -var-file=$CLOUDENV \
509 if [ $? -ne 0 ]; then
514 for p in $provision; do
515 /bin/bash -n $p > provision-validate-${p##*/}.log 2>&1
516 if [ $? -ne 0 ]; then
525 - config-file-provider:
527 - file-id: 'packer-cloud-env'
532 export PACKER_LOG="yes" && \
533 export PACKER_LOG_PATH="packer-build.log" && \
534 packer.io build -var-file=$CLOUDENV \
535 -var-file=../packer/vars/{platform}.json \
536 ../packer/templates/{template}.json