Use s3 (minio) for object storage of system_test.
[lttng-ci.git] / jobs / system-tests.yaml
... / ...
CommitLineData
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: 'x86-64'
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 - file:
93 credential-id: system_tests_storage_key
94 variable: identity_file
95 - inject:
96 properties-content: |
97 BUILD_DEVICE=baremetal
98 scm:
99 - git:
100 url: https://github.com/lttng/lttng-ci
101 basedir: src/lttng-ci/
102
103 builders:
104 - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
105 - shell: !include-raw-escape: scripts/system-tests/inject-ssh-commands.sh
106 - trigger-builds:
107 - project: "build_kernel_PARAM"
108 property-file: 'properties.txt'
109 block: true
110 - inject:
111 properties-file: properties.txt
112 - shell: !include-raw-escape: scripts/system-tests/run-baremetal-benchmarks.sh
113 - shell: !include-raw-escape: scripts/system-tests/summarize-results.sh
114
115 publishers:
116 - archive:
117 artifacts: '*.png,*.csv'
118 stable: true
119 do-not-fingerprint: true
120 - image-gallery:
121 - gallery-type: archived-images-gallery
122 title: Results
123 includes: '*.png'
124 - workspace-cleanup
125
126- defaults:
127 name: vm_tests
128 description: |
129 Runs root_regression and root_destructive_tests on a virtual machine over different combinations of kernel and lttng configurations.
130 project-type: freestyle
131 node: 'x86-64'
132 <<: *system_tests_parameters_defaults
133
134 properties:
135 - build-discarder:
136 num-to-keep: 10
137 - throttle:
138 max-total: 2
139 option: 'category'
140 categories:
141 - 'kvm-tests'
142
143 wrappers:
144 - workspace-cleanup
145 - timestamps
146 - ansicolor
147 - credentials-binding:
148 - text:
149 credential-id: jenkins_lava_key
150 variable: LAVA_JENKINS_TOKEN
151 - inject:
152 properties-content: |
153 BUILD_DEVICE=kvm
154
155 scm:
156 - git:
157 url: https://github.com/lttng/lttng-ci
158 basedir: src/lttng-ci/
159
160 builders:
161 - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
162 - trigger-builds:
163 - project: "build_kernel_PARAM"
164 property-file: 'properties.txt'
165 block: true
166 - inject:
167 properties-file: properties.txt
168 - shell: !include-raw-escape: scripts/system-tests/run-kvm-tests.sh
169
170 publishers:
171 - workspace-cleanup
172
173- defaults:
174 name: vm_tests_fuzzing
175 description: |
176 Runs virtual machine fuzzing tests over different combination of kernel and lttng configurations.
177 project-type: freestyle
178 node: 'x86-64'
179 <<: *system_tests_parameters_defaults
180
181 properties:
182 - build-discarder:
183 num-to-keep: 10
184 - throttle:
185 max-total: 2
186 option: 'category'
187 categories:
188 - 'kvm-tests'
189
190 wrappers:
191 - workspace-cleanup
192 - timestamps
193 - ansicolor
194 - credentials-binding:
195 - text:
196 credential-id: jenkins_lava_key
197 variable: LAVA_JENKINS_TOKEN
198 - inject:
199 properties-content: |
200 BUILD_DEVICE=kvm
201
202 scm:
203 - git:
204 url: https://github.com/lttng/lttng-ci
205 basedir: src/lttng-ci/
206
207 builders:
208 - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
209 - trigger-builds:
210 - project: "build_kernel_PARAM"
211 property-file: 'properties.txt'
212 block: true
213 - inject:
214 properties-file: properties.txt
215 - shell: !include-raw-escape: scripts/system-tests/run-kvm-fuzzing-tests.sh
216
217 publishers:
218 - workspace-cleanup
219
220- defaults:
221 name: baremetal_tests
222 description: |
223 Runs perf_regression tests on a baremetal machine over different combinations of kernel and lttng configurations.
224 project-type: freestyle
225 node: 'x86-64'
226
227 <<: *system_tests_parameters_defaults
228
229 properties:
230 - build-discarder:
231 num-to-keep: 10
232 - throttle:
233 max-total: 2
234 option: 'category'
235 categories:
236 - 'baremetal-tests'
237
238 wrappers:
239 - workspace-cleanup
240 - timestamps
241 - ansicolor
242 - credentials-binding:
243 - text:
244 credential-id: jenkins_lava_key
245 variable: LAVA_JENKINS_TOKEN
246 - inject:
247 properties-content: |
248 BUILD_DEVICE=baremetal
249
250 scm:
251 - git:
252 url: https://github.com/lttng/lttng-ci
253 basedir: src/lttng-ci/
254
255 builders:
256 - shell: !include-raw-escape: scripts/system-tests/generate-properties-master.sh
257 - trigger-builds:
258 - project: "build_kernel_PARAM"
259 property-file: 'properties.txt'
260 block: true
261 - inject:
262 properties-file: properties.txt
263 - shell: !include-raw-escape: scripts/system-tests/run-baremetal-tests.sh
264
265 publishers:
266 - workspace-cleanup
267
268## Templates
269- job-template:
270 name: build_kernel_PARAM
271 description: |
272 Builds a Linux Kernel and LTTng Modules if necessary
273 concurrent: true
274 node: 'x86-64'
275
276 parameters:
277 - string:
278 name: 'LTTNG_MODULES_COMMIT_ID'
279 description: 'The lttng-modules commmit to build.'
280 - string:
281 name: 'LTTNG_MODULES_REPO'
282 description: 'The LTTng Modules git repo to fetch from'
283 default: 'git://git-mirror.internal.efficios.com/lttng/lttng-modules.git'
284 - string:
285 name: 'KERNEL_COMMIT_ID'
286 description: 'The kernel commit to build.'
287 - string:
288 name: 'KGITREPO'
289 description: 'The kernel git repo to fetch from'
290 - string:
291 name: 'STORAGE_KERNEL_FOLDER'
292 description: 'Path to store the Kernel image'
293 - string:
294 name: 'STORAGE_KERNEL_IMAGE'
295 description: 'Path to store the Kernel IMAGE'
296 - string:
297 name: 'STORAGE_LINUX_MODULES'
298 description: 'Path to store the Kernel Modules'
299 - string:
300 name: 'STORAGE_LTTNG_MODULES'
301 description: 'Path to store the LTTng Modules'
302 - string:
303 name: 'BUILD_DEVICE'
304 description: 'The target device. (kvm or baremetal)'
305 - string:
306 name: 'S3_STORAGE_KERNEL_FOLDER'
307 description: 'Path to store the Kernel image'
308 - string:
309 name: 'S3_STORAGE_KERNEL_IMAGE'
310 description: 'Path to store the Kernel IMAGE'
311 - string:
312 name: 'S3_STORAGE_LINUX_MODULES'
313 description: 'Path to store the Kernel Modules'
314 - string:
315 name: 'S3_STORAGE_LTTNG_MODULES'
316 description: 'Path to store the LTTng Modules'
317
318 properties:
319 - build-discarder:
320 num-to-keep: 100
321
322 wrappers:
323 - workspace-cleanup
324 - timestamps
325 - ansicolor
326 - credentials-binding:
327 - file:
328 credential-id: system_tests_storage_key
329 variable: identity_file
330
331 scm:
332 - git:
333 url: https://github.com/lttng/lttng-ci
334 basedir: src/lttng-ci/
335 - git:
336 url : $KGITREPO
337 basedir: src/linux/
338 branches:
339 - $KERNEL_COMMIT_ID
340 - git:
341 url : $LTTNG_MODULES_REPO
342 basedir: src/lttng-modules/
343 branches:
344 - $LTTNG_MODULES_COMMIT_ID
345
346 builders:
347 - shell: !include-raw-escape: scripts/system-tests/generate-properties-slave.sh
348 - inject:
349 properties-file: properties.txt
350 - shell: !include-raw-escape: scripts/system-tests/check-build-needs.sh
351 - conditional-step:
352 condition-kind: not
353 condition-operand:
354 condition-kind: file-exists
355 condition-filename: kernel-built.txt
356 condition-basedir: workspace
357 steps:
358 - shell: !include-raw-escape: scripts/system-tests/build-kernel.sh
359 - conditional-step:
360 condition-kind: not
361 condition-operand:
362 condition-kind: file-exists
363 condition-filename: modules-built.txt
364 condition-basedir: workspace
365 steps:
366 - shell: !include-raw-escape: scripts/system-tests/build-modules.sh
367
368 publishers:
369 - workspace-cleanup
370
371- job-template:
372 name: system_ALL_{test_type}_trigger
373 description: |
374 This job will trigger the build of jobs when a new tag is push specific
375 tracked Linux branches and new commits on LTTng tracked branches
376
377 project-type: freestyle
378 node: 'master'
379
380 properties:
381 - build-discarder:
382 num-to-keep: 10
383
384 triggers:
385 - timed: "H 0 * * 1-5"
386
387 wrappers:
388 - timestamps
389 - ansicolor
390
391 builders:
392 - system-groovy:
393 command:
394 !include-raw-escape: scripts/system-tests/system-trigger.groovy
395
396 publishers:
397 - system_tests_email_ext_default
398
399- job-template:
400 name: baremetal_benchmarks_k{kversion}_l{lttngversion}
401 defaults: baremetal_benchmarks
402- job-template:
403 name: vm_tests_k{kversion}_l{lttngversion}
404 defaults: vm_tests
405- job-template:
406 name: baremetal_tests_k{kversion}_l{lttngversion}
407 defaults: baremetal_tests
408
409- job-template:
410 name: vm_tests_fuzzing_k{kversion}_l{lttngversion}
411 defaults: vm_tests_fuzzing
412
413# Canary jobs are made to confirm that the whole Lava pipeline is working.
414# They are scheduled once a day always on the same (LTTng, Kernel) code. If any
415# of those jobs fails, it means that there is an issue with the configuration
416- job-template:
417 name: baremetal_benchmarks_canary
418 defaults: baremetal_benchmarks
419
420- job-template:
421 name: baremetal_tests_canary
422 defaults: baremetal_tests
423
424- job-template:
425 name: vm_tests_canary
426 defaults: vm_tests
427
428## Project
429- project:
430 name: system-tests
431 kversion:
432 - master
433 - linux-4.4.y
434 - linux-4.9.y
435 lttngversion:
436 - master
437 - stable-2.9
438 - stable-2.10
439 jobs:
440 - 'vm_tests_k{kversion}_l{lttngversion}'
441 - 'baremetal_benchmarks_k{kversion}_l{lttngversion}'
442 - 'baremetal_tests_k{kversion}_l{lttngversion}'
443
444- project:
445 name: system-tests-oldkernel
446 kversion:
447 - linux-3.18.y
448 lttngversion:
449 - stable-2.7
450 jobs:
451 - 'vm_tests_k{kversion}_l{lttngversion}':
452 - 'baremetal_tests_k{kversion}_l{lttngversion}':
453 - 'baremetal_benchmarks_k{kversion}_l{lttngversion}':
454
455- project:
456 name: system-tests-canary
457 jobs:
458 - 'vm_tests_canary'
459 - 'baremetal_tests_canary'
460 - 'baremetal_benchmarks_canary'
461
462- project:
463 name: system-fuzzing-tests
464 kversion: master
465 lttngversion: master
466 jobs:
467 - 'vm_tests_fuzzing_k{kversion}_l{lttngversion}'
468- project:
469 name: system-general
470 test_type:
471 - vm_tests
472 - baremetal_tests
473 - baremetal_benchmarks
474 jobs:
475 - 'build_kernel_PARAM'
476 - 'system_ALL_{test_type}_trigger'
This page took 0.023325 seconds and 4 git commands to generate.