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