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