]>
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 |
2d41bf0f | 44 | TARGETS: alpha-softmmu microblazeel-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 |
2d41bf0f | 64 | AVOCADO_TAGS: arch:alpha arch:microblazeel 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 | 169 | |
94766edb FR |
170 | # Previous QEMU release. Used for cross-version migration tests. |
171 | build-previous-qemu: | |
172 | extends: .native_build_job_template | |
173 | artifacts: | |
174 | when: on_success | |
175 | expire_in: 2 days | |
176 | paths: | |
177 | - build-previous | |
178 | exclude: | |
179 | - build-previous/**/*.p | |
180 | - build-previous/**/*.a.p | |
181 | - build-previous/**/*.fa.p | |
182 | - build-previous/**/*.c.o | |
183 | - build-previous/**/*.c.o.d | |
184 | - build-previous/**/*.fa | |
185 | needs: | |
186 | job: amd64-opensuse-leap-container | |
187 | variables: | |
188 | IMAGE: opensuse-leap | |
189 | TARGETS: x86_64-softmmu aarch64-softmmu | |
190 | before_script: | |
191 | - export QEMU_PREV_VERSION="$(sed 's/\([0-9.]*\)\.[0-9]*/v\1.0/' VERSION)" | |
192 | - git checkout $QEMU_PREV_VERSION | |
193 | after_script: | |
194 | - mv build build-previous | |
195 | ||
196 | .migration-compat-common: | |
197 | extends: .common_test_job_template | |
198 | needs: | |
199 | - job: build-previous-qemu | |
200 | - job: build-system-opensuse | |
201 | # The old QEMU could have bugs unrelated to migration that are | |
202 | # already fixed in the current development branch, so this test | |
203 | # might fail. | |
204 | allow_failure: true | |
205 | variables: | |
206 | IMAGE: opensuse-leap | |
207 | MAKE_CHECK_ARGS: check-build | |
208 | script: | |
209 | # Use the migration-tests from the older QEMU tree. This avoids | |
210 | # testing an old QEMU against new features/tests that it is not | |
211 | # compatible with. | |
212 | - cd build-previous | |
213 | # old to new | |
214 | - QTEST_QEMU_BINARY_SRC=./qemu-system-${TARGET} | |
215 | QTEST_QEMU_BINARY=../build/qemu-system-${TARGET} ./tests/qtest/migration-test | |
216 | # new to old | |
217 | - QTEST_QEMU_BINARY_DST=./qemu-system-${TARGET} | |
218 | QTEST_QEMU_BINARY=../build/qemu-system-${TARGET} ./tests/qtest/migration-test | |
219 | ||
079687e4 FR |
220 | # This job is disabled until we release 9.0. The existing |
221 | # migration-test in 8.2 is broken on aarch64. The fix was already | |
222 | # commited, but it will only take effect once 9.0 is out. | |
94766edb FR |
223 | migration-compat-aarch64: |
224 | extends: .migration-compat-common | |
225 | variables: | |
226 | TARGET: aarch64 | |
079687e4 | 227 | QEMU_JOB_SKIPPED: 1 |
94766edb FR |
228 | |
229 | migration-compat-x86_64: | |
230 | extends: .migration-compat-common | |
231 | variables: | |
232 | TARGET: x86_64 | |
233 | ||
f2f5c3e6 PMD |
234 | check-system-centos: |
235 | extends: .native_test_job_template | |
236 | needs: | |
237 | - job: build-system-centos | |
238 | artifacts: true | |
239 | variables: | |
240 | IMAGE: centos8 | |
241 | MAKE_CHECK_ARGS: check | |
242 | ||
bbbd9b6e WR |
243 | avocado-system-centos: |
244 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
245 | needs: |
246 | - job: build-system-centos | |
247 | artifacts: true | |
248 | variables: | |
249 | IMAGE: centos8 | |
bbbd9b6e | 250 | MAKE_CHECK_ARGS: check-avocado |
cdd30f36 | 251 | AVOCADO_TAGS: arch:ppc64 arch:or1k arch:s390x arch:x86_64 arch:rx |
78ebc00b | 252 | arch:sh4 arch:nios2 |
f2f5c3e6 PMD |
253 | |
254 | build-system-opensuse: | |
88b19e4e AB |
255 | extends: |
256 | - .native_build_job_template | |
257 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
258 | needs: |
259 | job: amd64-opensuse-leap-container | |
260 | variables: | |
261 | IMAGE: opensuse-leap | |
f2f5c3e6 PMD |
262 | TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu |
263 | MAKE_CHECK_ARGS: check-build | |
f2f5c3e6 PMD |
264 | |
265 | check-system-opensuse: | |
266 | extends: .native_test_job_template | |
267 | needs: | |
268 | - job: build-system-opensuse | |
269 | artifacts: true | |
270 | variables: | |
271 | IMAGE: opensuse-leap | |
272 | MAKE_CHECK_ARGS: check | |
273 | ||
bbbd9b6e WR |
274 | avocado-system-opensuse: |
275 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
276 | needs: |
277 | - job: build-system-opensuse | |
278 | artifacts: true | |
279 | variables: | |
280 | IMAGE: opensuse-leap | |
bbbd9b6e | 281 | MAKE_CHECK_ARGS: check-avocado |
78ebc00b | 282 | AVOCADO_TAGS: arch:s390x arch:x86_64 arch:aarch64 |
f2f5c3e6 | 283 | |
5d25fcb7 AB |
284 | # |
285 | # Flaky tests. We don't run these by default and they are allow fail | |
286 | # but often the CI system is the only way to trigger the failures. | |
287 | # | |
288 | ||
289 | build-system-flaky: | |
290 | extends: | |
291 | - .native_build_job_template | |
292 | - .native_build_artifact_template | |
293 | needs: | |
294 | job: amd64-debian-container | |
295 | variables: | |
296 | IMAGE: debian | |
297 | QEMU_JOB_OPTIONAL: 1 | |
298 | TARGETS: aarch64-softmmu arm-softmmu mips64el-softmmu | |
299 | ppc64-softmmu rx-softmmu s390x-softmmu sh4-softmmu x86_64-softmmu | |
300 | MAKE_CHECK_ARGS: check-build | |
301 | ||
302 | avocado-system-flaky: | |
303 | extends: .avocado_test_job_template | |
304 | needs: | |
305 | - job: build-system-flaky | |
306 | artifacts: true | |
307 | allow_failure: true | |
308 | variables: | |
309 | IMAGE: debian | |
310 | MAKE_CHECK_ARGS: check-avocado | |
311 | QEMU_JOB_OPTIONAL: 1 | |
312 | QEMU_TEST_FLAKY_TESTS: 1 | |
313 | AVOCADO_TAGS: flaky | |
f2f5c3e6 | 314 | |
f2f5c3e6 PMD |
315 | # This jobs explicitly disable TCG (--disable-tcg), KVM is detected by |
316 | # the configure script. The container doesn't contain Xen headers so | |
317 | # Xen accelerator is not detected / selected. As result it build the | |
318 | # i386-softmmu and x86_64-softmmu with KVM being the single accelerator | |
319 | # available. | |
320 | # Also use a different coroutine implementation (which is only really of | |
321 | # interest to KVM users, i.e. with TCG disabled) | |
322 | build-tcg-disabled: | |
323 | extends: .native_build_job_template | |
324 | needs: | |
325 | job: amd64-centos8-container | |
326 | variables: | |
327 | IMAGE: centos8 | |
328 | script: | |
329 | - mkdir build | |
330 | - cd build | |
331 | - ../configure --disable-tcg --audio-drv-list="" --with-coroutine=ucontext | |
3b4f9119 | 332 | --disable-docs --disable-sdl --disable-gtk --disable-vnc |
f2f5c3e6 PMD |
333 | || { cat config.log meson-logs/meson-log.txt && exit 1; } |
334 | - make -j"$JOBS" | |
335 | - make check-unit | |
336 | - make check-qapi-schema | |
337 | - cd tests/qemu-iotests/ | |
338 | - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048 | |
339 | 052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163 | |
c88f0789 | 340 | 170 171 183 184 192 194 208 221 226 227 236 253 277 image-fleecing |
f2f5c3e6 | 341 | - ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122 |
db1e1192 | 342 | 124 132 139 142 144 145 151 152 155 157 165 194 196 200 202 |
c88f0789 VSO |
343 | 208 209 216 218 227 234 246 247 248 250 254 255 257 258 |
344 | 260 261 262 263 264 270 272 273 277 279 image-fleecing | |
f2f5c3e6 PMD |
345 | |
346 | build-user: | |
347 | extends: .native_build_job_template | |
348 | needs: | |
349 | job: amd64-debian-user-cross-container | |
350 | variables: | |
351 | IMAGE: debian-all-test-cross | |
352 | CONFIGURE_ARGS: --disable-tools --disable-system | |
4e76d98a | 353 | --target-list-exclude=alpha-linux-user,sh4-linux-user |
f2f5c3e6 PMD |
354 | MAKE_CHECK_ARGS: check-tcg |
355 | ||
356 | build-user-static: | |
357 | extends: .native_build_job_template | |
358 | needs: | |
359 | job: amd64-debian-user-cross-container | |
360 | variables: | |
361 | IMAGE: debian-all-test-cross | |
362 | CONFIGURE_ARGS: --disable-tools --disable-system --static | |
4e76d98a | 363 | --target-list-exclude=alpha-linux-user,sh4-linux-user |
aa39c4c0 AB |
364 | MAKE_CHECK_ARGS: check-tcg |
365 | ||
366 | # targets stuck on older compilers | |
367 | build-legacy: | |
368 | extends: .native_build_job_template | |
369 | needs: | |
370 | job: amd64-debian-legacy-cross-container | |
371 | variables: | |
372 | IMAGE: debian-legacy-test-cross | |
4e76d98a | 373 | TARGETS: alpha-linux-user alpha-softmmu sh4-linux-user |
aa39c4c0 | 374 | CONFIGURE_ARGS: --disable-tools |
f2f5c3e6 PMD |
375 | MAKE_CHECK_ARGS: check-tcg |
376 | ||
f2f5c3e6 PMD |
377 | build-user-hexagon: |
378 | extends: .native_build_job_template | |
379 | needs: | |
380 | job: hexagon-cross-container | |
f2f5c3e6 PMD |
381 | variables: |
382 | IMAGE: debian-hexagon-cross | |
383 | TARGETS: hexagon-linux-user | |
384 | CONFIGURE_ARGS: --disable-tools --disable-docs --enable-debug-tcg | |
385 | MAKE_CHECK_ARGS: check-tcg | |
386 | ||
6f6c3999 AB |
387 | # Build the softmmu targets we have check-tcg tests and compilers in |
388 | # our omnibus all-test-cross container. Those targets that haven't got | |
389 | # Debian cross compiler support need to use special containers. | |
f2f5c3e6 PMD |
390 | build-some-softmmu: |
391 | extends: .native_build_job_template | |
392 | needs: | |
393 | job: amd64-debian-user-cross-container | |
394 | variables: | |
395 | IMAGE: debian-all-test-cross | |
396 | CONFIGURE_ARGS: --disable-tools --enable-debug | |
6f6c3999 AB |
397 | TARGETS: arm-softmmu aarch64-softmmu i386-softmmu riscv64-softmmu |
398 | s390x-softmmu x86_64-softmmu | |
399 | MAKE_CHECK_ARGS: check-tcg | |
cb8715bf AB |
400 | |
401 | build-loongarch64: | |
402 | extends: .native_build_job_template | |
403 | needs: | |
404 | job: loongarch-debian-cross-container | |
405 | variables: | |
406 | IMAGE: debian-loongarch-cross | |
407 | CONFIGURE_ARGS: --disable-tools --enable-debug | |
408 | TARGETS: loongarch64-linux-user loongarch64-softmmu | |
f2f5c3e6 PMD |
409 | MAKE_CHECK_ARGS: check-tcg |
410 | ||
39ce9237 AB |
411 | # We build tricore in a very minimal tricore only container |
412 | build-tricore-softmmu: | |
413 | extends: .native_build_job_template | |
414 | needs: | |
415 | job: tricore-debian-cross-container | |
416 | variables: | |
417 | IMAGE: debian-tricore-cross | |
418 | CONFIGURE_ARGS: --disable-tools --disable-fdt --enable-debug | |
419 | TARGETS: tricore-softmmu | |
420 | MAKE_CHECK_ARGS: check-tcg | |
421 | ||
f2f5c3e6 PMD |
422 | clang-system: |
423 | extends: .native_build_job_template | |
424 | needs: | |
425 | job: amd64-fedora-container | |
426 | variables: | |
427 | IMAGE: fedora | |
428 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ | |
429 | --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined | |
7c4f7150 | 430 | TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu s390x-softmmu |
f2f5c3e6 PMD |
431 | MAKE_CHECK_ARGS: check-qtest check-tcg |
432 | ||
433 | clang-user: | |
434 | extends: .native_build_job_template | |
435 | needs: | |
436 | job: amd64-debian-user-cross-container | |
765de32d | 437 | timeout: 70m |
f2f5c3e6 PMD |
438 | variables: |
439 | IMAGE: debian-all-test-cross | |
440 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system | |
aa39c4c0 | 441 | --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 |
442 | --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined |
443 | MAKE_CHECK_ARGS: check-unit check-tcg | |
444 | ||
445 | # Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory. | |
446 | # On gitlab runners, default value sometimes end up calling 2 lds concurrently and | |
447 | # triggers an Out-Of-Memory error | |
448 | # | |
5890258a TH |
449 | # Since slirp callbacks are used in QEMU Timers, we cannot use libslirp with |
450 | # CFI builds, and thus have to disable it here. | |
f2f5c3e6 | 451 | # |
bbbd9b6e | 452 | # Split in three sets of build/check/avocado to limit the execution time of each |
f2f5c3e6 PMD |
453 | # job |
454 | build-cfi-aarch64: | |
88b19e4e AB |
455 | extends: |
456 | - .native_build_job_template | |
457 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
458 | needs: |
459 | - job: amd64-fedora-container | |
460 | variables: | |
461 | LD_JOBS: 1 | |
462 | AR: llvm-ar | |
463 | IMAGE: fedora | |
464 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug | |
5890258a | 465 | --enable-safe-stack --disable-slirp |
f2f5c3e6 PMD |
466 | TARGETS: aarch64-softmmu |
467 | MAKE_CHECK_ARGS: check-build | |
e37264eb TH |
468 | # FIXME: This job is often failing, likely due to out-of-memory problems in |
469 | # the constrained containers of the shared runners. Thus this is marked as | |
e312d1fd DB |
470 | # skipped until the situation has been solved. |
471 | QEMU_JOB_SKIPPED: 1 | |
72ec89bf | 472 | timeout: 90m |
f2f5c3e6 PMD |
473 | |
474 | check-cfi-aarch64: | |
475 | extends: .native_test_job_template | |
476 | needs: | |
477 | - job: build-cfi-aarch64 | |
478 | artifacts: true | |
479 | variables: | |
480 | IMAGE: fedora | |
481 | MAKE_CHECK_ARGS: check | |
482 | ||
bbbd9b6e WR |
483 | avocado-cfi-aarch64: |
484 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
485 | needs: |
486 | - job: build-cfi-aarch64 | |
487 | artifacts: true | |
488 | variables: | |
489 | IMAGE: fedora | |
bbbd9b6e | 490 | MAKE_CHECK_ARGS: check-avocado |
f2f5c3e6 PMD |
491 | |
492 | build-cfi-ppc64-s390x: | |
88b19e4e AB |
493 | extends: |
494 | - .native_build_job_template | |
495 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
496 | needs: |
497 | - job: amd64-fedora-container | |
498 | variables: | |
499 | LD_JOBS: 1 | |
500 | AR: llvm-ar | |
501 | IMAGE: fedora | |
502 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug | |
5890258a | 503 | --enable-safe-stack --disable-slirp |
f2f5c3e6 PMD |
504 | TARGETS: ppc64-softmmu s390x-softmmu |
505 | MAKE_CHECK_ARGS: check-build | |
e37264eb TH |
506 | # FIXME: This job is often failing, likely due to out-of-memory problems in |
507 | # the constrained containers of the shared runners. Thus this is marked as | |
e312d1fd DB |
508 | # skipped until the situation has been solved. |
509 | QEMU_JOB_SKIPPED: 1 | |
72ec89bf | 510 | timeout: 80m |
f2f5c3e6 PMD |
511 | |
512 | check-cfi-ppc64-s390x: | |
513 | extends: .native_test_job_template | |
514 | needs: | |
515 | - job: build-cfi-ppc64-s390x | |
516 | artifacts: true | |
517 | variables: | |
518 | IMAGE: fedora | |
519 | MAKE_CHECK_ARGS: check | |
520 | ||
bbbd9b6e WR |
521 | avocado-cfi-ppc64-s390x: |
522 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
523 | needs: |
524 | - job: build-cfi-ppc64-s390x | |
525 | artifacts: true | |
526 | variables: | |
527 | IMAGE: fedora | |
bbbd9b6e | 528 | MAKE_CHECK_ARGS: check-avocado |
f2f5c3e6 PMD |
529 | |
530 | build-cfi-x86_64: | |
88b19e4e AB |
531 | extends: |
532 | - .native_build_job_template | |
533 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
534 | needs: |
535 | - job: amd64-fedora-container | |
536 | variables: | |
537 | LD_JOBS: 1 | |
538 | AR: llvm-ar | |
539 | IMAGE: fedora | |
540 | CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug | |
5890258a | 541 | --enable-safe-stack --disable-slirp |
f2f5c3e6 PMD |
542 | TARGETS: x86_64-softmmu |
543 | MAKE_CHECK_ARGS: check-build | |
544 | timeout: 70m | |
f2f5c3e6 PMD |
545 | |
546 | check-cfi-x86_64: | |
547 | extends: .native_test_job_template | |
548 | needs: | |
549 | - job: build-cfi-x86_64 | |
550 | artifacts: true | |
551 | variables: | |
552 | IMAGE: fedora | |
553 | MAKE_CHECK_ARGS: check | |
554 | ||
bbbd9b6e WR |
555 | avocado-cfi-x86_64: |
556 | extends: .avocado_test_job_template | |
f2f5c3e6 PMD |
557 | needs: |
558 | - job: build-cfi-x86_64 | |
559 | artifacts: true | |
560 | variables: | |
561 | IMAGE: fedora | |
bbbd9b6e | 562 | MAKE_CHECK_ARGS: check-avocado |
f2f5c3e6 PMD |
563 | |
564 | tsan-build: | |
565 | extends: .native_build_job_template | |
566 | needs: | |
171080d8 | 567 | job: amd64-ubuntu2204-container |
f2f5c3e6 | 568 | variables: |
171080d8 AB |
569 | IMAGE: ubuntu2204 |
570 | CONFIGURE_ARGS: --enable-tsan --cc=clang --cxx=clang++ | |
eda2321d | 571 | --enable-trace-backends=ust --disable-slirp |
f2f5c3e6 | 572 | TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user |
f2f5c3e6 | 573 | |
bb9ecae7 AB |
574 | # gcov is a GCC features |
575 | gcov: | |
f2f5c3e6 PMD |
576 | extends: .native_build_job_template |
577 | needs: | |
171080d8 | 578 | job: amd64-ubuntu2204-container |
bb9ecae7 | 579 | timeout: 80m |
f2f5c3e6 | 580 | variables: |
171080d8 | 581 | IMAGE: ubuntu2204 |
bb9ecae7 | 582 | CONFIGURE_ARGS: --enable-gcov |
f2f5c3e6 | 583 | TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu |
dc389ce1 | 584 | MAKE_CHECK_ARGS: check-unit check-softfloat |
f2f5c3e6 | 585 | after_script: |
5544d33d AB |
586 | - cd build |
587 | - gcovr --xml-pretty --exclude-unreachable-branches --print-summary | |
588 | -o coverage.xml --root ${CI_PROJECT_DIR} . *.p | |
589 | coverage: /^\s*lines:\s*\d+.\d+\%/ | |
590 | artifacts: | |
591 | name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA} | |
dcb242c8 | 592 | when: always |
5544d33d | 593 | expire_in: 2 days |
dcb242c8 DB |
594 | paths: |
595 | - build/meson-logs/testlog.txt | |
5544d33d | 596 | reports: |
dcb242c8 | 597 | junit: build/meson-logs/testlog.junit.xml |
5544d33d AB |
598 | coverage_report: |
599 | coverage_format: cobertura | |
600 | path: build/coverage.xml | |
f2f5c3e6 PMD |
601 | |
602 | build-oss-fuzz: | |
603 | extends: .native_build_job_template | |
604 | needs: | |
605 | job: amd64-fedora-container | |
606 | variables: | |
607 | IMAGE: fedora | |
608 | script: | |
609 | - mkdir build-oss-fuzz | |
3ab8bf83 | 610 | - export LSAN_OPTIONS=suppressions=scripts/oss-fuzz/lsan_suppressions.txt |
f2f5c3e6 PMD |
611 | - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address" |
612 | ./scripts/oss-fuzz/build.sh | |
613 | - export ASAN_OPTIONS="fast_unwind_on_malloc=0" | |
614 | - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f | |
615 | | grep -v slirp); do | |
616 | grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ; | |
617 | echo Testing ${fuzzer} ... ; | |
618 | "${fuzzer}" -runs=1 -seed=1 || exit 1 ; | |
619 | done | |
f2f5c3e6 PMD |
620 | |
621 | build-tci: | |
622 | extends: .native_build_job_template | |
623 | needs: | |
624 | job: amd64-debian-user-cross-container | |
625 | variables: | |
626 | IMAGE: debian-all-test-cross | |
627 | script: | |
aa39c4c0 | 628 | - TARGETS="aarch64 arm hppa m68k microblaze ppc64 s390x x86_64" |
f2f5c3e6 PMD |
629 | - mkdir build |
630 | - cd build | |
3b4f9119 TH |
631 | - ../configure --enable-tcg-interpreter --disable-docs --disable-gtk --disable-vnc |
632 | --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" | |
633 | || { cat config.log meson-logs/meson-log.txt && exit 1; } | |
f2f5c3e6 PMD |
634 | - make -j"$JOBS" |
635 | - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test | |
636 | - for tg in $TARGETS ; do | |
637 | export QTEST_QEMU_BINARY="./qemu-system-${tg}" ; | |
638 | ./tests/qtest/boot-serial-test || exit 1 ; | |
639 | ./tests/qtest/cdrom-test || exit 1 ; | |
640 | done | |
641 | - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test | |
642 | - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow | |
643 | - make check-tcg | |
644 | ||
f2f5c3e6 | 645 | # Check our reduced build configurations |
e030d08c | 646 | build-without-defaults: |
f2f5c3e6 PMD |
647 | extends: .native_build_job_template |
648 | needs: | |
649 | job: amd64-centos8-container | |
650 | variables: | |
651 | IMAGE: centos8 | |
8d316275 | 652 | CONFIGURE_ARGS: |
e030d08c | 653 | --without-default-devices |
8d316275 | 654 | --without-default-features |
e030d08c | 655 | --disable-fdt |
8d316275 TH |
656 | --disable-pie |
657 | --disable-qom-cast-debug | |
8d316275 | 658 | --disable-strip |
e030d08c | 659 | TARGETS: avr-softmmu mips64-softmmu s390x-softmmu sh4-softmmu |
8d316275 | 660 | sparc64-softmmu hexagon-linux-user i386-linux-user s390x-linux-user |
bb6e4734 | 661 | MAKE_CHECK_ARGS: check |
f2f5c3e6 PMD |
662 | |
663 | build-libvhost-user: | |
e312d1fd | 664 | extends: .base_job_template |
f2f5c3e6 | 665 | stage: build |
d4c7a565 | 666 | image: $CI_REGISTRY_IMAGE/qemu/fedora:$QEMU_CI_CONTAINER_TAG |
f2f5c3e6 PMD |
667 | needs: |
668 | job: amd64-fedora-container | |
f2f5c3e6 PMD |
669 | script: |
670 | - mkdir subprojects/libvhost-user/build | |
671 | - cd subprojects/libvhost-user/build | |
672 | - meson | |
673 | - ninja | |
674 | ||
675 | # No targets are built here, just tools, docs, and unit tests. This | |
676 | # also feeds into the eventual documentation deployment steps later | |
677 | build-tools-and-docs-debian: | |
88b19e4e AB |
678 | extends: |
679 | - .native_build_job_template | |
680 | - .native_build_artifact_template | |
f2f5c3e6 PMD |
681 | needs: |
682 | job: amd64-debian-container | |
e312d1fd DB |
683 | # when running on 'master' we use pre-existing container |
684 | optional: true | |
f2f5c3e6 | 685 | variables: |
8e721c32 | 686 | IMAGE: debian |
7630156d | 687 | MAKE_CHECK_ARGS: check-unit ctags TAGS cscope |
f2f5c3e6 | 688 | CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools |
e312d1fd | 689 | QEMU_JOB_PUBLISH: 1 |
f2f5c3e6 PMD |
690 | |
691 | # Prepare for GitLab pages deployment. Anything copied into the | |
692 | # "public" directory will be deployed to $USER.gitlab.io/$PROJECT | |
eafadbbb DB |
693 | # |
694 | # GitLab publishes from any branch that triggers a CI pipeline | |
695 | # | |
696 | # For the main repo we don't want to publish from 'staging' | |
697 | # since that content may not be pushed, nor do we wish to | |
698 | # publish from 'stable-NNN' branches as that content is outdated. | |
699 | # Thus we restrict to just the default branch | |
700 | # | |
701 | # For contributor forks we want to publish from any repo so | |
702 | # that users can see the results of their commits, regardless | |
703 | # of what topic branch they're currently using | |
f2f5c3e6 | 704 | pages: |
e312d1fd | 705 | extends: .base_job_template |
8e721c32 | 706 | image: $CI_REGISTRY_IMAGE/qemu/debian:$QEMU_CI_CONTAINER_TAG |
f2f5c3e6 PMD |
707 | stage: test |
708 | needs: | |
709 | - job: build-tools-and-docs-debian | |
710 | script: | |
711 | - mkdir -p public | |
712 | # HTML-ised source tree | |
713 | - make gtags | |
52a21689 PM |
714 | # We unset variables to work around a bug in some htags versions |
715 | # which causes it to fail when the environment is large | |
716 | - CI_COMMIT_MESSAGE= CI_COMMIT_TAG_MESSAGE= htags | |
717 | -anT --tree-view=filetree -m qemu_init | |
f2f5c3e6 PMD |
718 | -t "Welcome to the QEMU sourcecode" |
719 | - mv HTML public/src | |
720 | # Project documentation | |
721 | - make -C build install DESTDIR=$(pwd)/temp-install | |
722 | - mv temp-install/usr/local/share/doc/qemu/* public/ | |
723 | artifacts: | |
cef63308 | 724 | when: on_success |
f2f5c3e6 PMD |
725 | paths: |
726 | - public | |
e312d1fd DB |
727 | variables: |
728 | QEMU_JOB_PUBLISH: 1 |