Add email notification to baremetal jobs
[lttng-ci.git] / jobs / lttng-modules.yaml
CommitLineData
598af463 1---
3a01c580
MJ
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: 'mversion'
8 default: '{mversion}'
9 description: 'The lttng-modules branch to build.'
10 - string:
11 name: 'maxConcurrentBuild'
12 default: '20'
13 description: 'The maximum number of concurrent child build to run.'
14 - string:
15 name: 'kverfloor'
16 default: '{kverfloor}'
17 description: 'The lowest kernel version to build.'
18 - string:
19 name: 'kverceil'
20 default: '{kverceil}'
21 description: 'The highest kernel version to build. (excluded)'
22 - string:
23 name: 'kverfilter'
24 default: '{kverfilter}'
25 description: 'Kernel versions list filtering strategy.'
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_VERSION_param-{parambuildtype}'
33 description: 'The parametrized job to use for child builds.'
34
35- lttng-modules_build_parameters_ubuntu: &lttng-modules_build_parameters_ubuntu
36 name: 'lttng-modules_build_parameters_ubuntu'
37 parameters:
38 - string:
39 name: 'mversion'
40 default: '{mversion}'
41 description: 'The lttng-modules branch to build.'
42 - string:
43 name: 'maxConcurrentBuild'
44 default: '20'
45 description: 'The maximum number of concurrent child build to run.'
46 - string:
47 name: 'kverfloor'
48 default: '{kverfloor}'
49 description: 'The lowest kernel version to build.'
50 - string:
51 name: 'kverceil'
52 default: '{kverceil}'
53 description: 'The highest kernel version to build. (excluded)'
54 - string:
55 name: 'kverfilter'
56 default: '{kverfilter}'
57 description: 'Kernel versions list filtering strategy.'
58 - string:
59 name: 'kgitrepo'
60 default: 'git://git-mirror.internal.efficios.com/git/ubuntu-{uversion}.git'
61 description: 'The linux kernel git repository url.'
62 - string:
63 name: 'kbuildjob'
64 default: 'lttng-modules_VERSION_param-{parambuildtype}'
65 description: 'The parametrized job to use for child builds.'
66 - string:
67 name: 'uversion'
68 default: '{uversion}'
69 description: 'The lowest kernel version to build.'
70
71- lttng-modules_build_parameters_rt: &lttng-modules_build_parameters_rt
72 name: 'lttng-modules_build_parameters_rt'
73 parameters:
74 - string:
75 name: 'mversion'
76 default: '{mversion}'
77 description: 'The lttng-modules branch to build.'
78 - string:
79 name: 'maxConcurrentBuild'
80 default: '20'
81 description: 'The maximum number of concurrent child build to run.'
82 - string:
83 name: 'kverfloor'
84 default: 'v2.6.36-rt0-rebase'
85 description: 'The lowest kernel version to build.'
af3990ed
MJ
86 - string:
87 name: 'kverceil'
88 default: '{kverceil}'
89 description: 'The highest kernel version to build. (excluded)'
90 - string:
91 name: 'kverfilter'
92 default: '{kverfilter}'
93 description: 'Kernel versions list filtering strategy.'
3a01c580
MJ
94 - string:
95 name: 'kgitrepo'
96 default: 'git://git-mirror.internal.efficios.com/kernel/rt/linux-rt-devel.git'
97 description: 'The linux kernel git repository url.'
98 - string:
99 name: 'kbuildjob'
100 default: 'lttng-modules_VERSION_param-build'
101 description: 'The parametrized job to use for child builds.'
102
103- lttng-modules_build_builders_defaults: &lttng-modules_build_builders_defaults
104 name: 'lttng-modules_build_builders_defaults'
105 builders:
106 - system-groovy:
107 command:
108 !include-raw-escape: scripts/lttng-modules/master.groovy
109
110- lttng-modules_build_rt_builders_defaults: &lttng-modules_build_rt_builders_defaults
111 name: 'lttng-modules_build_rt_builders_defaults'
112 builders:
113 - system-groovy:
114 command:
115 !include-raw-escape: scripts/lttng-modules/master-rt.groovy
116
117
118## Defaults
598af463
MJ
119- defaults:
120 name: lttng-modules
121 description: |
f899b1be
MJ
122 The LTTng modules provide Linux kernel tracing capability to the LTTng
123 2.0 tracer toolset.
a3c2d81c
MJ
124
125 <p>Job is managed by Jenkins Job Builder.</p>
598af463
MJ
126
127 project-type: freestyle
128
598af463
MJ
129 wrappers:
130 - workspace-cleanup
131 - timestamps
132 - ansicolor
133
134 scm:
598af463 135 - git:
51ca880a 136 url: git://github.com/{github_user}/{github_name}.git
9a00aa82 137 browser: githubweb
51ca880a 138 browser-url: https://github.com/{github_user}/{github_name}
598af463
MJ
139 branches:
140 - "{mversion}"
94bddbc4 141 shallow-clone: true
94bddbc4 142 fastpoll: true
7e942863 143 basedir: src/lttng-modules
3a01c580
MJ
144 wipe-workspace: false
145 skip-tag: true
598af463 146
d2fc1027 147 triggers:
4f3fef7d 148 - pollscm:
997b01f2 149 cron: "@hourly"
d2fc1027 150
598af463 151 properties:
edf72710
MJ
152 - build-discarder:
153 num-to-keep: 2
9a00aa82 154 - github:
51ca880a 155 url: https://github.com/{github_user}/{github_name}
598af463 156
3a01c580
MJ
157 publishers:
158 - workspace-cleanup
159
598af463
MJ
160
161## Templates
9e5c099a
MJ
162- job-template:
163 name: lttng-modules_ALL_trigger-vanilla
164 defaults: lttng-modules
165 description: |
166 The LTTng modules provide Linux kernel tracing capability to the LTTng
167 2.0 tracer toolset.
168
169 This job will trigger the build jobs when a new tag is added to the vanilla
170 and stable kernel trees.
171
172 <p>Job is managed by Jenkins Job Builder.</p>
173
174 node: 'master'
175
176 wrappers:
177 - timestamps
178 - ansicolor
179
180 scm: []
181
48745db5
MJ
182 triggers:
183 - timed: "@hourly"
184
9e5c099a
MJ
185 builders:
186 - system-groovy:
187 command:
188 !include-raw-escape: scripts/lttng-modules/trigger-vanilla.groovy
189
190 publishers: []
191
598af463 192- job-template:
3a01c580 193 name: lttng-modules_{mversion}_{buildtype}-vanilla
598af463 194 defaults: lttng-modules
3a01c580
MJ
195 description: |
196 The LTTng modules provide Linux kernel tracing capability to the LTTng
197 2.0 tracer toolset.
598af463 198
3a01c580
MJ
199 This job will build the {mversion} branch against stable vanilla
200 kernel tags.
598af463 201
3a01c580 202 <p>Job is managed by Jenkins Job Builder.</p>
598af463 203
3a01c580
MJ
204 node: 'master'
205
206 <<: *lttng-modules_build_parameters_defaults
207 <<: *lttng-modules_build_builders_defaults
598af463 208
f3d8604b 209- job-template:
3a01c580 210 name: lttng-modules_{mversion}_fullbuild-vanilla
f3d8604b 211 defaults: lttng-modules
2c1d386a
MJ
212 description: |
213 The LTTng modules provide Linux kernel tracing capability to the LTTng
214 2.0 tracer toolset.
215
216 This job will build the {mversion} branch against all stable vanilla
217 kernel tags.
218
219 <p>Job is managed by Jenkins Job Builder.</p>
f3d8604b
MJ
220
221 node: 'master'
222
3a01c580
MJ
223 <<: *lttng-modules_build_parameters_defaults
224 <<: *lttng-modules_build_builders_defaults
f3d8604b 225
3a01c580
MJ
226 triggers:
227 - pollscm:
228 cron: "@midnight"
f3d8604b
MJ
229
230- job-template:
3a01c580 231 name: lttng-modules_{mversion}_{buildtype}-{uversion}
f3d8604b 232 defaults: lttng-modules
2c1d386a
MJ
233 description: |
234 The LTTng modules provide Linux kernel tracing capability to the LTTng
235 2.0 tracer toolset.
236
3a01c580 237 This job will build the {mversion} branch against Ubuntu {uversion}
2c1d386a
MJ
238 released kernels, including the LTS backport kernels.
239
240 <p>Job is managed by Jenkins Job Builder.</p>
f3d8604b
MJ
241
242 node: 'master'
243
3a01c580
MJ
244 <<: *lttng-modules_build_parameters_ubuntu
245 <<: *lttng-modules_build_builders_defaults
f3d8604b 246
3a01c580
MJ
247- job-template:
248 name: lttng-modules_{mversion}_fullbuild-{uversion}
249 defaults: lttng-modules
250 description: |
251 The LTTng modules provide Linux kernel tracing capability to the LTTng
252 2.0 tracer toolset.
f3d8604b 253
3a01c580
MJ
254 This job will build the {mversion} branch against Ubuntu {uversion}
255 released kernels, including the LTS backport kernels.
256
257 <p>Job is managed by Jenkins Job Builder.</p>
258
259 node: 'master'
260
261 <<: *lttng-modules_build_parameters_ubuntu
262 <<: *lttng-modules_build_builders_defaults
263
264 triggers:
265 - pollscm:
266 cron: "@midnight"
f3d8604b 267
2c1d386a
MJ
268- job-template:
269 name: lttng-modules_{mversion}_build-rt
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 all Linutronix RT
276 kernels.
277
278 <p>Job is managed by Jenkins Job Builder.</p>
279
280 node: 'master'
281
3a01c580
MJ
282 <<: *lttng-modules_build_parameters_rt
283 <<: *lttng-modules_build_rt_builders_defaults
2c1d386a 284
f3d8604b
MJ
285- job-template:
286 name: lttng-modules_VERSION_param-build
287 defaults: lttng-modules
288 description: |
289 This is a parametrized job used by 'master' jobs to build any combinations
290 of lttng-modules and linux kernel versions.
291
292 <p>Job is managed by Jenkins Job Builder.</p>
293
294 project-type: matrix
295 node: 'master' # Applies only to matrix flyweight task
296 axes:
297 - axis:
298 type: slave
299 name: arch
300 values: '{obj:arch}'
301
a2f4e8b8
MJ
302 properties:
303 - build-discarder:
304 days-to-keep: 2
305
f3d8604b
MJ
306 parameters:
307 - string:
308 name: 'mversion'
309 default: 'master'
310 description: 'The lttng-modules branch to build.'
311 - string:
a1ae361e 312 name: 'ktag'
f3d8604b
MJ
313 default: ''
314 description: 'The linux kernel git tag to build against.'
315 - string:
316 name: 'kgitrepo'
c4b8d4b3 317 default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
f3d8604b
MJ
318 description: 'The linux kernel git repository url.'
319
320 concurrent: true
f3d8604b
MJ
321
322 scm:
323 - git:
324 url: git://github.com/lttng/lttng-modules.git
325 browser: githubweb
326 browser-url: https://github.com/lttng/lttng-modules
327 branches:
328 - "${{mversion}}"
329 skip-tag: true
339db64d 330 basedir: src/lttng-modules
f3d8604b 331
2c1d386a
MJ
332 triggers:
333
f3d8604b
MJ
334 builders:
335 - shell: |
a1ae361e 336 git clone --depth=1 -b "$ktag" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux
f3d8604b
MJ
337 - shell:
338 !include-raw-escape: scripts/lttng-modules/param-build.sh
339
e9b44189
MJ
340- job-template:
341 name: lttng-modules_VERSION_param-crossbuild
342 defaults: lttng-modules
343 description: |
344 This is a parametrized job used by 'master' jobs to build any combinations
345 of lttng-modules and linux kernel versions.
346
347 <p>Job is managed by Jenkins Job Builder.</p>
348
349 project-type: matrix
350 node: 'master' # Applies only to matrix flyweight task
351 axes:
352 - axis:
353 type: user-defined
354 name: cross_arch
355 values: '{obj:cross_arch}'
356
357 properties:
358 - build-discarder:
359 days-to-keep: 2
360
361 parameters:
362 - string:
363 name: 'mversion'
364 default: 'master'
365 description: 'The lttng-modules branch to build.'
366 - string:
a1ae361e 367 name: 'ktag'
e9b44189
MJ
368 default: ''
369 description: 'The linux kernel git tag to build against.'
370 - string:
371 name: 'kgitrepo'
c4b8d4b3 372 default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
e9b44189
MJ
373 description: 'The linux kernel git repository url.'
374
375 concurrent: true
376
377 scm:
378 - git:
379 url: git://github.com/lttng/lttng-modules.git
380 browser: githubweb
381 browser-url: https://github.com/lttng/lttng-modules
382 branches:
383 - "${{mversion}}"
384 skip-tag: true
385 basedir: src/lttng-modules
386
387 triggers:
388
389 builders:
390 - shell: |
a1ae361e 391 git clone --depth=1 -b "$ktag" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux
e9b44189
MJ
392 - shell:
393 !include-raw-escape: scripts/lttng-modules/param-build.sh
394
4f3fef7d 395- job-template:
f899b1be 396 name: lttng-modules_{mversion}_coverity
4f3fef7d
MJ
397 defaults: lttng-modules
398 node: 'x86-64'
399
400 triggers:
401 - pollscm:
402 cron: "@daily"
403
404 wrappers:
405 - workspace-cleanup
406 - timestamps
407 - ansicolor:
408 colormap: xterm
409 - credentials-binding:
410 - username-password-separated:
411 credential-id: lttng-modules_coverity_token
412 username: COVERITY_SCAN_PROJECT_NAME
413 password: COVERITY_SCAN_TOKEN
414
415 builders:
5122da3c 416 - shell: |
3a01c580 417 git clone --depth=1 -b v4.10 --reference $HOME/gitcache/linux-stable.git/ git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git src/linux
7e942863 418 cd src/linux
5122da3c
JR
419 make defconfig
420 sed -i "s/# CONFIG_KALLSYMS_ALL is not set/CONFIG_KALLSYMS_ALL=y/g" .config
421 make modules_prepare
4f3fef7d 422 - shell:
ef63064f 423 !include-raw-escape: scripts/common/coverity.sh
4f3fef7d 424
f899b1be
MJ
425- job-template:
426 name: lttng-modules_{mversion}_cppcheck
427 defaults: lttng-modules
428
429 triggers:
430 - pollscm:
997b01f2 431 cron: "@daily"
f899b1be 432
f899b1be
MJ
433 builders:
434 - shell: |
435 rm -f cppcheck.xml
7e942863 436 cppcheck --enable=all --xml --xml-version=2 $WORKSPACE/src/lttng-modules 2> cppcheck.xml
f899b1be
MJ
437
438 publishers:
439 - archive:
440 artifacts: 'cppcheck.xml'
441 allow-empty: false
442 - cppcheck:
443 pattern: 'cppcheck.xml'
f899b1be 444
2c1d386a
MJ
445- job-template:
446 name: lttng-modules_{mversion}_sloccount
447 defaults: lttng-modules
448 description: |
449 The LTTng modules provide Linux kernel tracing capability to the LTTng
450 2.0 tracer toolset.
451
452 This job runs the sloccount utility and generates a trend report.
453
454 <p>Job is managed by Jenkins Job Builder.</p>
455
456 triggers:
457 - pollscm:
458 cron: "@daily"
459
460 builders:
461 - shell: |
106c873f 462 cloc --by-file --xml --out=cloc.xml src/lttng-modules/
2c1d386a
MJ
463
464 publishers:
465 - archive:
466 artifacts: 'cloc.xml'
467 allow-empty: false
468 - sloccount:
469 report-files: 'cloc.xml'
3a01c580 470 - workspace-cleanup
2c1d386a 471
f899b1be 472
598af463
MJ
473## Project
474- project:
475 name: lttng-modules
51ca880a
MJ
476 github_user: lttng
477 github_name: lttng-modules
598af463 478 jobs:
3a01c580
MJ
479
480# Vanilla normal builds
e9b44189 481 - 'lttng-modules_{mversion}_{buildtype}-vanilla':
591756e5
MJ
482 mversion:
483 - stable-2.9
bb368cde 484 - stable-2.10
591756e5
MJ
485 - master
486 buildtype: build
3a01c580 487 parambuildtype: build
591756e5
MJ
488 kverfloor: v2.6.36
489 kverceil: ''
3a01c580 490 kverfilter: stable-head
591756e5
MJ
491 - 'lttng-modules_{mversion}_{buildtype}-vanilla':
492 mversion: stable-2.7
493 buildtype: build
3a01c580 494 parambuildtype: build
591756e5
MJ
495 kverfloor: v2.6.36
496 kverceil: v4.8-rc0
3a01c580
MJ
497 kverfilter: stable-head
498 - 'lttng-modules_{mversion}_fullbuild-vanilla':
499 mversion:
3a01c580 500 - stable-2.9
bb368cde 501 - stable-2.10
3a01c580
MJ
502 - master
503 buildtype: build
504 parambuildtype: build
505 kverfloor: v2.6.36
506 kverceil: ''
591756e5 507 kverfilter: none
3a01c580
MJ
508 - 'lttng-modules_{mversion}_fullbuild-vanilla':
509 mversion: stable-2.7
e9b44189 510 buildtype: build
3a01c580 511 parambuildtype: build
e9b44189 512 kverfloor: v2.6.36
3a01c580 513 kverceil: v4.8-rc0
e9b44189 514 kverfilter: none
3a01c580
MJ
515
516# RT normal builds
2c1d386a
MJ
517 - 'lttng-modules_{mversion}_build-rt':
518 mversion: master
af3990ed
MJ
519 kverceil: ''
520 kverfilter: stable-head
3a01c580
MJ
521
522# Ubuntu normal builds
523 - 'lttng-modules_{mversion}_{buildtype}-{uversion}':
591756e5 524 mversion:
591756e5 525 - stable-2.9
bb368cde 526 - stable-2.10
591756e5 527 - master
f3d8604b
MJ
528 uversion:
529 - trusty
530 - xenial
3a01c580
MJ
531 buildtype: build
532 parambuildtype: build
533 kverfloor: ''
534 kverceil: ''
535 kverfilter: stable-head
536
537# Vanilla crossbuilds
e9b44189 538 - 'lttng-modules_{mversion}_{buildtype}-vanilla':
591756e5
MJ
539 mversion:
540 - stable-2.9
bb368cde 541 - stable-2.10
591756e5
MJ
542 - master
543 buildtype: crossbuild
3a01c580 544 parambuildtype: crossbuild
591756e5
MJ
545 kverfloor: v3.16
546 kverceil: ''
547 kverfilter: stable-head
548 - 'lttng-modules_{mversion}_{buildtype}-vanilla':
549 mversion: stable-2.7
550 buildtype: crossbuild
3a01c580 551 parambuildtype: crossbuild
591756e5
MJ
552 kverfloor: v3.16
553 kverceil: v4.8-rc0
554 kverfilter: stable-head
3a01c580
MJ
555
556# Ubuntu cross builds
557 - 'lttng-modules_{mversion}_{buildtype}-{uversion}':
558 mversion:
3a01c580 559 - stable-2.9
bb368cde 560 - stable-2.10
3a01c580
MJ
561 - master
562 uversion:
563 - trusty
564 - xenial
e9b44189 565 buildtype: crossbuild
3a01c580
MJ
566 parambuildtype: crossbuild
567 kverfloor: ''
568 kverceil: ''
e9b44189 569 kverfilter: stable-head
3a01c580
MJ
570
571# Parametrized kernel and modules build jobs
f3d8604b 572 - 'lttng-modules_VERSION_param-build':
598af463 573 arch: !!python/tuple [x86-32, x86-64]
e9b44189
MJ
574 - 'lttng-modules_VERSION_param-crossbuild':
575 cross_arch: !!python/tuple [armhf, arm64, powerpc, ppc64el]
3a01c580
MJ
576
577# Misc jobs
9e5c099a 578 - 'lttng-modules_ALL_trigger-vanilla'
591756e5
MJ
579 - 'lttng-modules_{mversion}_cppcheck':
580 mversion:
591756e5 581 - stable-2.9
bb368cde 582 - stable-2.10
591756e5 583 - master
2c1d386a
MJ
584 - 'lttng-modules_{mversion}_sloccount':
585 mversion: master
f899b1be
MJ
586 - 'lttng-modules_{mversion}_coverity':
587 mversion: master
This page took 0.056607 seconds and 4 git commands to generate.