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 credentials-id: '{credentials-id}'
107 name: gerrit-trigger-scm
110 credentials-id: '{credentials-id}'
114 - 'origin/$GERRIT_BRANCH'
116 choosing-strategy: '{choosing-strategy}'
119 name: zuul-trigger-scm
122 url: '$ZUUL_URL/$ZUUL_PROJECT'
139 # This wrapper is used for all jobs that require no-activity timeouts
140 name: fdio-infra-wrappers-non-activity-timeout
144 timeout: '{build-timeout}'
147 - ssh-agent-credentials:
149 - 'jenkins-gerrit-credentials'
156 # This wrapper is required for all jobs as it configures the wrappers
157 # needed by the fd.io infra.
158 name: fdio-infra-wrappers
162 timeout: '{build-timeout}'
163 timeout-var: 'BUILD_TIMEOUT'
166 - ssh-agent-credentials:
168 - 'jenkins-gerrit-credentials'
176 name: gerrit-trigger-patch-submitted
179 server-name: 'Primary'
181 - patchset-created-event:
182 exclude-drafts: 'false'
183 exclude-trivial-rebase: 'false'
184 exclude-no-code-change: 'false'
185 - draft-published-event
186 - comment-added-contains-event:
187 comment-contains-value: 'recheck'
188 - comment-added-contains-event:
189 comment-contains-value: 'reverify'
191 - project-compare-type: 'ANT'
192 project-pattern: '{name}'
194 - branch-compare-type: 'ANT'
195 branch-pattern: '**/{branch}'
198 name: gerrit-trigger-trivial-patch-submitted
201 server-name: 'Primary'
203 - patchset-created-event:
204 exclude-drafts: 'false'
205 exclude-trivial-rebase: 'false'
206 exclude-no-code-change: 'true'
207 - draft-published-event
208 - comment-added-contains-event:
209 comment-contains-value: 'recheck'
210 - comment-added-contains-event:
211 comment-contains-value: 'reverify'
213 - project-compare-type: 'ANT'
214 project-pattern: '{name}'
216 - branch-compare-type: 'ANT'
217 branch-pattern: '**/{branch}'
220 name: gerrit-trigger-os-trivial-patch-submitted
223 server-name: 'Primary'
225 - comment-added-contains-event:
226 comment-contains-value: 'os-check'
227 - comment-added-contains-event:
228 comment-contains-value: 'os-verify'
230 - project-compare-type: 'ANT'
231 project-pattern: '{name}'
233 - branch-compare-type: 'ANT'
234 branch-pattern: '**/{branch}'
237 name: gerrit-trigger-trivial-patch-submitted-skip-vote
240 server-name: 'Primary'
242 - patchset-created-event:
243 exclude-drafts: 'false'
244 exclude-trivial-rebase: 'false'
245 exclude-no-code-change: 'true'
246 - draft-published-event
247 - comment-added-contains-event:
248 comment-contains-value: 'recheck'
249 - comment-added-contains-event:
250 comment-contains-value: 'reverify'
252 - project-compare-type: 'ANT'
253 project-pattern: '{name}'
255 - branch-compare-type: 'ANT'
256 branch-pattern: '**/{branch}'
264 name: gerrit-trigger-manually-triggered
267 server-name: 'Primary'
269 - comment-added-contains-event:
270 comment-contains-value: '{comment-trigger-value}'
272 - project-compare-type: 'ANT'
273 project-pattern: '{name}'
275 - branch-compare-type: 'ANT'
276 branch-pattern: '**/{branch}'
279 name: gerrit-trigger-patch-merged
282 server-name: 'Primary'
284 - change-merged-event
285 - comment-added-contains-event:
286 comment-contains-value: 'remerge'
288 - project-compare-type: 'ANT'
289 project-pattern: '{name}'
291 - branch-compare-type: 'ANT'
292 branch-pattern: '**/{branch}'
293 # Force Jenkins always vote the values it should already have voted
294 # during the prior verify phase
296 gerrit-build-started-verified-value: 1
297 gerrit-build-successful-verified-value: 1
298 gerrit-build-failed-verified-value: 1
299 gerrit-build-unstable-verified-value: 1
300 gerrit-build-notbuilt-verified-value: 1
301 gerrit-build-started-codereview-value: 0
302 gerrit-build-successful-codereview-value: 0
303 gerrit-build-failed-codereview-value: 0
304 gerrit-build-unstable-codereview-value: 0
305 gerrit-build-notbuilt-codereview-value: 0
308 name: gerrit-trigger-os-patch-merged
311 server-name: 'Primary'
313 - comment-added-contains-event:
314 comment-contains-value: 'os-merge'
316 - project-compare-type: 'ANT'
317 project-pattern: '{name}'
319 - branch-compare-type: 'ANT'
320 branch-pattern: '**/{branch}'
321 # Force Jenkins always vote the values it should already have voted
322 # during the prior verify phase
324 gerrit-build-started-verified-value: 1
325 gerrit-build-successful-verified-value: 1
326 gerrit-build-failed-verified-value: 1
327 gerrit-build-unstable-verified-value: 1
328 gerrit-build-notbuilt-verified-value: 1
329 gerrit-build-started-codereview-value: 0
330 gerrit-build-successful-codereview-value: 0
331 gerrit-build-failed-codereview-value: 0
332 gerrit-build-unstable-codereview-value: 0
333 gerrit-build-notbuilt-codereview-value: 0
337 name: archive-artifacts
340 artifacts: '{artifacts}'
346 name: email-notification
349 recipients: 'nobody@projectrotterdam.info'
351 content-type: default
352 subject: '{email-prefix} $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!'
354 $PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
356 Check console output at $BUILD_URL to view the results.
367 exec-pattern: '**/**.exec'
368 class-pattern: '**/classes'
369 source-pattern: '**/src/main/java'
370 exclusion-pattern: '**/gen**,**/generated-sources/**,**/yang-gen**,**/pax/**'
384 output-path: '{output-path}'
388 name: fdio-infra-shiplogs
389 # To archive things, the job will need to create an "archives" directory in
390 # the workspace and this macro will handle copying the contents of the
391 # archives directory.
393 # Uses the build parameter ARCHIVE_ARTIFACTS if not empty to find files to
394 # archive. You can pass globstar patterns for example "**/*.xml **/*.log" as
395 # the archive pattern. This is a space separated list of files to archive.
397 # Also ensure that the workspace is cleaned up at the end of the build.
401 - shell: !include-raw: include-raw-deploy-archives.sh
403 maven-version: '{maven-version}'
404 pom: '.archives/deploy-archives.xml'
405 goals: 'clean deploy -V -B -q -Dmaven.repo.local=/tmp/r'
406 settings: 'jenkins-log-archives-settings'
408 global-settings: 'global-settings'
409 global-settings-type: cfp
410 - description-setter:
411 regexp: '^Build logs: .*'
412 script-only-if-succeeded: false
413 script-only-if-failed: false
414 mark-unstable-if-failed: true
419 name: retry-build-on-builder-error
426 name: ci-management-check-unicode
429 $WORKSPACE/scripts/check-unicode.sh jjb/
432 name: provide-maven-settings
434 - config-file-provider:
436 - file-id: '{global-settings-file}'
437 variable: 'GLOBAL_SETTINGS_FILE'
438 - file-id: '{settings-file}'
439 variable: 'SETTINGS_FILE'
442 name: fdio-infra-properties
445 days-to-keep: '{build-days-to-keep}'
446 num-to-keep: '{build-num-to-keep}'
450 name: packer-validate
452 - config-file-provider:
454 - file-id: 'packer-cloud-env'
459 varfiles="../packer/vars/*"
460 templates="../packer/templates/*"
461 provision="../packer/provision/*.sh"
462 for v in $varfiles; do
463 [[ "${v##*/}" =~ ^(cloud-env.*)$ ]] && continue
464 for t in $templates; do
465 export PACKER_LOG="yes" && \
466 export PACKER_LOG_PATH="packer-validate-${v##*/}-${t##*/}.log" && \
467 packer.io validate -var-file=$CLOUDENV \
469 if [ $? -ne 0 ]; then
474 for p in $provision; do
475 /bin/bash -n $p > provision-validate-${p##*/}.log 2>&1
476 if [ $? -ne 0 ]; then
485 - config-file-provider:
487 - file-id: 'packer-cloud-env'
492 export PACKER_LOG="yes" && \
493 export PACKER_LOG_PATH="packer-build.log" && \
494 packer.io build -var-file=$CLOUDENV \
495 -var-file=../packer/vars/{platform}.json \
496 ../packer/templates/{template}.json