jjb: lttng-modules: Add gerrit build job
[lttng-ci.git] / jobs / lttng-modules.yaml
1 ---
2 ## Anchors
3 - lttng-modules_build_parameters_defaults: &lttng-modules_build_parameters_defaults
4 name: 'lttng-modules_build_parameters_defaults'
5 parameters:
6 - string:
7 name: 'maxConcurrentBuild'
8 default: '20'
9 description: 'The maximum number of concurrent child build to run.'
10 - string:
11 name: 'kverfloor'
12 default: '{kverfloor}'
13 description: 'The lowest kernel version to build.'
14 - string:
15 name: 'kverceil'
16 default: '{kverceil}'
17 description: 'The highest kernel version to build. (excluded)'
18 - string:
19 name: 'kverfilter'
20 default: '{kverfilter}'
21 description: 'Kernel versions list filtering strategy.'
22 - string:
23 name: 'kverrc'
24 default: 'true'
25 description: 'Add latest RC to kernel versions list.'
26 - string:
27 name: 'kgitrepo'
28 default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
29 description: 'The linux kernel git repository url.'
30 - string:
31 name: 'kbuildjob'
32 default: 'lttng-modules_PARAM_{parambuildtype}'
33 description: 'The parametrized job to use for child builds.'
34
35 - lttng-modules_build_parameters_gerrit: &lttng-modules_build_parameters_gerrit
36 name: 'lttng-modules_build_parameters_defaults'
37 parameters:
38 - string:
39 name: 'maxConcurrentBuild'
40 default: '10'
41 description: 'The maximum number of concurrent child build to run.'
42 - string:
43 name: 'kverfloor'
44 default: '{kverfloor}'
45 description: 'The lowest kernel version to build.'
46 - string:
47 name: 'kverceil'
48 default: '{kverceil}'
49 description: 'The highest kernel version to build. (excluded)'
50 - string:
51 name: 'kverfilter'
52 default: '{kverfilter}'
53 description: 'Kernel versions list filtering strategy.'
54 - string:
55 name: 'kverrc'
56 default: 'false'
57 description: 'Add latest RC to kernel versions list.'
58 - string:
59 name: 'kgitrepo'
60 default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
61 description: 'The linux kernel git repository url.'
62 - string:
63 name: 'kbuildjob'
64 default: 'lttng-modules_PARAM_build'
65 description: 'The parametrized job to use for child builds.'
66
67 - lttng-modules_build_parameters_ubuntu: &lttng-modules_build_parameters_ubuntu
68 name: 'lttng-modules_build_parameters_ubuntu'
69 parameters:
70 - string:
71 name: 'maxConcurrentBuild'
72 default: '20'
73 description: 'The maximum number of concurrent child build to run.'
74 - string:
75 name: 'kverfloor'
76 default: '{kverfloor}'
77 description: 'The lowest kernel version to build.'
78 - string:
79 name: 'kverceil'
80 default: '{kverceil}'
81 description: 'The highest kernel version to build. (excluded)'
82 - string:
83 name: 'kverfilter'
84 default: '{kverfilter}'
85 description: 'Kernel versions list filtering strategy.'
86 - string:
87 name: 'kverrc'
88 default: 'false'
89 description: 'Add latest RC to kernel versions list.'
90 - string:
91 name: 'kgitrepo'
92 default: 'git://git-mirror.internal.efficios.com/git/ubuntu-{uversion}.git'
93 description: 'The linux kernel git repository url.'
94 - string:
95 name: 'kbuildjob'
96 default: 'lttng-modules_PARAM_{parambuildtype}'
97 description: 'The parametrized job to use for child builds.'
98 - string:
99 name: 'uversion'
100 default: '{uversion}'
101 description: 'The lowest kernel version to build.'
102
103 - lttng-modules_build_parameters_rt: &lttng-modules_build_parameters_rt
104 name: 'lttng-modules_build_parameters_rt'
105 parameters:
106 - string:
107 name: 'maxConcurrentBuild'
108 default: '20'
109 description: 'The maximum number of concurrent child build to run.'
110 - string:
111 name: 'kverfloor'
112 default: 'v2.6.36-rt0-rebase'
113 description: 'The lowest kernel version to build.'
114 - string:
115 name: 'kverceil'
116 default: '{kverceil}'
117 description: 'The highest kernel version to build. (excluded)'
118 - string:
119 name: 'kverfilter'
120 default: '{kverfilter}'
121 description: 'Kernel versions list filtering strategy.'
122 - string:
123 name: 'kverrc'
124 default: 'false'
125 description: 'Add latest RC to kernel versions list.'
126 - string:
127 name: 'kgitrepo'
128 default: 'git://git-mirror.internal.efficios.com/kernel/rt/linux-stable-rt.git'
129 description: 'The linux kernel git repository url.'
130 - string:
131 name: 'kbuildjob'
132 default: 'lttng-modules_PARAM_build'
133 description: 'The parametrized job to use for child builds.'
134
135 - lttng-modules_build_builders_defaults: &lttng-modules_build_builders_defaults
136 name: 'lttng-modules_build_builders_defaults'
137 builders:
138 - system-groovy:
139 command:
140 !include-raw-escape: scripts/lttng-modules/master.groovy
141
142 - lttng-modules_build_rt_builders_defaults: &lttng-modules_build_rt_builders_defaults
143 name: 'lttng-modules_build_rt_builders_defaults'
144 builders:
145 - system-groovy:
146 command:
147 !include-raw-escape: scripts/lttng-modules/master-rt.groovy
148
149
150 ## Defaults
151 - defaults:
152 name: lttng-modules
153 description: |
154 The LTTng modules provide Linux kernel tracing capability to the LTTng
155 2.0 tracer toolset.
156
157 <p>Job is managed by Jenkins Job Builder.</p>
158
159 project-type: freestyle
160
161 wrappers:
162 - workspace-cleanup
163 - timestamps
164 - ansicolor
165
166 scm:
167 - git:
168 url: git://github.com/{github_user}/{github_name}.git
169 browser: githubweb
170 browser-url: https://github.com/{github_user}/{github_name}
171 branches:
172 - "refs/heads/{mversion}"
173 shallow-clone: true
174 fastpoll: true
175 basedir: src/lttng-modules
176 wipe-workspace: false
177 skip-tag: true
178
179 triggers:
180 - pollscm:
181 cron: "@hourly"
182
183 properties:
184 - build-discarder:
185 num-to-keep: 2
186 - github:
187 url: https://github.com/{github_user}/{github_name}
188
189 publishers:
190 - workspace-cleanup
191 - email-ext:
192 recipients: '{obj:email_to}'
193 reply-to: ci-notification@lists.lttng.org
194 always: false
195 unstable: false
196 first-failure: true
197 first-unstable: true
198 not-built: false
199 aborted: false
200 regression: false
201 failure: false
202 second-failure: false
203 improvement: false
204 still-failing: false
205 success: false
206 fixed: false
207 fixed-unhealthy: true
208 still-unstable: false
209 pre-build: false
210 matrix-trigger: only-parent
211 send-to:
212 - recipients
213
214
215 ## Templates
216 - job-template:
217 name: lttng-modules_ALL_trigger-vanilla
218 defaults: lttng-modules
219 description: |
220 The LTTng modules provide Linux kernel tracing capability to the LTTng
221 2.0 tracer toolset.
222
223 This job will trigger the build jobs when a new tag is added to the vanilla
224 and stable kernel trees.
225
226 <p>Job is managed by Jenkins Job Builder.</p>
227
228 node: 'master'
229
230 wrappers:
231 - timestamps
232 - ansicolor
233
234 scm: []
235
236 triggers:
237 - timed: "@hourly"
238
239 builders:
240 - system-groovy:
241 command:
242 !include-raw-escape: scripts/lttng-modules/trigger-vanilla.groovy
243
244 publishers: []
245
246 - job-template:
247 name: lttng-modules_{mversion}_{buildtype}-vanilla
248 defaults: lttng-modules
249 description: |
250 The LTTng modules provide Linux kernel tracing capability to the LTTng
251 2.0 tracer toolset.
252
253 This job will build the {mversion} branch against stable vanilla
254 kernel tags.
255
256 <p>Job is managed by Jenkins Job Builder.</p>
257
258 node: 'master'
259
260 <<: *lttng-modules_build_parameters_defaults
261 <<: *lttng-modules_build_builders_defaults
262
263 - job-template:
264 name: dev_gerrit_lttng-modules_build
265 defaults: lttng-modules
266 concurrent: true
267
268 node: 'master'
269
270 scm:
271 - git:
272 url: https://review.lttng.org/lttng-modules
273 refspec: 'refs/changes/*:refs/changes/*'
274 branches:
275 - '$GERRIT_REFSPEC'
276 basedir: src/lttng-modules
277 skip-tag: true
278
279 triggers:
280 - gerrit:
281 trigger-on:
282 - comment-added-event:
283 approval-category: 'CI-Build'
284 approval-value: 1
285 projects:
286 - project-compare-type: 'PLAIN'
287 project-pattern: 'lttng-modules'
288 branches:
289 - branch-compare-type: 'ANT'
290 branch-pattern: '**'
291 trigger-for-unreviewed-patches: true
292
293 properties:
294 - build-discarder:
295 num-to-keep: 2
296
297 <<: *lttng-modules_build_parameters_gerrit
298 <<: *lttng-modules_build_builders_defaults
299
300 publishers:
301 - workspace-cleanup
302
303 - job-template:
304 name: lttng-modules_{mversion}_fullbuild-vanilla
305 defaults: lttng-modules
306 description: |
307 The LTTng modules provide Linux kernel tracing capability to the LTTng
308 2.0 tracer toolset.
309
310 This job will build the {mversion} branch against all stable vanilla
311 kernel tags.
312
313 <p>Job is managed by Jenkins Job Builder.</p>
314
315 node: 'master'
316
317 <<: *lttng-modules_build_parameters_defaults
318 <<: *lttng-modules_build_builders_defaults
319
320 triggers:
321 - pollscm:
322 cron: "@midnight"
323
324 - job-template:
325 name: lttng-modules_{mversion}_{buildtype}-{uversion}
326 defaults: lttng-modules
327 description: |
328 The LTTng modules provide Linux kernel tracing capability to the LTTng
329 2.0 tracer toolset.
330
331 This job will build the {mversion} branch against Ubuntu {uversion}
332 released kernels, including the LTS backport kernels.
333
334 <p>Job is managed by Jenkins Job Builder.</p>
335
336 node: 'master'
337
338 <<: *lttng-modules_build_parameters_ubuntu
339 <<: *lttng-modules_build_builders_defaults
340
341 - job-template:
342 name: lttng-modules_{mversion}_fullbuild-{uversion}
343 defaults: lttng-modules
344 description: |
345 The LTTng modules provide Linux kernel tracing capability to the LTTng
346 2.0 tracer toolset.
347
348 This job will build the {mversion} branch against Ubuntu {uversion}
349 released kernels, including the LTS backport kernels.
350
351 <p>Job is managed by Jenkins Job Builder.</p>
352
353 node: 'master'
354
355 <<: *lttng-modules_build_parameters_ubuntu
356 <<: *lttng-modules_build_builders_defaults
357
358 triggers:
359 - pollscm:
360 cron: "@midnight"
361
362 - job-template:
363 name: lttng-modules_{mversion}_build-rt
364 defaults: lttng-modules
365 description: |
366 The LTTng modules provide Linux kernel tracing capability to the LTTng
367 2.0 tracer toolset.
368
369 This job will build the {mversion} branch against all Linutronix RT
370 kernels.
371
372 <p>Job is managed by Jenkins Job Builder.</p>
373
374 node: 'master'
375
376 <<: *lttng-modules_build_parameters_rt
377 <<: *lttng-modules_build_rt_builders_defaults
378
379 - job-template:
380 name: lttng-modules_PARAM_build
381 defaults: lttng-modules
382 description: |
383 This is a parametrized job used by 'master' jobs to build any combinations
384 of lttng-modules and linux kernel versions.
385
386 <p>Job is managed by Jenkins Job Builder.</p>
387
388 project-type: matrix
389 node: 'master' # Applies only to matrix flyweight task
390 axes:
391 - axis:
392 type: slave
393 name: arch
394 values: '{obj:arch}'
395
396 properties:
397 - build-discarder:
398 days-to-keep: 2
399
400 parameters:
401 - string:
402 name: 'mversion'
403 default: 'master'
404 description: 'The lttng-modules branch to build.'
405 - string:
406 name: 'mgitrepo'
407 default: 'git://github.com/lttng/lttng-modules.git'
408 description: 'The lttng-modules git repository url.'
409 - string:
410 name: 'ktag'
411 default: ''
412 description: 'The linux kernel git tag to build against.'
413 - string:
414 name: 'kgitrepo'
415 default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
416 description: 'The linux kernel git repository url.'
417
418 concurrent: true
419
420 scm: []
421
422 triggers:
423
424 builders:
425 - shell:
426 !include-raw-escape: scripts/lttng-modules/param-build.sh
427
428 publishers:
429 - workspace-cleanup
430
431
432 - job-template:
433 name: lttng-modules_PARAM_crossbuild
434 defaults: lttng-modules
435 description: |
436 This is a parametrized job used by 'master' jobs to build any combinations
437 of lttng-modules and linux kernel versions.
438
439 <p>Job is managed by Jenkins Job Builder.</p>
440
441 project-type: matrix
442 node: 'master' # Applies only to matrix flyweight task
443 axes:
444 - axis:
445 type: user-defined
446 name: cross_arch
447 values: '{obj:cross_arch}'
448
449 properties:
450 - build-discarder:
451 days-to-keep: 2
452
453 parameters:
454 - string:
455 name: 'mversion'
456 default: 'master'
457 description: 'The lttng-modules branch to build.'
458 - string:
459 name: 'mgitrepo'
460 default: 'git://github.com/lttng/lttng-modules.git'
461 description: 'The lttng-modules git repository url.'
462 - string:
463 name: 'ktag'
464 default: ''
465 description: 'The linux kernel git tag to build against.'
466 - string:
467 name: 'kgitrepo'
468 default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
469 description: 'The linux kernel git repository url.'
470
471 concurrent: true
472
473 scm: []
474
475 triggers:
476
477 builders:
478 - shell:
479 !include-raw-escape: scripts/lttng-modules/param-build.sh
480
481 publishers:
482 - workspace-cleanup
483
484 - job-template:
485 name: lttng-modules_{mversion}_coverity
486 defaults: lttng-modules
487 node: 'amd64'
488
489 triggers:
490 - pollscm:
491 cron: "@daily"
492
493 wrappers:
494 - workspace-cleanup
495 - timestamps
496 - ansicolor:
497 colormap: xterm
498 - credentials-binding:
499 - username-password-separated:
500 credential-id: lttng-modules_coverity_token
501 username: COVERITY_SCAN_PROJECT_NAME
502 password: COVERITY_SCAN_TOKEN
503
504 builders:
505 - shell: |
506 git clone --depth=1 -b v5.5 --reference $HOME/gitcache/linux-stable.git/ git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git src/linux
507 cd src/linux
508 make allyesconfig
509 sed -i "s/# CONFIG_KALLSYMS_ALL is not set/CONFIG_KALLSYMS_ALL=y/g" .config
510 make modules_prepare
511 - shell:
512 !include-raw-escape: scripts/common/coverity.sh
513
514 publishers:
515 - archive:
516 artifacts: 'analysis-results.tgz,cov-int/**'
517 allow-empty: false
518 - workspace-cleanup
519
520 - job-template:
521 name: lttng-modules_{mversion}_cppcheck
522 defaults: lttng-modules
523
524 triggers:
525 - pollscm:
526 cron: "@daily"
527
528 builders:
529 - shell: |
530 rm -f cppcheck-result.xml
531 cppcheck --enable=all --xml --xml-version=2 $WORKSPACE/src/lttng-modules 2> cppcheck-result.xml
532
533 publishers:
534 - archive:
535 artifacts: 'cppcheck-result.xml'
536 allow-empty: false
537 - cppcheck:
538 pattern: 'cppcheck-result.xml'
539
540 - job-template:
541 name: lttng-modules_{mversion}_sloccount
542 defaults: lttng-modules
543 description: |
544 The LTTng modules provide Linux kernel tracing capability to the LTTng
545 2.0 tracer toolset.
546
547 This job runs the sloccount utility and generates a trend report.
548
549 <p>Job is managed by Jenkins Job Builder.</p>
550
551 triggers:
552 - pollscm:
553 cron: "@daily"
554
555 builders:
556 - shell: |
557 cloc --by-file --xml --out=cloc.xml src/lttng-modules/
558
559 publishers:
560 - archive:
561 artifacts: 'cloc.xml'
562 allow-empty: false
563 - sloccount:
564 report-files: 'cloc.xml'
565 - workspace-cleanup
566
567
568 ## Project
569 - project:
570 name: lttng-modules
571 github_user: lttng
572 github_name: lttng-modules
573 email_to: 'ci-notification@lists.lttng.org, cc:mathieu.desnoyers@efficios.com'
574 jobs:
575
576 # Vanilla normal builds
577 - 'lttng-modules_{mversion}_{buildtype}-vanilla':
578 mversion:
579 - stable-2.12
580 - master
581 buildtype: build
582 parambuildtype: build
583 kverfloor: v3.0
584 kverceil: ''
585 kverfilter: stable-head
586 - 'lttng-modules_{mversion}_{buildtype}-vanilla':
587 mversion:
588 - stable-2.10
589 - stable-2.11
590 buildtype: build
591 parambuildtype: build
592 kverfloor: v2.6.36
593 kverceil: ''
594 kverfilter: stable-head
595 - 'lttng-modules_{mversion}_fullbuild-vanilla':
596 mversion:
597 - stable-2.12
598 - master
599 buildtype: build
600 parambuildtype: build
601 kverfloor: v3.0
602 kverceil: ''
603 kverfilter: none
604 - 'lttng-modules_{mversion}_fullbuild-vanilla':
605 mversion:
606 - stable-2.10
607 - stable-2.11
608 buildtype: build
609 parambuildtype: build
610 kverfloor: v2.6.36
611 kverceil: ''
612 kverfilter: none
613
614 # RT normal builds
615 - 'lttng-modules_{mversion}_build-rt':
616 mversion: master
617 kverceil: ''
618 kverfilter: stable-head
619
620 # Ubuntu normal builds
621 - 'lttng-modules_{mversion}_{buildtype}-{uversion}':
622 mversion:
623 - stable-2.10
624 - stable-2.11
625 - stable-2.12
626 - master
627 uversion:
628 - xenial
629 - bionic
630 - focal
631 buildtype: build
632 parambuildtype: build
633 kverfloor: ''
634 kverceil: ''
635 kverfilter: stable-head
636
637 # Vanilla crossbuilds
638 - 'lttng-modules_{mversion}_{buildtype}-vanilla':
639 mversion:
640 - stable-2.10
641 - stable-2.11
642 - stable-2.12
643 - master
644 buildtype: crossbuild
645 parambuildtype: crossbuild
646 kverfloor: v3.18
647 kverceil: ''
648 kverfilter: stable-head
649
650 # Ubuntu cross builds
651 - 'lttng-modules_{mversion}_{buildtype}-{uversion}':
652 mversion:
653 - stable-2.10
654 - stable-2.11
655 - stable-2.12
656 - master
657 uversion:
658 - xenial
659 - bionic
660 buildtype: crossbuild
661 parambuildtype: crossbuild
662 kverfloor: ''
663 kverceil: ''
664 kverfilter: stable-head
665
666 # Parametrized kernel and modules build jobs
667 - 'lttng-modules_PARAM_build':
668 arch: !!python/tuple [amd64]
669 - 'lttng-modules_PARAM_crossbuild':
670 cross_arch: !!python/tuple [armhf, arm64, powerpc, ppc64el]
671
672 # Misc jobs
673 - 'lttng-modules_ALL_trigger-vanilla'
674 - 'lttng-modules_{mversion}_cppcheck':
675 mversion:
676 - stable-2.10
677 - stable-2.11
678 - stable-2.12
679 - master
680 - 'lttng-modules_{mversion}_sloccount':
681 mversion: master
682 - 'lttng-modules_{mversion}_coverity':
683 mversion: master
684
685 - project:
686 name: lttng-modules-gerrit
687 jobs:
688 - 'dev_gerrit_lttng-modules_build':
689 kverfloor: v5.5
690 kverceil: v5.6
691 kverfilter: stable-head
This page took 0.046551 seconds and 5 git commands to generate.