jjb: lttng-modules: USe internal git mirror
[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://git-mirror.internal.efficios.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 days-to-keep: 1
296 - throttle:
297 option: 'category'
298 categories:
299 - 'gerrit-build'
300
301 <<: *lttng-modules_build_parameters_gerrit
302 <<: *lttng-modules_build_builders_defaults
303
304 publishers:
305 - workspace-cleanup
306
307 - job-template:
308 name: lttng-modules_{mversion}_fullbuild-vanilla
309 defaults: lttng-modules
310 description: |
311 The LTTng modules provide Linux kernel tracing capability to the LTTng
312 2.0 tracer toolset.
313
314 This job will build the {mversion} branch against all stable vanilla
315 kernel tags.
316
317 <p>Job is managed by Jenkins Job Builder.</p>
318
319 node: 'master'
320
321 <<: *lttng-modules_build_parameters_defaults
322 <<: *lttng-modules_build_builders_defaults
323
324 triggers:
325 - pollscm:
326 cron: "@midnight"
327
328 - job-template:
329 name: lttng-modules_{mversion}_{buildtype}-{uversion}
330 defaults: lttng-modules
331 description: |
332 The LTTng modules provide Linux kernel tracing capability to the LTTng
333 2.0 tracer toolset.
334
335 This job will build the {mversion} branch against Ubuntu {uversion}
336 released kernels, including the LTS backport kernels.
337
338 <p>Job is managed by Jenkins Job Builder.</p>
339
340 node: 'master'
341
342 <<: *lttng-modules_build_parameters_ubuntu
343 <<: *lttng-modules_build_builders_defaults
344
345 - job-template:
346 name: lttng-modules_{mversion}_fullbuild-{uversion}
347 defaults: lttng-modules
348 description: |
349 The LTTng modules provide Linux kernel tracing capability to the LTTng
350 2.0 tracer toolset.
351
352 This job will build the {mversion} branch against Ubuntu {uversion}
353 released kernels, including the LTS backport kernels.
354
355 <p>Job is managed by Jenkins Job Builder.</p>
356
357 node: 'master'
358
359 <<: *lttng-modules_build_parameters_ubuntu
360 <<: *lttng-modules_build_builders_defaults
361
362 triggers:
363 - pollscm:
364 cron: "@midnight"
365
366 - job-template:
367 name: lttng-modules_{mversion}_build-rt
368 defaults: lttng-modules
369 description: |
370 The LTTng modules provide Linux kernel tracing capability to the LTTng
371 2.0 tracer toolset.
372
373 This job will build the {mversion} branch against all Linutronix RT
374 kernels.
375
376 <p>Job is managed by Jenkins Job Builder.</p>
377
378 node: 'master'
379
380 <<: *lttng-modules_build_parameters_rt
381 <<: *lttng-modules_build_rt_builders_defaults
382
383 - job-template:
384 name: lttng-modules_PARAM_build
385 defaults: lttng-modules
386 description: |
387 This is a parametrized job used by 'master' jobs to build any combinations
388 of lttng-modules and linux kernel versions.
389
390 <p>Job is managed by Jenkins Job Builder.</p>
391
392 project-type: matrix
393 node: 'master' # Applies only to matrix flyweight task
394 axes:
395 - axis:
396 type: slave
397 name: arch
398 values: '{obj:arch}'
399
400 properties:
401 - build-discarder:
402 days-to-keep: 2
403
404 parameters:
405 - string:
406 name: 'mversion'
407 default: 'master'
408 description: 'The lttng-modules branch to build.'
409 - string:
410 name: 'mgitrepo'
411 default: 'git://git-mirror.internal.efficios.com/lttng/lttng-modules.git'
412 description: 'The lttng-modules git repository url.'
413 - string:
414 name: 'ktag'
415 default: ''
416 description: 'The linux kernel git tag to build against.'
417 - string:
418 name: 'kgitrepo'
419 default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
420 description: 'The linux kernel git repository url.'
421
422 concurrent: true
423
424 scm: []
425
426 triggers:
427
428 builders:
429 - shell:
430 !include-raw-escape: scripts/lttng-modules/param-build.sh
431
432 publishers:
433 - workspace-cleanup
434
435
436 - job-template:
437 name: lttng-modules_PARAM_crossbuild
438 defaults: lttng-modules
439 description: |
440 This is a parametrized job used by 'master' jobs to build any combinations
441 of lttng-modules and linux kernel versions.
442
443 <p>Job is managed by Jenkins Job Builder.</p>
444
445 project-type: matrix
446 node: 'master' # Applies only to matrix flyweight task
447 axes:
448 - axis:
449 type: user-defined
450 name: cross_arch
451 values: '{obj:cross_arch}'
452
453 properties:
454 - build-discarder:
455 days-to-keep: 2
456
457 parameters:
458 - string:
459 name: 'mversion'
460 default: 'master'
461 description: 'The lttng-modules branch to build.'
462 - string:
463 name: 'mgitrepo'
464 default: 'git://git-mirror.internal.efficios.com/lttng/lttng-modules.git'
465 description: 'The lttng-modules git repository url.'
466 - string:
467 name: 'ktag'
468 default: ''
469 description: 'The linux kernel git tag to build against.'
470 - string:
471 name: 'kgitrepo'
472 default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
473 description: 'The linux kernel git repository url.'
474
475 concurrent: true
476
477 scm: []
478
479 triggers:
480
481 builders:
482 - shell:
483 !include-raw-escape: scripts/lttng-modules/param-build.sh
484
485 publishers:
486 - workspace-cleanup
487
488 - job-template:
489 name: lttng-modules_{mversion}_coverity
490 defaults: lttng-modules
491 node: 'amd64'
492
493 triggers:
494 - pollscm:
495 cron: "@daily"
496
497 wrappers:
498 - workspace-cleanup
499 - timestamps
500 - ansicolor:
501 colormap: xterm
502 - credentials-binding:
503 - username-password-separated:
504 credential-id: lttng-modules_coverity_token
505 username: COVERITY_SCAN_PROJECT_NAME
506 password: COVERITY_SCAN_TOKEN
507
508 builders:
509 - shell: |
510 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
511 cd src/linux
512 make allyesconfig
513 sed -i "s/# CONFIG_KALLSYMS_ALL is not set/CONFIG_KALLSYMS_ALL=y/g" .config
514 make modules_prepare
515 - shell:
516 !include-raw-escape: scripts/common/coverity.sh
517
518 publishers:
519 - archive:
520 artifacts: 'analysis-results.tgz,cov-int/**'
521 allow-empty: false
522 - workspace-cleanup
523
524 - job-template:
525 name: lttng-modules_{mversion}_cppcheck
526 defaults: lttng-modules
527
528 triggers:
529 - pollscm:
530 cron: "@daily"
531
532 builders:
533 - shell: |
534 rm -f cppcheck-result.xml
535 cppcheck --enable=all --xml --xml-version=2 $WORKSPACE/src/lttng-modules 2> cppcheck-result.xml
536
537 publishers:
538 - archive:
539 artifacts: 'cppcheck-result.xml'
540 allow-empty: false
541 - cppcheck:
542 pattern: 'cppcheck-result.xml'
543
544 - job-template:
545 name: lttng-modules_{mversion}_sloccount
546 defaults: lttng-modules
547 description: |
548 The LTTng modules provide Linux kernel tracing capability to the LTTng
549 2.0 tracer toolset.
550
551 This job runs the sloccount utility and generates a trend report.
552
553 <p>Job is managed by Jenkins Job Builder.</p>
554
555 triggers:
556 - pollscm:
557 cron: "@daily"
558
559 builders:
560 - shell: |
561 cloc --by-file --xml --out=cloc.xml src/lttng-modules/
562
563 publishers:
564 - archive:
565 artifacts: 'cloc.xml'
566 allow-empty: false
567 - sloccount:
568 report-files: 'cloc.xml'
569 - workspace-cleanup
570
571
572 ## Project
573 - project:
574 name: lttng-modules
575 github_user: lttng
576 github_name: lttng-modules
577 email_to: 'ci-notification@lists.lttng.org, cc:mathieu.desnoyers@efficios.com'
578 jobs:
579
580 # Vanilla normal builds
581 - 'lttng-modules_{mversion}_{buildtype}-vanilla':
582 mversion:
583 - stable-2.12
584 - master
585 buildtype: build
586 parambuildtype: build
587 kverfloor: v3.0
588 kverceil: ''
589 kverfilter: stable-head
590 - 'lttng-modules_{mversion}_{buildtype}-vanilla':
591 mversion:
592 - stable-2.10
593 - stable-2.11
594 buildtype: build
595 parambuildtype: build
596 kverfloor: v2.6.36
597 kverceil: ''
598 kverfilter: stable-head
599 - 'lttng-modules_{mversion}_fullbuild-vanilla':
600 mversion:
601 - stable-2.12
602 - master
603 buildtype: build
604 parambuildtype: build
605 kverfloor: v3.0
606 kverceil: ''
607 kverfilter: none
608 - 'lttng-modules_{mversion}_fullbuild-vanilla':
609 mversion:
610 - stable-2.10
611 - stable-2.11
612 buildtype: build
613 parambuildtype: build
614 kverfloor: v2.6.36
615 kverceil: ''
616 kverfilter: none
617
618 # RT normal builds
619 - 'lttng-modules_{mversion}_build-rt':
620 mversion: master
621 kverceil: ''
622 kverfilter: stable-head
623
624 # Ubuntu normal builds
625 - 'lttng-modules_{mversion}_{buildtype}-{uversion}':
626 mversion:
627 - stable-2.10
628 - stable-2.11
629 - stable-2.12
630 - master
631 uversion:
632 - xenial
633 - bionic
634 - focal
635 buildtype: build
636 parambuildtype: build
637 kverfloor: ''
638 kverceil: ''
639 kverfilter: stable-head
640
641 # Vanilla crossbuilds
642 - 'lttng-modules_{mversion}_{buildtype}-vanilla':
643 mversion:
644 - stable-2.10
645 - stable-2.11
646 - stable-2.12
647 - master
648 buildtype: crossbuild
649 parambuildtype: crossbuild
650 kverfloor: v3.18
651 kverceil: ''
652 kverfilter: stable-head
653
654 # Ubuntu cross builds
655 - 'lttng-modules_{mversion}_{buildtype}-{uversion}':
656 mversion:
657 - stable-2.10
658 - stable-2.11
659 - stable-2.12
660 - master
661 uversion:
662 - xenial
663 - bionic
664 buildtype: crossbuild
665 parambuildtype: crossbuild
666 kverfloor: ''
667 kverceil: ''
668 kverfilter: stable-head
669
670 # Parametrized kernel and modules build jobs
671 - 'lttng-modules_PARAM_build':
672 arch: !!python/tuple [amd64]
673 - 'lttng-modules_PARAM_crossbuild':
674 cross_arch: !!python/tuple [armhf, arm64, powerpc, ppc64el]
675
676 # Misc jobs
677 - 'lttng-modules_ALL_trigger-vanilla'
678 - 'lttng-modules_{mversion}_cppcheck':
679 mversion:
680 - stable-2.10
681 - stable-2.11
682 - stable-2.12
683 - master
684 - 'lttng-modules_{mversion}_sloccount':
685 mversion: master
686 - 'lttng-modules_{mversion}_coverity':
687 mversion: master
688
689 - project:
690 name: lttng-modules-gerrit
691 jobs:
692 - 'dev_gerrit_lttng-modules_build':
693 kverfloor: v5.5
694 kverceil: v5.6
695 kverfilter: stable-head
This page took 0.042745 seconds and 5 git commands to generate.