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