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