]> git.proxmox.com Git - mirror_qemu.git/blame - .gitlab-ci.d/buildtest.yml
target/hppa: Fix IOR and ISR on unaligned access trap
[mirror_qemu.git] / .gitlab-ci.d / buildtest.yml
CommitLineData
f2f5c3e6
PMD
1include:
2 - local: '/.gitlab-ci.d/buildtest-template.yml'
3
4build-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
16check-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
25avocado-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
35build-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
47check-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
56avocado-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
66build-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
79check-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
88avocado-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
98crash-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 110build-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
123check-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
132avocado-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
143crash-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 156build-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
170check-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
179avocado-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
190build-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
201check-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
210avocado-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
225build-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
238avocado-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)
258build-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
282build-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
292build-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
303build-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
313build-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
326build-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
337build-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
348build-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
358clang-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
369clang-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
390build-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
410check-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
419avocado-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
428build-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
448check-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
457avocado-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
466build-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
482check-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
491avocado-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
500tsan-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
511gcov:
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
538build-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
557build-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 582build-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
599build-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
613build-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 640pages:
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