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