jjb: add ircbot in #lttng-ci
[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: '{kverfloor}'
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: https://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: 10
186 artifact-num-to-keep: 2
187 - github:
188 url: https://github.com/{github_user}/{github_name}
189
190 publishers:
191 - workspace-cleanup
192 - ircbot: &lttng-modules_publisher_ircbot_defaults
193 strategy: statechange-only
194 message-type: summary-scm
195 matrix-notifier: only-configurations
196 - email-ext:
197 recipients: '{obj:email_to}'
198 reply-to: ci-notification@lists.lttng.org
199 always: false
200 unstable: false
201 first-failure: true
202 first-unstable: true
203 not-built: false
204 aborted: false
205 regression: false
206 failure: false
207 second-failure: false
208 improvement: false
209 still-failing: false
210 success: false
211 fixed: false
212 fixed-unhealthy: true
213 still-unstable: false
214 pre-build: false
215 matrix-trigger: only-parent
216 send-to:
217 - recipients
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_gerrit_lttng-modules_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: 'ANT'
341 branch-pattern: '**'
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_gerrit
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-gerrit
764 jobs:
765 - 'dev_gerrit_lttng-modules_build':
766 kverfloor: v5.5
767 kverceil: v5.6
768 kverfilter: stable-head
769
770 - project:
771 name: lttng-modules-dev-mjeanson
772 github_user: mjeanson
773 github_name: lttng-modules
774 email_to: ''
775 jobs:
776 - 'dev_mjeanson_lttng-modules_PARAM_build':
777 arch: !!python/tuple [amd64]
778 - 'dev_mjeanson_lttng-modules_{mversion}_{buildtype}-vanilla':
779 mversion:
780 - master
781 buildtype: build
782 parambuildtype: build
783 kverfloor: v3.0
784 kverceil: ''
785 kverfilter: stable-head
This page took 0.04546 seconds and 5 git commands to generate.