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"
113 credentials-id: '{credentials-id}'
122 name: gerrit-trigger-scm
125 credentials-id: '{credentials-id}'
129 - 'origin/$GERRIT_BRANCH'
131 choosing-strategy: '{choosing-strategy}'
134 name: zuul-trigger-scm
137 url: '$ZUUL_URL/$ZUUL_PROJECT'
154 # This wrapper is used for all jobs that require no-activity timeouts
155 name: fdio-infra-wrappers-non-activity-timeout
159 timeout: '{build-timeout}'
162 - ssh-agent-credentials:
164 - 'jenkins-gerrit-credentials'
171 # This wrapper is required for all jobs as it configures the wrappers
172 # needed by the fd.io infra.
173 name: fdio-infra-wrappers
177 timeout: '{build-timeout}'
178 timeout-var: 'BUILD_TIMEOUT'
181 - ssh-agent-credentials:
183 - 'jenkins-gerrit-credentials'
191 name: gerrit-trigger-patch-submitted
194 server-name: 'Primary'
196 - patchset-created-event:
197 exclude-drafts: 'true'
198 exclude-trivial-rebase: 'false'
199 exclude-no-code-change: 'false'
200 - draft-published-event
201 - comment-added-contains-event:
202 comment-contains-value: 'recheck'
203 - comment-added-contains-event:
204 comment-contains-value: 'reverify'
206 - project-compare-type: 'ANT'
207 project-pattern: '{name}'
209 - branch-compare-type: 'ANT'
210 branch-pattern: '**/{branch}'
213 name: gerrit-trigger-trivial-patch-submitted
216 server-name: 'Primary'
218 - patchset-created-event:
219 exclude-drafts: 'true'
220 exclude-trivial-rebase: 'false'
221 exclude-no-code-change: 'true'
222 - draft-published-event
223 - comment-added-contains-event:
224 comment-contains-value: 'recheck'
225 - comment-added-contains-event:
226 comment-contains-value: 'reverify'
228 - project-compare-type: 'ANT'
229 project-pattern: '{name}'
231 - branch-compare-type: 'ANT'
232 branch-pattern: '**/{branch}'
235 name: gerrit-trigger-os-trivial-patch-submitted
238 server-name: 'Primary'
240 - comment-added-contains-event:
241 comment-contains-value: 'os-check'
242 - comment-added-contains-event:
243 comment-contains-value: 'os-verify'
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-skip-vote
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}'
279 name: gerrit-trigger-manually-triggered
282 server-name: 'Primary'
284 - comment-added-contains-event:
285 comment-contains-value: '{comment-trigger-value}'
287 - project-compare-type: 'ANT'
288 project-pattern: '{name}'
290 - branch-compare-type: 'ANT'
291 branch-pattern: '**/{branch}'
294 name: gerrit-trigger-patch-merged
297 server-name: 'Primary'
299 - change-merged-event
300 - comment-added-contains-event:
301 comment-contains-value: 'remerge'
303 - project-compare-type: 'ANT'
304 project-pattern: '{name}'
306 - branch-compare-type: 'ANT'
307 branch-pattern: '**/{branch}'
308 # Force Jenkins always vote the values it should already have voted
309 # during the prior verify phase
311 gerrit-build-started-verified-value: 1
312 gerrit-build-successful-verified-value: 1
313 gerrit-build-failed-verified-value: 1
314 gerrit-build-unstable-verified-value: 1
315 gerrit-build-notbuilt-verified-value: 1
316 gerrit-build-started-codereview-value: 0
317 gerrit-build-successful-codereview-value: 0
318 gerrit-build-failed-codereview-value: 0
319 gerrit-build-unstable-codereview-value: 0
320 gerrit-build-notbuilt-codereview-value: 0
323 name: gerrit-trigger-os-patch-merged
326 server-name: 'Primary'
328 - comment-added-contains-event:
329 comment-contains-value: 'os-merge'
331 - project-compare-type: 'ANT'
332 project-pattern: '{name}'
334 - branch-compare-type: 'ANT'
335 branch-pattern: '**/{branch}'
336 # Force Jenkins always vote the values it should already have voted
337 # during the prior verify phase
339 gerrit-build-started-verified-value: 1
340 gerrit-build-successful-verified-value: 1
341 gerrit-build-failed-verified-value: 1
342 gerrit-build-unstable-verified-value: 1
343 gerrit-build-notbuilt-verified-value: 1
344 gerrit-build-started-codereview-value: 0
345 gerrit-build-successful-codereview-value: 0
346 gerrit-build-failed-codereview-value: 0
347 gerrit-build-unstable-codereview-value: 0
348 gerrit-build-notbuilt-codereview-value: 0
352 name: archive-artifacts
355 artifacts: '{artifacts}'
361 name: email-notification
364 recipients: 'nobody@projectrotterdam.info'
366 content-type: default
367 subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
369 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
371 Check console output at $BUILD_URL to view the results.
382 exec-pattern: '**/**.exec'
383 class-pattern: '**/classes'
384 source-pattern: '**/src/main/java'
385 exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**'
399 output-path: '{output-path}'
403 name: fdio-infra-shiplogs
404 # To archive things, the job will need to create an "archives" directory in
405 # the workspace and this macro will handle copying the contents of the
406 # archives directory.
408 # Uses the build parameter ARCHIVE_ARTIFACTS if not empty to find files to
409 # archive. You can pass globstar patterns for example "**/*.xml **/*.log" as
410 # the archive pattern. This is a space separated list of files to archive.
412 # Also ensure that the workspace is cleaned up at the end of the build.
416 - shell: !include-raw: include-raw-deploy-archives.sh
418 maven-version: '{maven-version}'
419 pom: '.archives/deploy-archives.xml'
420 goals: 'clean deploy -V -B -q -Dmaven.repo.local=/tmp/r'
421 settings: 'jenkins-log-archives-settings'
423 global-settings: 'global-settings'
424 global-settings-type: cfp
425 - description-setter:
426 regexp: '^Build logs: .*'
427 script-only-if-succeeded: false
428 script-only-if-failed: false
429 mark-unstable-if-failed: true
434 name: retry-build-on-builder-error
441 name: ci-management-check-unicode
444 $WORKSPACE/scripts/check-unicode.sh jjb/
447 name: provide-maven-settings
449 - config-file-provider:
451 - file-id: '{global-settings-file}'
452 variable: 'GLOBAL_SETTINGS_FILE'
453 - file-id: '{settings-file}'
454 variable: 'SETTINGS_FILE'
457 name: fdio-infra-properties
460 days-to-keep: '{build-days-to-keep}'
461 num-to-keep: '{build-num-to-keep}'
465 name: packer-validate
467 - config-file-provider:
469 - file-id: 'packer-cloud-env'
474 varfiles="../packer/vars/*"
475 templates="../packer/templates/*"
476 provision="../packer/provision/*.sh"
477 for v in $varfiles; do
478 [[ "${v##*/}" =~ ^(cloud-env.*)$ ]] && continue
479 for t in $templates; do
480 export PACKER_LOG="yes" && \
481 export PACKER_LOG_PATH="packer-validate-${v##*/}-${t##*/}.log" && \
482 packer.io validate -var-file=$CLOUDENV \
484 if [ $? -ne 0 ]; then
489 for p in $provision; do
490 /bin/bash -n $p > provision-validate-${p##*/}.log 2>&1
491 if [ $? -ne 0 ]; then
500 - config-file-provider:
502 - file-id: 'packer-cloud-env'
507 export PACKER_LOG="yes" && \
508 export PACKER_LOG_PATH="packer-build.log" && \
509 packer.io build -var-file=$CLOUDENV \
510 -var-file=../packer/vars/{platform}.json \
511 ../packer/templates/{template}.json