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