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