]>
Commit | Line | Data |
---|---|---|
f2f5c3e6 PMD |
1 | include: |
2 | - local: '/.gitlab-ci.d/buildtest-template.yml' | |
3 | ||
4 | build-system-alpine: | |
88b19e4e AB |
5 | extends: |
6 | - .native_build_job_template | |
7 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
8 | needs: |
9 | - job: amd64-alpine-container | |
10 | variables: | |
11 | IMAGE: alpine | |
d4f784c5 | 12 | TARGETS: avr-softmmu loongarch64-softmmu mips64-softmmu mipsel-softmmu |
f2f5c3e6 PMD |
13 | MAKE_CHECK_ARGS: check-build |
14 | CONFIGURE_ARGS: --enable-docs --enable-trace-backends=log,simple,syslog | |
f2f5c3e6 PMD |
15 | |
16 | check-system-alpine: | |
17 | extends: .native_test_job_template | |
18 | needs: | |
19 | - job: build-system-alpine | |
20 | artifacts: true | |
21 | variables: | |
22 | IMAGE: alpine | |
f178c62a | 23 | MAKE_CHECK_ARGS: check-unit check-qtest |
f2f5c3e6 | 24 | |
bbbd9b6e WR |
25 | avocado-system-alpine: |
26 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
27 | needs: |
28 | - job: build-system-alpine | |
29 | artifacts: true | |
30 | variables: | |
31 | IMAGE: alpine | |
bbbd9b6e | 32 | MAKE_CHECK_ARGS: check-avocado |
78ebc00b | 33 | AVOCADO_TAGS: arch:avr arch:loongarch64 arch:mips64 arch:mipsel |
f2f5c3e6 PMD |
34 | |
35 | build-system-ubuntu: | |
88b19e4e AB |
36 | extends: |
37 | - .native_build_job_template | |
38 | - .native_build_artifact_template | |
f2f5c3e6 | 39 | needs: |
171080d8 | 40 | job: amd64-ubuntu2204-container |
f2f5c3e6 | 41 | variables: |
171080d8 | 42 | IMAGE: ubuntu2204 |
eda2321d | 43 | CONFIGURE_ARGS: --enable-docs |
aeb5f8f2 | 44 | TARGETS: alpha-softmmu microblaze-softmmu mips64el-softmmu |
f2f5c3e6 | 45 | MAKE_CHECK_ARGS: check-build |
f2f5c3e6 PMD |
46 | |
47 | check-system-ubuntu: | |
48 | extends: .native_test_job_template | |
49 | needs: | |
50 | - job: build-system-ubuntu | |
51 | artifacts: true | |
52 | variables: | |
171080d8 | 53 | IMAGE: ubuntu2204 |
f2f5c3e6 PMD |
54 | MAKE_CHECK_ARGS: check |
55 | ||
bbbd9b6e WR |
56 | avocado-system-ubuntu: |
57 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
58 | needs: |
59 | - job: build-system-ubuntu | |
60 | artifacts: true | |
61 | variables: | |
171080d8 | 62 | IMAGE: ubuntu2204 |
bbbd9b6e | 63 | MAKE_CHECK_ARGS: check-avocado |
78ebc00b | 64 | AVOCADO_TAGS: arch:alpha arch:microblaze arch:mips64el |
f2f5c3e6 PMD |
65 | |
66 | build-system-debian: | |
88b19e4e AB |
67 | extends: |
68 | - .native_build_job_template | |
69 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
70 | needs: |
71 | job: amd64-debian-container | |
72 | variables: | |
8e721c32 | 73 | IMAGE: debian |
2f5a375f | 74 | CONFIGURE_ARGS: --with-coroutine=sigaltstack |
d4f784c5 | 75 | TARGETS: arm-softmmu i386-softmmu riscv64-softmmu sh4eb-softmmu |
78ebc00b | 76 | sparc-softmmu xtensa-softmmu |
f2f5c3e6 | 77 | MAKE_CHECK_ARGS: check-build |
f2f5c3e6 PMD |
78 | |
79 | check-system-debian: | |
80 | extends: .native_test_job_template | |
81 | needs: | |
82 | - job: build-system-debian | |
83 | artifacts: true | |
84 | variables: | |
8e721c32 | 85 | IMAGE: debian |
f2f5c3e6 PMD |
86 | MAKE_CHECK_ARGS: check |
87 | ||
bbbd9b6e WR |
88 | avocado-system-debian: |
89 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
90 | needs: |
91 | - job: build-system-debian | |
92 | artifacts: true | |
93 | variables: | |
8e721c32 | 94 | IMAGE: debian |
bbbd9b6e | 95 | MAKE_CHECK_ARGS: check-avocado |
78ebc00b | 96 | AVOCADO_TAGS: arch:arm arch:i386 arch:riscv64 arch:sh4 arch:sparc arch:xtensa |
f2f5c3e6 | 97 | |
f462be4c TH |
98 | crash-test-debian: |
99 | extends: .native_test_job_template | |
100 | needs: | |
101 | - job: build-system-debian | |
102 | artifacts: true | |
103 | variables: | |
8e721c32 | 104 | IMAGE: debian |
f462be4c TH |
105 | script: |
106 | - cd build | |
4d3bd91b | 107 | - make NINJA=":" check-venv |
c03f57fd | 108 | - pyvenv/bin/python3 scripts/device-crash-test -q --tcg-only ./qemu-system-i386 |
f462be4c | 109 | |
f2f5c3e6 | 110 | build-system-fedora: |
88b19e4e AB |
111 | extends: |
112 | - .native_build_job_template | |
113 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
114 | needs: |
115 | job: amd64-fedora-container | |
116 | variables: | |
117 | IMAGE: fedora | |
118 | CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs | |
78ebc00b | 119 | TARGETS: microblaze-softmmu mips-softmmu |
f2f5c3e6 PMD |
120 | xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu |
121 | MAKE_CHECK_ARGS: check-build | |
f2f5c3e6 PMD |
122 | |
123 | check-system-fedora: | |
124 | extends: .native_test_job_template | |
125 | needs: | |
126 | - job: build-system-fedora | |
127 | artifacts: true | |
128 | variables: | |
129 | IMAGE: fedora | |
130 | MAKE_CHECK_ARGS: check | |
131 | ||
bbbd9b6e WR |
132 | avocado-system-fedora: |
133 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
134 | needs: |
135 | - job: build-system-fedora | |
136 | artifacts: true | |
137 | variables: | |
138 | IMAGE: fedora | |
bbbd9b6e | 139 | MAKE_CHECK_ARGS: check-avocado |
78ebc00b AB |
140 | AVOCADO_TAGS: arch:microblaze arch:mips arch:xtensa arch:m68k |
141 | arch:riscv32 arch:ppc arch:sparc64 | |
f2f5c3e6 | 142 | |
f462be4c TH |
143 | crash-test-fedora: |
144 | extends: .native_test_job_template | |
145 | needs: | |
146 | - job: build-system-fedora | |
147 | artifacts: true | |
148 | variables: | |
149 | IMAGE: fedora | |
150 | script: | |
151 | - cd build | |
4d3bd91b | 152 | - make NINJA=":" check-venv |
c03f57fd PB |
153 | - pyvenv/bin/python3 scripts/device-crash-test -q ./qemu-system-ppc |
154 | - pyvenv/bin/python3 scripts/device-crash-test -q ./qemu-system-riscv32 | |
f462be4c | 155 | |
f2f5c3e6 | 156 | build-system-centos: |
88b19e4e AB |
157 | extends: |
158 | - .native_build_job_template | |
159 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
160 | needs: |
161 | job: amd64-centos8-container | |
162 | variables: | |
163 | IMAGE: centos8 | |
eda2321d | 164 | CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-vfio-user-server |
4cc75ce6 | 165 | --enable-modules --enable-trace-backends=dtrace --enable-docs |
f2f5c3e6 PMD |
166 | TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu |
167 | x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu | |
168 | MAKE_CHECK_ARGS: check-build | |
f2f5c3e6 PMD |
169 | |
170 | check-system-centos: | |
171 | extends: .native_test_job_template | |
172 | needs: | |
173 | - job: build-system-centos | |
174 | artifacts: true | |
175 | variables: | |
176 | IMAGE: centos8 | |
177 | MAKE_CHECK_ARGS: check | |
178 | ||
bbbd9b6e WR |
179 | avocado-system-centos: |
180 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
181 | needs: |
182 | - job: build-system-centos | |
183 | artifacts: true | |
184 | variables: | |
185 | IMAGE: centos8 | |
bbbd9b6e | 186 | MAKE_CHECK_ARGS: check-avocado |
78ebc00b AB |
187 | AVOCADO_TAGS: arch:ppc64 arch:or1k arch:390x arch:x86_64 arch:rx |
188 | arch:sh4 arch:nios2 | |
f2f5c3e6 PMD |
189 | |
190 | build-system-opensuse: | |
88b19e4e AB |
191 | extends: |
192 | - .native_build_job_template | |
193 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
194 | needs: |
195 | job: amd64-opensuse-leap-container | |
196 | variables: | |
197 | IMAGE: opensuse-leap | |
f2f5c3e6 PMD |
198 | TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu |
199 | MAKE_CHECK_ARGS: check-build | |
f2f5c3e6 PMD |
200 | |
201 | check-system-opensuse: | |
202 | extends: .native_test_job_template | |
203 | needs: | |
204 | - job: build-system-opensuse | |
205 | artifacts: true | |
206 | variables: | |
207 | IMAGE: opensuse-leap | |
208 | MAKE_CHECK_ARGS: check | |
209 | ||
bbbd9b6e WR |
210 | avocado-system-opensuse: |
211 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
212 | needs: |
213 | - job: build-system-opensuse | |
214 | artifacts: true | |
215 | variables: | |
216 | IMAGE: opensuse-leap | |
bbbd9b6e | 217 | MAKE_CHECK_ARGS: check-avocado |
78ebc00b | 218 | AVOCADO_TAGS: arch:s390x arch:x86_64 arch:aarch64 |
f2f5c3e6 | 219 | |
5d25fcb7 AB |
220 | # |
221 | # Flaky tests. We don't run these by default and they are allow fail | |
222 | # but often the CI system is the only way to trigger the failures. | |
223 | # | |
224 | ||
225 | build-system-flaky: | |
226 | extends: | |
227 | - .native_build_job_template | |
228 | - .native_build_artifact_template | |
229 | needs: | |
230 | job: amd64-debian-container | |
231 | variables: | |
232 | IMAGE: debian | |
233 | QEMU_JOB_OPTIONAL: 1 | |
234 | TARGETS: aarch64-softmmu arm-softmmu mips64el-softmmu | |
235 | ppc64-softmmu rx-softmmu s390x-softmmu sh4-softmmu x86_64-softmmu | |
236 | MAKE_CHECK_ARGS: check-build | |
237 | ||
238 | avocado-system-flaky: | |
239 | extends: .avocado_test_job_template | |
240 | needs: | |
241 | - job: build-system-flaky | |
242 | artifacts: true | |
243 | allow_failure: true | |
244 | variables: | |
245 | IMAGE: debian | |
246 | MAKE_CHECK_ARGS: check-avocado | |
247 | QEMU_JOB_OPTIONAL: 1 | |
248 | QEMU_TEST_FLAKY_TESTS: 1 | |
249 | AVOCADO_TAGS: flaky | |
f2f5c3e6 | 250 | |
f2f5c3e6 PMD |
251 | # This jobs explicitly disable TCG (--disable-tcg), KVM is detected by |
252 | # the configure script. The container doesn't contain Xen headers so | |
253 | # Xen accelerator is not detected / selected. As result it build the | |
254 | # i386-softmmu and x86_64-softmmu with KVM being the single accelerator | |
255 | # available. | |
256 | # Also use a different coroutine implementation (which is only really of | |
257 | # interest to KVM users, i.e. with TCG disabled) | |
258 | build-tcg-disabled: | |
259 | extends: .native_build_job_template | |
260 | needs: | |
261 | job: amd64-centos8-container | |
262 | variables: | |
263 | IMAGE: centos8 | |
264 | script: | |
265 | - mkdir build | |
266 | - cd build | |
267 | - ../configure --disable-tcg --audio-drv-list="" --with-coroutine=ucontext | |
3b4f9119 | 268 | --disable-docs --disable-sdl --disable-gtk --disable-vnc |
f2f5c3e6 PMD |
269 | || { cat config.log meson-logs/meson-log.txt && exit 1; } |
270 | - make -j"$JOBS" | |
271 | - make check-unit | |
272 | - make check-qapi-schema | |
273 | - cd tests/qemu-iotests/ | |
274 | - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048 | |
275 | 052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163 | |
c88f0789 | 276 | 170 171 183 184 192 194 208 221 226 227 236 253 277 image-fleecing |
f2f5c3e6 | 277 | - ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122 |
db1e1192 | 278 | 124 132 139 142 144 145 151 152 155 157 165 194 196 200 202 |
c88f0789 VSO |
279 | 208 209 216 218 227 234 246 247 248 250 254 255 257 258 |
280 | 260 261 262 263 264 270 272 273 277 279 image-fleecing | |
f2f5c3e6 PMD |
281 | |
282 | build-user: | |
283 | extends: .native_build_job_template | |
284 | needs: | |
285 | job: amd64-debian-user-cross-container | |
286 | variables: | |
287 | IMAGE: debian-all-test-cross | |
288 | CONFIGURE_ARGS: --disable-tools --disable-system | |
4e76d98a | 289 | --target-list-exclude=alpha-linux-user,sh4-linux-user |
f2f5c3e6 PMD |
290 | MAKE_CHECK_ARGS: check-tcg |
291 | ||
292 | build-user-static: | |
293 | extends: .native_build_job_template | |
294 | needs: | |
295 | job: amd64-debian-user-cross-container | |
296 | variables: | |
297 | IMAGE: debian-all-test-cross | |
298 | CONFIGURE_ARGS: --disable-tools --disable-system --static | |
4e76d98a | 299 | --target-list-exclude=alpha-linux-user,sh4-linux-user |
aa39c4c0 AB |
300 | MAKE_CHECK_ARGS: check-tcg |
301 | ||
302 | # targets stuck on older compilers | |
303 | build-legacy: | |
304 | extends: .native_build_job_template | |
305 | needs: | |
306 | job: amd64-debian-legacy-cross-container | |
307 | variables: | |
308 | IMAGE: debian-legacy-test-cross | |
4e76d98a | 309 | TARGETS: alpha-linux-user alpha-softmmu sh4-linux-user |
aa39c4c0 | 310 | CONFIGURE_ARGS: --disable-tools |
f2f5c3e6 PMD |
311 | MAKE_CHECK_ARGS: check-tcg |
312 | ||
f2f5c3e6 PMD |
313 | build-user-hexagon: |
314 | extends: .native_build_job_template | |
315 | needs: | |
316 | job: hexagon-cross-container | |
f2f5c3e6 PMD |
317 | variables: |
318 | IMAGE: debian-hexagon-cross | |
319 | TARGETS: hexagon-linux-user | |
320 | CONFIGURE_ARGS: --disable-tools --disable-docs --enable-debug-tcg | |
321 | MAKE_CHECK_ARGS: check-tcg | |
322 | ||
6f6c3999 AB |
323 | # Build the softmmu targets we have check-tcg tests and compilers in |
324 | # our omnibus all-test-cross container. Those targets that haven't got | |
325 | # Debian cross compiler support need to use special containers. | |
f2f5c3e6 PMD |
326 | build-some-softmmu: |
327 | extends: .native_build_job_template | |
328 | needs: | |
329 | job: amd64-debian-user-cross-container | |
330 | variables: | |
331 | IMAGE: debian-all-test-cross | |
332 | CONFIGURE_ARGS: --disable-tools --enable-debug | |
6f6c3999 AB |
333 | TARGETS: arm-softmmu aarch64-softmmu i386-softmmu riscv64-softmmu |
334 | s390x-softmmu x86_64-softmmu | |
335 | MAKE_CHECK_ARGS: check-tcg | |
cb8715bf AB |
336 | |
337 | build-loongarch64: | |
338 | extends: .native_build_job_template | |
339 | needs: | |
340 | job: loongarch-debian-cross-container | |
341 | variables: | |
342 | IMAGE: debian-loongarch-cross | |
343 | CONFIGURE_ARGS: --disable-tools --enable-debug | |
344 | TARGETS: loongarch64-linux-user loongarch64-softmmu | |
f2f5c3e6 PMD |
345 | MAKE_CHECK_ARGS: check-tcg |
346 | ||
39ce9237 AB |
347 | # We build tricore in a very minimal tricore only container |
348 | build-tricore-softmmu: | |
349 | extends: .native_build_job_template | |
350 | needs: | |
351 | job: tricore-debian-cross-container | |
352 | variables: | |
353 | IMAGE: debian-tricore-cross | |
354 | CONFIGURE_ARGS: --disable-tools --disable-fdt --enable-debug | |
355 | TARGETS: tricore-softmmu | |
356 | MAKE_CHECK_ARGS: check-tcg | |
357 | ||
f2f5c3e6 PMD |
358 | clang-system: |
359 | extends: .native_build_job_template | |
360 | needs: | |
361 | job: amd64-fedora-container | |
362 | variables: | |
363 | IMAGE: fedora | |
364 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ | |
365 | --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined | |
7c4f7150 | 366 | TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu s390x-softmmu |
f2f5c3e6 PMD |
367 | MAKE_CHECK_ARGS: check-qtest check-tcg |
368 | ||
369 | clang-user: | |
370 | extends: .native_build_job_template | |
371 | needs: | |
372 | job: amd64-debian-user-cross-container | |
765de32d | 373 | timeout: 70m |
f2f5c3e6 PMD |
374 | variables: |
375 | IMAGE: debian-all-test-cross | |
376 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system | |
aa39c4c0 | 377 | --target-list-exclude=alpha-linux-user,microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user |
f2f5c3e6 PMD |
378 | --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined |
379 | MAKE_CHECK_ARGS: check-unit check-tcg | |
380 | ||
381 | # Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory. | |
382 | # On gitlab runners, default value sometimes end up calling 2 lds concurrently and | |
383 | # triggers an Out-Of-Memory error | |
384 | # | |
5890258a TH |
385 | # Since slirp callbacks are used in QEMU Timers, we cannot use libslirp with |
386 | # CFI builds, and thus have to disable it here. | |
f2f5c3e6 | 387 | # |
bbbd9b6e | 388 | # Split in three sets of build/check/avocado to limit the execution time of each |
f2f5c3e6 PMD |
389 | # job |
390 | build-cfi-aarch64: | |
88b19e4e AB |
391 | extends: |
392 | - .native_build_job_template | |
393 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
394 | needs: |
395 | - job: amd64-fedora-container | |
396 | variables: | |
397 | LD_JOBS: 1 | |
398 | AR: llvm-ar | |
399 | IMAGE: fedora | |
400 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug | |
5890258a | 401 | --enable-safe-stack --disable-slirp |
f2f5c3e6 PMD |
402 | TARGETS: aarch64-softmmu |
403 | MAKE_CHECK_ARGS: check-build | |
e37264eb TH |
404 | # FIXME: This job is often failing, likely due to out-of-memory problems in |
405 | # the constrained containers of the shared runners. Thus this is marked as | |
e312d1fd DB |
406 | # skipped until the situation has been solved. |
407 | QEMU_JOB_SKIPPED: 1 | |
72ec89bf | 408 | timeout: 90m |
f2f5c3e6 PMD |
409 | |
410 | check-cfi-aarch64: | |
411 | extends: .native_test_job_template | |
412 | needs: | |
413 | - job: build-cfi-aarch64 | |
414 | artifacts: true | |
415 | variables: | |
416 | IMAGE: fedora | |
417 | MAKE_CHECK_ARGS: check | |
418 | ||
bbbd9b6e WR |
419 | avocado-cfi-aarch64: |
420 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
421 | needs: |
422 | - job: build-cfi-aarch64 | |
423 | artifacts: true | |
424 | variables: | |
425 | IMAGE: fedora | |
bbbd9b6e | 426 | MAKE_CHECK_ARGS: check-avocado |
f2f5c3e6 PMD |
427 | |
428 | build-cfi-ppc64-s390x: | |
88b19e4e AB |
429 | extends: |
430 | - .native_build_job_template | |
431 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
432 | needs: |
433 | - job: amd64-fedora-container | |
434 | variables: | |
435 | LD_JOBS: 1 | |
436 | AR: llvm-ar | |
437 | IMAGE: fedora | |
438 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug | |
5890258a | 439 | --enable-safe-stack --disable-slirp |
f2f5c3e6 PMD |
440 | TARGETS: ppc64-softmmu s390x-softmmu |
441 | MAKE_CHECK_ARGS: check-build | |
e37264eb TH |
442 | # FIXME: This job is often failing, likely due to out-of-memory problems in |
443 | # the constrained containers of the shared runners. Thus this is marked as | |
e312d1fd DB |
444 | # skipped until the situation has been solved. |
445 | QEMU_JOB_SKIPPED: 1 | |
72ec89bf | 446 | timeout: 80m |
f2f5c3e6 PMD |
447 | |
448 | check-cfi-ppc64-s390x: | |
449 | extends: .native_test_job_template | |
450 | needs: | |
451 | - job: build-cfi-ppc64-s390x | |
452 | artifacts: true | |
453 | variables: | |
454 | IMAGE: fedora | |
455 | MAKE_CHECK_ARGS: check | |
456 | ||
bbbd9b6e WR |
457 | avocado-cfi-ppc64-s390x: |
458 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
459 | needs: |
460 | - job: build-cfi-ppc64-s390x | |
461 | artifacts: true | |
462 | variables: | |
463 | IMAGE: fedora | |
bbbd9b6e | 464 | MAKE_CHECK_ARGS: check-avocado |
f2f5c3e6 PMD |
465 | |
466 | build-cfi-x86_64: | |
88b19e4e AB |
467 | extends: |
468 | - .native_build_job_template | |
469 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
470 | needs: |
471 | - job: amd64-fedora-container | |
472 | variables: | |
473 | LD_JOBS: 1 | |
474 | AR: llvm-ar | |
475 | IMAGE: fedora | |
476 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug | |
5890258a | 477 | --enable-safe-stack --disable-slirp |
f2f5c3e6 PMD |
478 | TARGETS: x86_64-softmmu |
479 | MAKE_CHECK_ARGS: check-build | |
480 | timeout: 70m | |
f2f5c3e6 PMD |
481 | |
482 | check-cfi-x86_64: | |
483 | extends: .native_test_job_template | |
484 | needs: | |
485 | - job: build-cfi-x86_64 | |
486 | artifacts: true | |
487 | variables: | |
488 | IMAGE: fedora | |
489 | MAKE_CHECK_ARGS: check | |
490 | ||
bbbd9b6e WR |
491 | avocado-cfi-x86_64: |
492 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
493 | needs: |
494 | - job: build-cfi-x86_64 | |
495 | artifacts: true | |
496 | variables: | |
497 | IMAGE: fedora | |
bbbd9b6e | 498 | MAKE_CHECK_ARGS: check-avocado |
f2f5c3e6 PMD |
499 | |
500 | tsan-build: | |
501 | extends: .native_build_job_template | |
502 | needs: | |
171080d8 | 503 | job: amd64-ubuntu2204-container |
f2f5c3e6 | 504 | variables: |
171080d8 AB |
505 | IMAGE: ubuntu2204 |
506 | CONFIGURE_ARGS: --enable-tsan --cc=clang --cxx=clang++ | |
eda2321d | 507 | --enable-trace-backends=ust --disable-slirp |
f2f5c3e6 | 508 | TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user |
f2f5c3e6 | 509 | |
bb9ecae7 AB |
510 | # gcov is a GCC features |
511 | gcov: | |
f2f5c3e6 PMD |
512 | extends: .native_build_job_template |
513 | needs: | |
171080d8 | 514 | job: amd64-ubuntu2204-container |
bb9ecae7 | 515 | timeout: 80m |
f2f5c3e6 | 516 | variables: |
171080d8 | 517 | IMAGE: ubuntu2204 |
bb9ecae7 | 518 | CONFIGURE_ARGS: --enable-gcov |
f2f5c3e6 | 519 | TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu |
dc389ce1 | 520 | MAKE_CHECK_ARGS: check-unit check-softfloat |
f2f5c3e6 | 521 | after_script: |
5544d33d AB |
522 | - cd build |
523 | - gcovr --xml-pretty --exclude-unreachable-branches --print-summary | |
524 | -o coverage.xml --root ${CI_PROJECT_DIR} . *.p | |
525 | coverage: /^\s*lines:\s*\d+.\d+\%/ | |
526 | artifacts: | |
527 | name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA} | |
dcb242c8 | 528 | when: always |
5544d33d | 529 | expire_in: 2 days |
dcb242c8 DB |
530 | paths: |
531 | - build/meson-logs/testlog.txt | |
5544d33d | 532 | reports: |
dcb242c8 | 533 | junit: build/meson-logs/testlog.junit.xml |
5544d33d AB |
534 | coverage_report: |
535 | coverage_format: cobertura | |
536 | path: build/coverage.xml | |
f2f5c3e6 PMD |
537 | |
538 | build-oss-fuzz: | |
539 | extends: .native_build_job_template | |
540 | needs: | |
541 | job: amd64-fedora-container | |
542 | variables: | |
543 | IMAGE: fedora | |
544 | script: | |
545 | - mkdir build-oss-fuzz | |
3ab8bf83 | 546 | - export LSAN_OPTIONS=suppressions=scripts/oss-fuzz/lsan_suppressions.txt |
f2f5c3e6 PMD |
547 | - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address" |
548 | ./scripts/oss-fuzz/build.sh | |
549 | - export ASAN_OPTIONS="fast_unwind_on_malloc=0" | |
550 | - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f | |
551 | | grep -v slirp); do | |
552 | grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ; | |
553 | echo Testing ${fuzzer} ... ; | |
554 | "${fuzzer}" -runs=1 -seed=1 || exit 1 ; | |
555 | done | |
f2f5c3e6 PMD |
556 | |
557 | build-tci: | |
558 | extends: .native_build_job_template | |
559 | needs: | |
560 | job: amd64-debian-user-cross-container | |
561 | variables: | |
562 | IMAGE: debian-all-test-cross | |
563 | script: | |
aa39c4c0 | 564 | - TARGETS="aarch64 arm hppa m68k microblaze ppc64 s390x x86_64" |
f2f5c3e6 PMD |
565 | - mkdir build |
566 | - cd build | |
3b4f9119 TH |
567 | - ../configure --enable-tcg-interpreter --disable-docs --disable-gtk --disable-vnc |
568 | --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" | |
569 | || { cat config.log meson-logs/meson-log.txt && exit 1; } | |
f2f5c3e6 PMD |
570 | - make -j"$JOBS" |
571 | - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test | |
572 | - for tg in $TARGETS ; do | |
573 | export QTEST_QEMU_BINARY="./qemu-system-${tg}" ; | |
574 | ./tests/qtest/boot-serial-test || exit 1 ; | |
575 | ./tests/qtest/cdrom-test || exit 1 ; | |
576 | done | |
577 | - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test | |
578 | - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow | |
579 | - make check-tcg | |
580 | ||
f2f5c3e6 | 581 | # Check our reduced build configurations |
e030d08c | 582 | build-without-defaults: |
f2f5c3e6 PMD |
583 | extends: .native_build_job_template |
584 | needs: | |
585 | job: amd64-centos8-container | |
586 | variables: | |
587 | IMAGE: centos8 | |
8d316275 | 588 | CONFIGURE_ARGS: |
e030d08c | 589 | --without-default-devices |
8d316275 | 590 | --without-default-features |
e030d08c | 591 | --disable-fdt |
8d316275 TH |
592 | --disable-pie |
593 | --disable-qom-cast-debug | |
8d316275 | 594 | --disable-strip |
e030d08c | 595 | TARGETS: avr-softmmu mips64-softmmu s390x-softmmu sh4-softmmu |
8d316275 | 596 | sparc64-softmmu hexagon-linux-user i386-linux-user s390x-linux-user |
bb6e4734 | 597 | MAKE_CHECK_ARGS: check |
f2f5c3e6 PMD |
598 | |
599 | build-libvhost-user: | |
e312d1fd | 600 | extends: .base_job_template |
f2f5c3e6 | 601 | stage: build |
d4c7a565 | 602 | image: $CI_REGISTRY_IMAGE/qemu/fedora:$QEMU_CI_CONTAINER_TAG |
f2f5c3e6 PMD |
603 | needs: |
604 | job: amd64-fedora-container | |
f2f5c3e6 PMD |
605 | script: |
606 | - mkdir subprojects/libvhost-user/build | |
607 | - cd subprojects/libvhost-user/build | |
608 | - meson | |
609 | - ninja | |
610 | ||
611 | # No targets are built here, just tools, docs, and unit tests. This | |
612 | # also feeds into the eventual documentation deployment steps later | |
613 | build-tools-and-docs-debian: | |
88b19e4e AB |
614 | extends: |
615 | - .native_build_job_template | |
616 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
617 | needs: |
618 | job: amd64-debian-container | |
e312d1fd DB |
619 | # when running on 'master' we use pre-existing container |
620 | optional: true | |
f2f5c3e6 | 621 | variables: |
8e721c32 | 622 | IMAGE: debian |
7630156d | 623 | MAKE_CHECK_ARGS: check-unit ctags TAGS cscope |
f2f5c3e6 | 624 | CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools |
e312d1fd | 625 | QEMU_JOB_PUBLISH: 1 |
f2f5c3e6 PMD |
626 | |
627 | # Prepare for GitLab pages deployment. Anything copied into the | |
628 | # "public" directory will be deployed to $USER.gitlab.io/$PROJECT | |
eafadbbb DB |
629 | # |
630 | # GitLab publishes from any branch that triggers a CI pipeline | |
631 | # | |
632 | # For the main repo we don't want to publish from 'staging' | |
633 | # since that content may not be pushed, nor do we wish to | |
634 | # publish from 'stable-NNN' branches as that content is outdated. | |
635 | # Thus we restrict to just the default branch | |
636 | # | |
637 | # For contributor forks we want to publish from any repo so | |
638 | # that users can see the results of their commits, regardless | |
639 | # of what topic branch they're currently using | |
f2f5c3e6 | 640 | pages: |
e312d1fd | 641 | extends: .base_job_template |
8e721c32 | 642 | image: $CI_REGISTRY_IMAGE/qemu/debian:$QEMU_CI_CONTAINER_TAG |
f2f5c3e6 PMD |
643 | stage: test |
644 | needs: | |
645 | - job: build-tools-and-docs-debian | |
646 | script: | |
647 | - mkdir -p public | |
648 | # HTML-ised source tree | |
649 | - make gtags | |
650 | - htags -anT --tree-view=filetree -m qemu_init | |
651 | -t "Welcome to the QEMU sourcecode" | |
652 | - mv HTML public/src | |
653 | # Project documentation | |
654 | - make -C build install DESTDIR=$(pwd)/temp-install | |
655 | - mv temp-install/usr/local/share/doc/qemu/* public/ | |
656 | artifacts: | |
cef63308 | 657 | when: on_success |
f2f5c3e6 PMD |
658 | paths: |
659 | - public | |
e312d1fd DB |
660 | variables: |
661 | QEMU_JOB_PUBLISH: 1 |