a0e808cb6e2f23fe20275d11034c967ae712d0ac
[lttng-ci.git] / jobs / system-tests.yaml
1 ---
2 ## Anchors
3 - system_tests_parameters_defaults: &system_tests_parameters_defaults
4 name: 'system_tests_parameters_defaults'
5 parameters:
6 - string:
7 name: 'LTTNG_TOOLS_COMMIT_ID'
8 default: ''
9 description: 'The lttng-tools commit id to build.'
10 - string:
11 name: 'LTTNG_MODULES_COMMIT_ID'
12 default: ''
13 description: 'The lttng-modules commit id to build.'
14 - string:
15 name: 'LTTNG_UST_COMMIT_ID'
16 default: ''
17 description: 'The lttng-ust commit id to build.'
18 - string:
19 name: 'KERNEL_TAG_ID'
20 default: ''
21 description: 'The linux kernel git tag to build against.'
22 - string:
23 name: 'KERNEL_REPO'
24 default: 'git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git'
25 description: 'Linux kernel git repo to checkout the kernel id'
26 - string:
27 name: 'LTTNG_TOOLS_REPO'
28 default: 'https://github.com/lttng/lttng-tools.git'
29 description: 'LTTng-Tools git repo to checkout the tools id'
30 - string:
31 name: 'LTTNG_MODULES_REPO'
32 default: 'https://github.com/lttng/lttng-modules.git'
33 description: 'LTTng-Modules git repo to checkout the Modules id'
34 - string:
35 name: 'LTTNG_UST_REPO'
36 default: 'https://github.com/lttng/lttng-ust.git'
37 description: 'LTTng-UST git repo to checkout the UST id'
38
39 - publisher:
40 name: 'system_tests_email_ext_default'
41 publishers:
42 - email-ext:
43 recipients: 'ci-notification@lists.lttng.org, cc:francis.deslauriers@efficios.com'
44 reply-to: ci-notification@lists.lttng.org
45 always: false
46 unstable: false
47 first-failure: true
48 first-unstable: true
49 not-built: false
50 aborted: false
51 regression: false
52 failure: false
53 second-failure: false
54 improvement: false
55 still-failing: false
56 success: false
57 fixed: false
58 fixed-unhealthy: true
59 still-unstable: false
60 pre-build: false
61 matrix-trigger: only-parent
62 send-to:
63 - recipients
64
65 ## Defaults
66 - defaults:
67 name: baremetal_benchmarks
68 description: |
69 Runs baremetal kernel benchmarks over different combination of kernel and lttng configurations.
70 project-type: freestyle
71 node: 'amd64'
72
73 <<: *system_tests_parameters_defaults
74
75 properties:
76 - build-discarder:
77 num-to-keep: 10
78 - throttle:
79 max-total: 2
80 option: 'category'
81 categories:
82 - 'baremetal-tests'
83
84 wrappers:
85 - workspace-cleanup
86 - timestamps
87 - ansicolor
88 - credentials-binding:
89 - text:
90 credential-id: jenkins_lava_key
91 variable: LAVA_JENKINS_TOKEN
92 - text:
93 credential-id: jenkins_lava2_key
94 variable: LAVA2_JENKINS_TOKEN
95 - file:
96 credential-id: system_tests_storage_key
97 variable: identity_file
98 - inject:
99 properties-content: |
100 BUILD_DEVICE=baremetal
101 scm:
102 - git:
103 url: https://github.com/lttng/lttng-ci
104 basedir: src/lttng-ci/
105
106 builders:
107 - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
108 - shell: !include-raw-escape: scripts/system-tests/inject-ssh-commands.sh
109 - trigger-builds:
110 - project: "build_kernel_PARAM"
111 property-file: 'properties.txt'
112 block: true
113 - inject:
114 properties-file: properties.txt
115 - shell: !include-raw-escape: scripts/system-tests/run-baremetal-benchmarks.sh
116 - shell: !include-raw-escape: scripts/system-tests/summarize-results.sh
117
118 publishers:
119 - archive:
120 artifacts: '*.png,*.csv'
121 stable: true
122 do-not-fingerprint: true
123 - image-gallery:
124 - gallery-type: archived-images-gallery
125 title: Results
126 includes: '*.png'
127 - workspace-cleanup
128
129 - defaults:
130 name: vm_tests
131 description: |
132 Runs root_regression and root_destructive_tests on a virtual machine over different combinations of kernel and lttng configurations.
133 project-type: freestyle
134 node: 'amd64'
135 <<: *system_tests_parameters_defaults
136
137 properties:
138 - build-discarder:
139 num-to-keep: 10
140 - throttle:
141 max-total: 4
142 option: 'category'
143 categories:
144 - 'kvm-tests'
145
146 wrappers:
147 - workspace-cleanup
148 - timestamps
149 - ansicolor
150 - credentials-binding:
151 - text:
152 credential-id: jenkins_lava_key
153 variable: LAVA_JENKINS_TOKEN
154 - text:
155 credential-id: jenkins_lava2_key
156 variable: LAVA2_JENKINS_TOKEN
157 - inject:
158 properties-content: |
159 BUILD_DEVICE=kvm
160
161 scm:
162 - git:
163 url: https://github.com/lttng/lttng-ci
164 basedir: src/lttng-ci/
165
166 builders:
167 - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
168 - trigger-builds:
169 - project: "build_kernel_PARAM"
170 property-file: 'properties.txt'
171 block: true
172 - inject:
173 properties-file: properties.txt
174 - shell: !include-raw-escape: scripts/system-tests/run-kvm-tests.sh
175
176 publishers:
177 - workspace-cleanup
178
179 - defaults:
180 name: vm_tests_fuzzing
181 description: |
182 Runs virtual machine fuzzing tests over different combination of kernel and lttng configurations.
183 project-type: freestyle
184 node: 'amd64'
185 <<: *system_tests_parameters_defaults
186
187 properties:
188 - build-discarder:
189 num-to-keep: 10
190 - throttle:
191 max-total: 4
192 option: 'category'
193 categories:
194 - 'kvm-tests'
195
196 wrappers:
197 - workspace-cleanup
198 - timestamps
199 - ansicolor
200 - credentials-binding:
201 - text:
202 credential-id: jenkins_lava_key
203 variable: LAVA_JENKINS_TOKEN
204 - text:
205 credential-id: jenkins_lava2_key
206 variable: LAVA2_JENKINS_TOKEN
207 - inject:
208 properties-content: |
209 BUILD_DEVICE=kvm
210
211 scm:
212 - git:
213 url: https://github.com/lttng/lttng-ci
214 basedir: src/lttng-ci/
215
216 builders:
217 - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
218 - trigger-builds:
219 - project: "build_kernel_PARAM"
220 property-file: 'properties.txt'
221 block: true
222 - inject:
223 properties-file: properties.txt
224 - shell: !include-raw-escape: scripts/system-tests/run-kvm-fuzzing-tests.sh
225
226 publishers:
227 - workspace-cleanup
228
229 - defaults:
230 name: baremetal_tests
231 description: |
232 Runs perf_regression tests on a baremetal machine over different combinations of kernel and lttng configurations.
233 project-type: freestyle
234 node: 'amd64'
235
236 <<: *system_tests_parameters_defaults
237
238 properties:
239 - build-discarder:
240 num-to-keep: 10
241 - throttle:
242 max-total: 2
243 option: 'category'
244 categories:
245 - 'baremetal-tests'
246
247 wrappers:
248 - workspace-cleanup
249 - timestamps
250 - ansicolor
251 - credentials-binding:
252 - text:
253 credential-id: jenkins_lava_key
254 variable: LAVA_JENKINS_TOKEN
255 - text:
256 credential-id: jenkins_lava2_key
257 variable: LAVA2_JENKINS_TOKEN
258 - inject:
259 properties-content: |
260 BUILD_DEVICE=baremetal
261
262 scm:
263 - git:
264 url: https://github.com/lttng/lttng-ci
265 basedir: src/lttng-ci/
266
267 builders:
268 - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
269 - trigger-builds:
270 - project: "build_kernel_PARAM"
271 property-file: 'properties.txt'
272 block: true
273 - inject:
274 properties-file: properties.txt
275 - shell: !include-raw-escape: scripts/system-tests/run-baremetal-tests.sh
276
277 publishers:
278 - workspace-cleanup
279
280 ## Templates
281 - job-template:
282 name: build_kernel_PARAM
283 description: |
284 Builds a Linux Kernel and LTTng Modules if necessary
285 concurrent: true
286 node: 'amd64'
287
288 parameters:
289 - string:
290 name: 'LTTNG_MODULES_COMMIT_ID'
291 description: 'The lttng-modules commmit to build.'
292 - string:
293 name: 'LTTNG_MODULES_REPO'
294 description: 'The LTTng Modules git repo to fetch from'
295 default: 'git://git-mirror.internal.efficios.com/lttng/lttng-modules.git'
296 - string:
297 name: 'KERNEL_COMMIT_ID'
298 description: 'The kernel commit to build.'
299 - string:
300 name: 'KGITREPO'
301 description: 'The kernel git repo to fetch from'
302 - string:
303 name: 'STORAGE_KERNEL_FOLDER'
304 description: 'Path to store the Kernel image'
305 - string:
306 name: 'STORAGE_KERNEL_IMAGE'
307 description: 'Path to store the Kernel IMAGE'
308 - string:
309 name: 'STORAGE_LINUX_MODULES'
310 description: 'Path to store the Kernel Modules'
311 - string:
312 name: 'STORAGE_LTTNG_MODULES'
313 description: 'Path to store the LTTng Modules'
314 - string:
315 name: 'BUILD_DEVICE'
316 description: 'The target device. (kvm or baremetal)'
317 - string:
318 name: 'S3_STORAGE_KERNEL_FOLDER'
319 description: 'Path to store the Kernel image'
320 - string:
321 name: 'S3_STORAGE_KERNEL_IMAGE'
322 description: 'Path to store the Kernel IMAGE'
323 - string:
324 name: 'S3_STORAGE_LINUX_MODULES'
325 description: 'Path to store the Kernel Modules'
326 - string:
327 name: 'S3_STORAGE_LTTNG_MODULES'
328 description: 'Path to store the LTTng Modules'
329
330 properties:
331 - build-discarder:
332 num-to-keep: 100
333
334 wrappers:
335 - workspace-cleanup
336 - timestamps
337 - ansicolor
338 - credentials-binding:
339 - file:
340 credential-id: system_tests_storage_key
341 variable: identity_file
342
343 scm:
344 - git:
345 url: https://github.com/lttng/lttng-ci
346 basedir: src/lttng-ci/
347 - git:
348 url : $LTTNG_MODULES_REPO
349 basedir: src/lttng-modules/
350 branches:
351 - $LTTNG_MODULES_COMMIT_ID
352
353 builders:
354 - shell: !include-raw-escape: scripts/system-tests/generate-properties-slave.sh
355 - inject:
356 properties-file: properties.txt
357 - shell: !include-raw-escape: scripts/system-tests/check-build-needs.sh
358 - conditional-step:
359 condition-kind: not
360 condition-operand:
361 condition-kind: file-exists
362 condition-filename: kernel-built.txt
363 condition-basedir: workspace
364 steps:
365 - shell: !include-raw-escape: scripts/system-tests/build-kernel.sh
366 - conditional-step:
367 condition-kind: not
368 condition-operand:
369 condition-kind: file-exists
370 condition-filename: modules-built.txt
371 condition-basedir: workspace
372 steps:
373 - shell: !include-raw-escape: scripts/system-tests/build-modules.sh
374
375 publishers:
376 - workspace-cleanup
377
378 - job-template:
379 name: system_ALL_{test_type}_trigger
380 description: |
381 This job will trigger the build of jobs when a new tag is push specific
382 tracked Linux branches and new commits on LTTng tracked branches
383
384 project-type: freestyle
385 node: 'master'
386 parameters:
387 - bool:
388 name: 'FORCE_JOB_RUN'
389 default: false
390 description: 'Force the child jobs to run'
391 - bool:
392 name: 'FORCE_FAILED_JOB_RUN'
393 default: false
394 description: 'Force the failed child jobs to run'
395
396 properties:
397 - build-discarder:
398 num-to-keep: 10
399
400 triggers:
401 - timed: "H 0 * * 1-5"
402
403 wrappers:
404 - timestamps
405 - ansicolor
406
407 builders:
408 - system-groovy:
409 command:
410 !include-raw-escape: scripts/system-tests/system-trigger.groovy
411
412 publishers:
413 - system_tests_email_ext_default
414
415 - job-template:
416 name: baremetal_benchmarks_k{kversion}_l{lttngversion}
417 defaults: baremetal_benchmarks
418 - job-template:
419 name: vm_tests_k{kversion}_l{lttngversion}
420 defaults: vm_tests
421 - job-template:
422 name: baremetal_tests_k{kversion}_l{lttngversion}
423 defaults: baremetal_tests
424
425 - job-template:
426 name: vm_tests_fuzzing_k{kversion}_l{lttngversion}
427 defaults: vm_tests_fuzzing
428
429 # Canary jobs are made to confirm that the whole Lava pipeline is working.
430 # They are scheduled once a day always on the same (LTTng, Kernel) code. If any
431 # of those jobs fails, it means that there is an issue with the configuration
432 - job-template:
433 name: baremetal_benchmarks_canary
434 defaults: baremetal_benchmarks
435
436 - job-template:
437 name: baremetal_tests_canary
438 defaults: baremetal_tests
439
440 - job-template:
441 name: vm_tests_canary
442 defaults: vm_tests
443
444 ## Project
445 - project:
446 name: system-tests
447 kversion:
448 - master
449 - linux-4.4.y
450 - linux-4.9.y
451 - linux-4.14.y
452 - linux-4.19.y
453 - linux-5.0.y
454 - linux-5.1.y
455 lttngversion:
456 - master
457 - stable-2.9
458 - stable-2.10
459 - stable-2.11
460 - stable-2.12
461 jobs:
462 - 'vm_tests_k{kversion}_l{lttngversion}'
463 - 'baremetal_benchmarks_k{kversion}_l{lttngversion}'
464 - 'baremetal_tests_k{kversion}_l{lttngversion}'
465 - project:
466 name: system-tests-vm-only
467 kversion:
468 - linux-3.18.y
469 lttngversion:
470 - master
471 - stable-2.9
472 - stable-2.10
473 - stable-2.11
474 - stable-2.12
475 jobs:
476 - 'vm_tests_k{kversion}_l{lttngversion}'
477
478 - project:
479 name: system-tests-canary
480 jobs:
481 - 'vm_tests_canary'
482 - 'baremetal_tests_canary'
483 - 'baremetal_benchmarks_canary'
484
485 - project:
486 name: system-fuzzing-tests
487 kversion: master
488 lttngversion: master
489 jobs:
490 - 'vm_tests_fuzzing_k{kversion}_l{lttngversion}'
491 - project:
492 name: system-general
493 test_type:
494 - vm_tests
495 - baremetal_tests
496 - baremetal_benchmarks
497 jobs:
498 - 'build_kernel_PARAM'
499 - 'system_ALL_{test_type}_trigger'
This page took 0.038352 seconds and 3 git commands to generate.