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