scripts/ci/gitlab-pipeline-status: give more information on failures
[qemu/ar7.git] / .gitlab-ci.yml
blob84eb4b0e5f090aa6566b895c6f56aa4ad3055297
1 # Currently we have two build stages after our containers are built:
2 #  - build (for traditional build and test or first stage build)
3 #  - test (for test stages, using build artefacts from a build stage)
4 stages:
5   - containers
6   - containers-layer2
7   - build
8   - test
10 include:
11   - local: '/.gitlab-ci.d/edk2.yml'
12   - local: '/.gitlab-ci.d/opensbi.yml'
13   - local: '/.gitlab-ci.d/containers.yml'
14   - local: '/.gitlab-ci.d/crossbuilds.yml'
16 .native_build_job_template: &native_build_job_definition
17   stage: build
18   image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
19   before_script:
20     - JOBS=$(expr $(nproc) + 1)
21   script:
22     - mkdir build
23     - cd build
24     - if test -n "$TARGETS";
25       then
26         ../configure --enable-werror $CONFIGURE_ARGS --target-list="$TARGETS" ;
27       else
28         ../configure --enable-werror $CONFIGURE_ARGS ;
29       fi || { cat config.log meson-logs/meson-log.txt && exit 1; }
30     - make -j"$JOBS"
31     - if test -n "$MAKE_CHECK_ARGS";
32       then
33         make -j"$JOBS" $MAKE_CHECK_ARGS ;
34       fi
36 .native_test_job_template: &native_test_job_definition
37   stage: test
38   image: $CI_REGISTRY_IMAGE/qemu/$IMAGE:latest
39   script:
40     - scripts/git-submodule.sh update
41         $(grep GIT_SUBMODULES build/config-host.mak | sed 's/GIT_SUBMODULES=//')
42     - cd build
43     - find . -type f -exec touch {} +
44     # Avoid recompiling by hiding ninja with NINJA=":"
45     - make NINJA=":" $MAKE_CHECK_ARGS
47 .acceptance_template: &acceptance_definition
48   cache:
49     key: "${CI_JOB_NAME}-cache"
50     paths:
51       - ${CI_PROJECT_DIR}/avocado-cache
52     policy: pull-push
53   artifacts:
54     name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
55     when: always
56     expire_in: 2 days
57     paths:
58       - build/tests/results/latest/results.xml
59       - build/tests/results/latest/test-results
60     reports:
61       junit: build/tests/results/latest/results.xml
62   before_script:
63     - mkdir -p ~/.config/avocado
64     - echo "[datadir.paths]" > ~/.config/avocado/avocado.conf
65     - echo "cache_dirs = ['${CI_PROJECT_DIR}/avocado-cache']"
66            >> ~/.config/avocado/avocado.conf
67     - echo -e '[job.output.testlogs]\nstatuses = ["FAIL", "INTERRUPT"]'
68            >> ~/.config/avocado/avocado.conf
69     - if [ -d ${CI_PROJECT_DIR}/avocado-cache ]; then
70         du -chs ${CI_PROJECT_DIR}/avocado-cache ;
71       fi
72     - export AVOCADO_ALLOW_UNTRUSTED_CODE=1
73   after_script:
74     - cd build
75     - du -chs ${CI_PROJECT_DIR}/avocado-cache
77 build-system-alpine:
78   <<: *native_build_job_definition
79   needs:
80     - job: amd64-alpine-container
81   variables:
82     IMAGE: alpine
83     TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
84       moxie-softmmu microblazeel-softmmu mips64el-softmmu
85     MAKE_CHECK_ARGS: check-build
86     CONFIGURE_ARGS: --enable-docs
87   artifacts:
88     expire_in: 2 days
89     paths:
90       - .git-submodule-status
91       - build
93 check-system-alpine:
94   <<: *native_test_job_definition
95   needs:
96     - job: build-system-alpine
97       artifacts: true
98   variables:
99     IMAGE: alpine
100     MAKE_CHECK_ARGS: check
102 acceptance-system-alpine:
103   <<: *native_test_job_definition
104   needs:
105     - job: build-system-alpine
106       artifacts: true
107   variables:
108     IMAGE: alpine
109     MAKE_CHECK_ARGS: check-acceptance
110   <<: *acceptance_definition
112 build-system-ubuntu:
113   <<: *native_build_job_definition
114   needs:
115     job: amd64-ubuntu2004-container
116   variables:
117     IMAGE: ubuntu2004
118     CONFIGURE_ARGS: --enable-fdt=system --enable-slirp=system
119     TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
120       moxie-softmmu microblazeel-softmmu mips64el-softmmu
121     MAKE_CHECK_ARGS: check-build
122   artifacts:
123     expire_in: 2 days
124     paths:
125       - build
127 check-system-ubuntu:
128   <<: *native_test_job_definition
129   needs:
130     - job: build-system-ubuntu
131       artifacts: true
132   variables:
133     IMAGE: ubuntu2004
134     MAKE_CHECK_ARGS: check
136 acceptance-system-ubuntu:
137   <<: *native_test_job_definition
138   needs:
139     - job: build-system-ubuntu
140       artifacts: true
141   variables:
142     IMAGE: ubuntu2004
143     MAKE_CHECK_ARGS: check-acceptance
144   <<: *acceptance_definition
146 build-system-debian:
147   <<: *native_build_job_definition
148   needs:
149     job: amd64-debian-container
150   variables:
151     IMAGE: debian-amd64
152     CONFIGURE_ARGS: --enable-fdt=system
153     TARGETS: arm-softmmu avr-softmmu i386-softmmu mipsel-softmmu
154       riscv64-softmmu sh4eb-softmmu sparc-softmmu xtensaeb-softmmu
155     MAKE_CHECK_ARGS: check-build
156   artifacts:
157     expire_in: 2 days
158     paths:
159       - build
161 check-system-debian:
162   <<: *native_test_job_definition
163   needs:
164     - job: build-system-debian
165       artifacts: true
166   variables:
167     IMAGE: debian-amd64
168     MAKE_CHECK_ARGS: check
170 # No targets are built here, just tools, docs, and unit tests. This
171 # also feeds into the eventual documentation deployment steps later
172 build-tools-and-docs-debian:
173   <<: *native_build_job_definition
174   variables:
175     IMAGE: debian-amd64
176     MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope
177     CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
178   artifacts:
179     expire_in: 2 days
180     paths:
181       - build
183 acceptance-system-debian:
184   <<: *native_test_job_definition
185   needs:
186     - job: build-system-debian
187       artifacts: true
188   variables:
189     IMAGE: debian-amd64
190     MAKE_CHECK_ARGS: check-acceptance
191   <<: *acceptance_definition
193 build-system-fedora:
194   <<: *native_build_job_definition
195   needs:
196     job: amd64-fedora-container
197   variables:
198     IMAGE: fedora
199     CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
200              --enable-fdt=system --enable-slirp=system --enable-capstone=system
201     TARGETS: tricore-softmmu microblaze-softmmu mips-softmmu
202       xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
203     MAKE_CHECK_ARGS: check-build
204   artifacts:
205     expire_in: 2 days
206     paths:
207       - build
209 check-system-fedora:
210   <<: *native_test_job_definition
211   needs:
212     - job: build-system-fedora
213       artifacts: true
214   variables:
215     IMAGE: fedora
216     MAKE_CHECK_ARGS: check
218 acceptance-system-fedora:
219   <<: *native_test_job_definition
220   needs:
221     - job: build-system-fedora
222       artifacts: true
223   variables:
224     IMAGE: fedora
225     MAKE_CHECK_ARGS: check-acceptance
226   <<: *acceptance_definition
228 build-system-centos:
229   <<: *native_build_job_definition
230   needs:
231     job: amd64-centos8-container
232   variables:
233     IMAGE: centos8
234     CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-fdt=system
235                     --enable-modules
236     TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu
237       x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu
238     MAKE_CHECK_ARGS: check-build
239   artifacts:
240     expire_in: 2 days
241     paths:
242       - build
244 check-system-centos:
245   <<: *native_test_job_definition
246   needs:
247     - job: build-system-centos
248       artifacts: true
249   variables:
250     IMAGE: centos8
251     MAKE_CHECK_ARGS: check
253 acceptance-system-centos:
254   <<: *native_test_job_definition
255   needs:
256     - job: build-system-centos
257       artifacts: true
258   variables:
259     IMAGE: centos8
260     MAKE_CHECK_ARGS: check-acceptance
261   <<: *acceptance_definition
263 build-system-opensuse:
264   <<: *native_build_job_definition
265   needs:
266     job: amd64-opensuse-leap-container
267   variables:
268     IMAGE: opensuse-leap
269     CONFIGURE_ARGS: --enable-fdt=system
270     TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
271     MAKE_CHECK_ARGS: check-build
272   artifacts:
273     expire_in: 2 days
274     paths:
275       - build
277 check-system-opensuse:
278   <<: *native_test_job_definition
279   needs:
280     - job: build-system-opensuse
281       artifacts: true
282   variables:
283     IMAGE: opensuse-leap
284     MAKE_CHECK_ARGS: check
286 acceptance-system-opensuse:
287   <<: *native_test_job_definition
288   needs:
289     - job: build-system-opensuse
290       artifacts: true
291   variables:
292     IMAGE: opensuse-leap
293     MAKE_CHECK_ARGS: check-acceptance
294   <<: *acceptance_definition
297 build-disabled:
298   <<: *native_build_job_definition
299   needs:
300     job: amd64-fedora-container
301   variables:
302     IMAGE: fedora
303     CONFIGURE_ARGS:
304       --disable-attr
305       --disable-auth-pam
306       --disable-avx2
307       --disable-bochs
308       --disable-brlapi
309       --disable-bzip2
310       --disable-cap-ng
311       --disable-capstone
312       --disable-cloop
313       --disable-coroutine-pool
314       --disable-curl
315       --disable-curses
316       --disable-dmg
317       --disable-docs
318       --disable-gcrypt
319       --disable-glusterfs
320       --disable-gnutls
321       --disable-gtk
322       --disable-guest-agent
323       --disable-iconv
324       --disable-keyring
325       --disable-kvm
326       --disable-libiscsi
327       --disable-libpmem
328       --disable-libssh
329       --disable-libudev
330       --disable-libusb
331       --disable-libxml2
332       --disable-linux-aio
333       --disable-live-block-migration
334       --disable-lzo
335       --disable-malloc-trim
336       --disable-mpath
337       --disable-nettle
338       --disable-numa
339       --disable-opengl
340       --disable-parallels
341       --disable-pie
342       --disable-qcow1
343       --disable-qed
344       --disable-qom-cast-debug
345       --disable-rbd
346       --disable-rdma
347       --disable-replication
348       --disable-sdl
349       --disable-seccomp
350       --disable-sheepdog
351       --disable-slirp
352       --disable-smartcard
353       --disable-snappy
354       --disable-sparse
355       --disable-spice
356       --disable-strip
357       --disable-tpm
358       --disable-usb-redir
359       --disable-vdi
360       --disable-vhost-crypto
361       --disable-vhost-net
362       --disable-vhost-scsi
363       --disable-vhost-kernel
364       --disable-vhost-user
365       --disable-vhost-vdpa
366       --disable-vhost-vsock
367       --disable-virglrenderer
368       --disable-vnc
369       --disable-vte
370       --disable-vvfat
371       --disable-xen
372       --disable-zstd
373     TARGETS: arm-softmmu i386-softmmu ppc64-softmmu mips64-softmmu
374       s390x-softmmu i386-linux-user
375     MAKE_CHECK_ARGS: check-qtest SPEED=slow
377 # This jobs explicitly disable TCG (--disable-tcg), KVM is detected by
378 # the configure script. The container doesn't contain Xen headers so
379 # Xen accelerator is not detected / selected. As result it build the
380 # i386-softmmu and x86_64-softmmu with KVM being the single accelerator
381 # available.
382 build-tcg-disabled:
383   <<: *native_build_job_definition
384   needs:
385     job: amd64-centos8-container
386   variables:
387     IMAGE: centos8
388   script:
389     - mkdir build
390     - cd build
391     - ../configure --disable-tcg --audio-drv-list="" || { cat config.log meson-logs/meson-log.txt && exit 1; }
392     - make -j"$JOBS"
393     - make check-unit
394     - make check-qapi-schema
395     - cd tests/qemu-iotests/
396     - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048
397             052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163
398             170 171 183 184 192 194 197 208 215 221 222 226 227 236 253 277
399     - ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122
400             124 132 139 142 144 145 151 152 155 157 165 194 196 197 200 202
401             208 209 215 216 218 222 227 234 246 247 248 250 254 255 257 258
402             260 261 262 263 264 270 272 273 277 279
404 build-user:
405   <<: *native_build_job_definition
406   needs:
407     job: amd64-debian-user-cross-container
408   variables:
409     IMAGE: debian-all-test-cross
410     CONFIGURE_ARGS: --disable-tools --disable-system
411     MAKE_CHECK_ARGS: check-tcg
413 build-user-static:
414   <<: *native_build_job_definition
415   needs:
416     job: amd64-debian-user-cross-container
417   variables:
418     IMAGE: debian-all-test-cross
419     CONFIGURE_ARGS: --disable-tools --disable-system --static
420     MAKE_CHECK_ARGS: check-tcg
422 # Only build the softmmu targets we have check-tcg tests for
423 build-some-softmmu:
424   <<: *native_build_job_definition
425   needs:
426     job: amd64-debian-user-cross-container
427   variables:
428     IMAGE: debian-all-test-cross
429     CONFIGURE_ARGS: --disable-tools --enable-debug
430     TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
431     MAKE_CHECK_ARGS: check-tcg
433 # Run check-tcg against linux-user (with plugins)
434 # we skip sparc64-linux-user until it has been fixed somewhat
435 # we skip cris-linux-user as it doesn't use the common run loop
436 build-user-plugins:
437   <<: *native_build_job_definition
438   needs:
439     job: amd64-debian-user-cross-container
440   variables:
441     IMAGE: debian-all-test-cross
442     CONFIGURE_ARGS: --disable-tools --disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user,cris-linux-user
443     MAKE_CHECK_ARGS: check-tcg
444   timeout: 1h 30m
446 build-user-centos7:
447   <<: *native_build_job_definition
448   variables:
449     IMAGE: centos7
450     CONFIGURE_ARGS: --disable-system --disable-tools --disable-docs
451     MAKE_CHECK_ARGS: check-tcg
453 build-some-softmmu-plugins:
454   <<: *native_build_job_definition
455   needs:
456     job: amd64-debian-user-cross-container
457   variables:
458     IMAGE: debian-all-test-cross
459     CONFIGURE_ARGS: --disable-tools --disable-user --enable-plugins --enable-debug-tcg
460     TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
461     MAKE_CHECK_ARGS: check-tcg
463 clang-system:
464   <<: *native_build_job_definition
465   needs:
466     job: amd64-fedora-container
467   variables:
468     IMAGE: fedora
469     CONFIGURE_ARGS: --cc=clang --cxx=clang++
470       --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
471     TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu
472       ppc-softmmu s390x-softmmu
473     MAKE_CHECK_ARGS: check-qtest check-tcg
475 clang-user:
476   <<: *native_build_job_definition
477   variables:
478     IMAGE: debian-all-test-cross
479     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system
480       --target-list-exclude=microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user
481       --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
482     MAKE_CHECK_ARGS: check-unit check-tcg
484 tsan-build:
485   <<: *native_build_job_definition
486   variables:
487     IMAGE: ubuntu2004
488     CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10 --disable-docs
489                     --enable-fdt=system --enable-slirp=system
490     TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
491     MAKE_CHECK_ARGS: bench V=1
493 # These targets are on the way out
494 build-deprecated:
495   <<: *native_build_job_definition
496   needs:
497     job: amd64-debian-user-cross-container
498   variables:
499     IMAGE: debian-all-test-cross
500     CONFIGURE_ARGS: --disable-docs --disable-tools
501     MAKE_CHECK_ARGS: build-tcg
502     TARGETS: ppc64abi32-linux-user tilegx-linux-user lm32-softmmu
503       unicore32-softmmu
504   artifacts:
505     expire_in: 2 days
506     paths:
507       - build
509 # We split the check-tcg step as test failures are expected but we still
510 # want to catch the build breaking.
511 check-deprecated:
512   <<: *native_test_job_definition
513   needs:
514     - job: build-deprecated
515       artifacts: true
516   variables:
517     IMAGE: debian-all-test-cross
518     MAKE_CHECK_ARGS: check-tcg
519   allow_failure: true
521 # gprof/gcov are GCC features
522 gprof-gcov:
523   <<: *native_build_job_definition
524   variables:
525     IMAGE: ubuntu2004
526     CONFIGURE_ARGS: --enable-gprof --enable-gcov
527     MAKE_CHECK_ARGS: check
528     TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
529   timeout: 70m
530   after_script:
531     - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh
533 build-oss-fuzz:
534   <<: *native_build_job_definition
535   needs:
536     job: amd64-fedora-container
537   variables:
538     IMAGE: fedora
539   script:
540     - mkdir build-oss-fuzz
541     - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address"
542       ./scripts/oss-fuzz/build.sh
543     - export ASAN_OPTIONS="fast_unwind_on_malloc=0"
544     - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f
545                       | grep -v slirp); do
546         grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ;
547         echo Testing ${fuzzer} ... ;
548         "${fuzzer}" -runs=1 -seed=1 || exit 1 ;
549       done
550     # Unrelated to fuzzer: run some tests with -fsanitize=address
551     - cd build-oss-fuzz && make check-qtest-i386 check-unit
553 build-tci:
554   <<: *native_build_job_definition
555   needs:
556     job: amd64-debian-user-cross-container
557   variables:
558     IMAGE: debian-all-test-cross
559   script:
560     - TARGETS="aarch64 alpha arm hppa m68k microblaze moxie ppc64 s390x x86_64"
561     - mkdir build
562     - cd build
563     - ../configure --enable-tcg-interpreter
564         --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" || { cat config.log meson-logs/meson-log.txt && exit 1; }
565     - make -j"$JOBS"
566     - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test
567     - for tg in $TARGETS ; do
568         export QTEST_QEMU_BINARY="./qemu-system-${tg}" ;
569         ./tests/qtest/boot-serial-test || exit 1 ;
570         ./tests/qtest/cdrom-test || exit 1 ;
571       done
572     - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test
573     - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow
574     - make check-tcg
576 # Alternate coroutines implementations are only really of interest to KVM users
577 # However we can't test against KVM on Gitlab-CI so we can only run unit tests
578 build-coroutine-ucontext:
579   <<: *native_build_job_definition
580   needs:
581     job: amd64-ubuntu2004-container
582   variables:
583     IMAGE: ubuntu2004
584     CONFIGURE_ARGS: --with-coroutine=ucontext --disable-tcg
585     MAKE_CHECK_ARGS: check-unit
587 build-coroutine-sigaltstack:
588   <<: *native_build_job_definition
589   needs:
590     job: amd64-ubuntu2004-container
591   variables:
592     IMAGE: ubuntu2004
593     CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg
594     MAKE_CHECK_ARGS: check-unit
596 # Most jobs test latest gcrypt or nettle builds
598 # These jobs test old gcrypt and nettle from RHEL7
599 # which had some API differences.
600 build-crypto-old-nettle:
601   <<: *native_build_job_definition
602   needs:
603     job: amd64-centos7-container
604   variables:
605     IMAGE: centos7
606     TARGETS: x86_64-softmmu x86_64-linux-user
607     CONFIGURE_ARGS: --disable-gcrypt --enable-nettle
608     MAKE_CHECK_ARGS: check-build
609   artifacts:
610     paths:
611       - build
613 check-crypto-old-nettle:
614   <<: *native_test_job_definition
615   needs:
616     - job: build-crypto-old-nettle
617       artifacts: true
618   variables:
619     IMAGE: centos7
620     MAKE_CHECK_ARGS: check
623 build-crypto-old-gcrypt:
624   <<: *native_build_job_definition
625   needs:
626     job: amd64-centos7-container
627   variables:
628     IMAGE: centos7
629     TARGETS: x86_64-softmmu x86_64-linux-user
630     CONFIGURE_ARGS: --disable-nettle --enable-gcrypt
631     MAKE_CHECK_ARGS: check-build
632   artifacts:
633     paths:
634       - build
636 check-crypto-old-gcrypt:
637   <<: *native_test_job_definition
638   needs:
639     - job: build-crypto-old-gcrypt
640       artifacts: true
641   variables:
642     IMAGE: centos7
643     MAKE_CHECK_ARGS: check
646 build-crypto-only-gnutls:
647   <<: *native_build_job_definition
648   needs:
649     job: amd64-centos7-container
650   variables:
651     IMAGE: centos7
652     TARGETS: x86_64-softmmu x86_64-linux-user
653     CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls
654     MAKE_CHECK_ARGS: check-build
655   artifacts:
656     paths:
657       - build
659 check-crypto-only-gnutls:
660   <<: *native_test_job_definition
661   needs:
662     - job: build-crypto-only-gnutls
663       artifacts: true
664   variables:
665     IMAGE: centos7
666     MAKE_CHECK_ARGS: check
668 # We don't need to exercise every backend with every front-end
669 build-trace-multi-user:
670   <<: *native_build_job_definition
671   needs:
672     job: amd64-ubuntu2004-container
673   variables:
674     IMAGE: ubuntu2004
675     CONFIGURE_ARGS: --enable-trace-backends=log,simple,syslog --disable-system
677 build-trace-ftrace-system:
678   <<: *native_build_job_definition
679   needs:
680     job: amd64-ubuntu2004-container
681   variables:
682     IMAGE: ubuntu2004
683     CONFIGURE_ARGS: --enable-trace-backends=ftrace --target-list=x86_64-softmmu
685 build-trace-ust-system:
686   <<: *native_build_job_definition
687   needs:
688     job: amd64-ubuntu2004-container
689   variables:
690     IMAGE: ubuntu2004
691     CONFIGURE_ARGS: --enable-trace-backends=ust --target-list=x86_64-softmmu
693 # Check our reduced build configurations
694 build-without-default-devices:
695   <<: *native_build_job_definition
696   needs:
697     job: amd64-centos8-container
698   variables:
699     IMAGE: centos8
700     CONFIGURE_ARGS: --without-default-devices --disable-user
702 build-without-default-features:
703   <<: *native_build_job_definition
704   needs:
705     job: amd64-debian-container
706   variables:
707     IMAGE: debian-amd64
708     CONFIGURE_ARGS: --without-default-features --disable-user
709         --target-list-exclude=arm-softmmu,i386-softmmu,mipsel-softmmu,mips64-softmmu,ppc-softmmu
710     MAKE_CHECK_ARGS: check-unit
712 check-patch:
713   stage: build
714   image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
715   needs:
716     job: amd64-centos8-container
717   script: .gitlab-ci.d/check-patch.py
718   except:
719     variables:
720       - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
721   variables:
722     GIT_DEPTH: 1000
723   allow_failure: true
725 check-dco:
726   stage: build
727   image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
728   needs:
729     job: amd64-centos8-container
730   script: .gitlab-ci.d/check-dco.py
731   except:
732     variables:
733       - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
734   variables:
735     GIT_DEPTH: 1000
737 build-libvhost-user:
738   stage: build
739   image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
740   needs:
741     job: amd64-fedora-container
742   before_script:
743     - dnf install -y meson ninja-build
744   script:
745     - mkdir subprojects/libvhost-user/build
746     - cd subprojects/libvhost-user/build
747     - meson
748     - ninja
750 # Prepare for GitLab pages deployment. Anything copied into the
751 # "public" directory will be deployed to $USER.gitlab.io/$PROJECT
752 pages:
753   image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:latest
754   stage: test
755   needs:
756     - job: build-tools-and-docs-debian
757   script:
758     - mkdir -p public
759     # HTML-ised source tree
760     - make gtags
761     - htags -anT --tree-view=filetree -m qemu_init
762         -t "Welcome to the QEMU sourcecode"
763     - mv HTML public/src
764     # Project documentation
765     - make -C build install DESTDIR=$(pwd)/temp-install
766     - mv temp-install/usr/local/share/doc/qemu/* public/
767   artifacts:
768     paths:
769       - public