jjb: lava: Run trigger jobs on weekdays, to avoid DNS downtime
[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: '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 virtual machine kernel tests over different combination 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 baremetal kernel tests over different combination 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
306 properties:
307 - build-discarder:
308 num-to-keep: 100
309
310 wrappers:
311 - workspace-cleanup
312 - timestamps
313 - ansicolor
314 - credentials-binding:
315 - file:
316 credential-id: system_tests_storage_key
317 variable: identity_file
318
319 scm:
320 - git:
321 url: https://github.com/lttng/lttng-ci
322 basedir: src/lttng-ci/
323 - git:
324 url : $KGITREPO
325 basedir: src/linux/
326 branches:
327 - $KERNEL_COMMIT_ID
328 - git:
329 url : $LTTNG_MODULES_REPO
330 basedir: src/lttng-modules/
331 branches:
332 - $LTTNG_MODULES_COMMIT_ID
333
334 builders:
335 - shell: !include-raw-escape: scripts/system-tests/generate-properties-slave.sh
336 - inject:
337 properties-file: properties.txt
338 - shell: !include-raw-escape: scripts/system-tests/check-build-needs.sh
339 - conditional-step:
340 condition-kind: not
341 condition-operand:
342 condition-kind: file-exists
343 condition-filename: kernel-built.txt
344 condition-basedir: workspace
345 steps:
346 - shell: !include-raw-escape: scripts/system-tests/build-kernel.sh
347 - conditional-step:
348 condition-kind: not
349 condition-operand:
350 condition-kind: file-exists
351 condition-filename: modules-built.txt
352 condition-basedir: workspace
353 steps:
354 - shell: !include-raw-escape: scripts/system-tests/build-modules.sh
355
356 publishers:
357 - workspace-cleanup
358
359 - job-template:
360 name: system_ALL_{test_type}_trigger
361 description: |
362 This job will trigger the build of jobs when a new tag is push specific
363 tracked Linux branches and new commits on LTTng tracked branches
364
365 project-type: freestyle
366 node: 'master'
367
368 properties:
369 - build-discarder:
370 num-to-keep: 10
371
372 triggers:
373 - pollscm:
374 cron: "* * * * 1-5"
375
376 wrappers:
377 - timestamps
378 - ansicolor
379
380 builders:
381 - system-groovy:
382 command:
383 !include-raw-escape: scripts/system-tests/system-trigger.groovy
384
385 publishers:
386 - system_tests_email_ext_default
387
388 - job-template:
389 name: baremetal_benchmarks_k{kversion}_l{lttngversion}
390 defaults: baremetal_benchmarks
391 - job-template:
392 name: vm_tests_k{kversion}_l{lttngversion}
393 defaults: vm_tests
394 - job-template:
395 name: baremetal_tests_k{kversion}_l{lttngversion}
396 defaults: baremetal_tests
397
398 - job-template:
399 name: vm_tests_fuzzing_k{kversion}_l{lttngversion}
400 defaults: vm_tests_fuzzing
401
402 # Canary jobs are made to confirm that the whole Lava pipeline is working.
403 # They are scheduled once a day always on the same (LTTng, Kernel) code. If any
404 # of those jobs fails, it means that there is an issue with the configuration
405 - job-template:
406 name: baremetal_benchmarks_canary
407 defaults: baremetal_benchmarks
408
409 - job-template:
410 name: baremetal_tests_canary
411 defaults: baremetal_tests
412
413 - job-template:
414 name: vm_tests_canary
415 defaults: vm_tests
416
417 ## Project
418 - project:
419 name: system-tests
420 kversion:
421 - master
422 - linux-4.4.y
423 - linux-4.9.y
424 lttngversion:
425 - master
426 - stable-2.9
427 - stable-2.10
428 jobs:
429 - 'vm_tests_k{kversion}_l{lttngversion}'
430 - 'baremetal_benchmarks_k{kversion}_l{lttngversion}'
431 - 'baremetal_tests_k{kversion}_l{lttngversion}'
432
433 - project:
434 name: system-tests-oldkernel
435 kversion:
436 - linux-3.18.y
437 - linux-4.4.y
438 lttngversion:
439 - stable-2.7
440 jobs:
441 - 'vm_tests_k{kversion}_l{lttngversion}':
442 - 'baremetal_tests_k{kversion}_l{lttngversion}':
443 - 'baremetal_benchmarks_k{kversion}_l{lttngversion}':
444
445 - project:
446 name: system-tests-canary
447 jobs:
448 - 'vm_tests_canary'
449 - 'baremetal_tests_canary'
450 - 'baremetal_benchmarks_canary'
451
452 - project:
453 name: system-fuzzing-tests
454 kversion: master
455 lttngversion: master
456 jobs:
457 - 'vm_tests_fuzzing_k{kversion}_l{lttngversion}'
458 - project:
459 name: system-general
460 test_type:
461 - vm_tests
462 - baremetal_tests
463 - baremetal_benchmarks
464 jobs:
465 - 'build_kernel_PARAM'
466 - 'system_ALL_{test_type}_trigger'
This page took 0.039549 seconds and 5 git commands to generate.