gitlab: Drop linux user build job for CentOS 7
[qemu/ar7.git] / .gitlab-ci.yml
blob09ac74fc5091bd54c3af6ad515d1deef438e24b9
1 include:
2   - local: '/.gitlab-ci.d/stages.yml'
3   - local: '/.gitlab-ci.d/edk2.yml'
4   - local: '/.gitlab-ci.d/opensbi.yml'
5   - local: '/.gitlab-ci.d/containers.yml'
6   - local: '/.gitlab-ci.d/crossbuilds.yml'
7   - local: '/.gitlab-ci.d/buildtest-template.yml'
8   - local: '/.gitlab-ci.d/static_checks.yml'
10 build-system-alpine:
11   extends: .native_build_job_template
12   needs:
13     - job: amd64-alpine-container
14   variables:
15     IMAGE: alpine
16     TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
17       microblazeel-softmmu mips64el-softmmu
18     MAKE_CHECK_ARGS: check-build
19     CONFIGURE_ARGS: --enable-docs --enable-trace-backends=log,simple,syslog
20   artifacts:
21     expire_in: 2 days
22     paths:
23       - .git-submodule-status
24       - build
26 check-system-alpine:
27   extends: .native_test_job_template
28   needs:
29     - job: build-system-alpine
30       artifacts: true
31   variables:
32     IMAGE: alpine
33     MAKE_CHECK_ARGS: check
35 acceptance-system-alpine:
36   extends: .acceptance_test_job_template
37   needs:
38     - job: build-system-alpine
39       artifacts: true
40   variables:
41     IMAGE: alpine
42     MAKE_CHECK_ARGS: check-acceptance
44 build-system-ubuntu:
45   extends: .native_build_job_template
46   needs:
47     job: amd64-ubuntu2004-container
48   variables:
49     IMAGE: ubuntu2004
50     CONFIGURE_ARGS: --enable-docs --enable-fdt=system --enable-slirp=system
51     TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
52       microblazeel-softmmu mips64el-softmmu
53     MAKE_CHECK_ARGS: check-build
54   artifacts:
55     expire_in: 2 days
56     paths:
57       - build
59 check-system-ubuntu:
60   extends: .native_test_job_template
61   needs:
62     - job: build-system-ubuntu
63       artifacts: true
64   variables:
65     IMAGE: ubuntu2004
66     MAKE_CHECK_ARGS: check
68 acceptance-system-ubuntu:
69   extends: .acceptance_test_job_template
70   needs:
71     - job: build-system-ubuntu
72       artifacts: true
73   variables:
74     IMAGE: ubuntu2004
75     MAKE_CHECK_ARGS: check-acceptance
77 build-system-debian:
78   extends: .native_build_job_template
79   needs:
80     job: amd64-debian-container
81   variables:
82     IMAGE: debian-amd64
83     CONFIGURE_ARGS: --enable-fdt=system
84     TARGETS: arm-softmmu avr-softmmu i386-softmmu mipsel-softmmu
85       riscv64-softmmu sh4eb-softmmu sparc-softmmu xtensaeb-softmmu
86     MAKE_CHECK_ARGS: check-build
87   artifacts:
88     expire_in: 2 days
89     paths:
90       - build
92 check-system-debian:
93   extends: .native_test_job_template
94   needs:
95     - job: build-system-debian
96       artifacts: true
97   variables:
98     IMAGE: debian-amd64
99     MAKE_CHECK_ARGS: check
101 acceptance-system-debian:
102   extends: .acceptance_test_job_template
103   needs:
104     - job: build-system-debian
105       artifacts: true
106   variables:
107     IMAGE: debian-amd64
108     MAKE_CHECK_ARGS: check-acceptance
110 build-system-fedora:
111   extends: .native_build_job_template
112   needs:
113     job: amd64-fedora-container
114   variables:
115     IMAGE: fedora
116     CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
117              --enable-fdt=system --enable-slirp=system --enable-capstone=system
118     TARGETS: tricore-softmmu microblaze-softmmu mips-softmmu
119       xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
120     MAKE_CHECK_ARGS: check-build
121   artifacts:
122     expire_in: 2 days
123     paths:
124       - build
126 check-system-fedora:
127   extends: .native_test_job_template
128   needs:
129     - job: build-system-fedora
130       artifacts: true
131   variables:
132     IMAGE: fedora
133     MAKE_CHECK_ARGS: check
135 acceptance-system-fedora:
136   extends: .acceptance_test_job_template
137   needs:
138     - job: build-system-fedora
139       artifacts: true
140   variables:
141     IMAGE: fedora
142     MAKE_CHECK_ARGS: check-acceptance
144 build-system-centos:
145   extends: .native_build_job_template
146   needs:
147     job: amd64-centos8-container
148   variables:
149     IMAGE: centos8
150     CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-fdt=system
151                     --enable-modules --enable-trace-backends=dtrace
152     TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu
153       x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu
154     MAKE_CHECK_ARGS: check-build
155   artifacts:
156     expire_in: 2 days
157     paths:
158       - build
160 check-system-centos:
161   extends: .native_test_job_template
162   needs:
163     - job: build-system-centos
164       artifacts: true
165   variables:
166     IMAGE: centos8
167     MAKE_CHECK_ARGS: check
169 acceptance-system-centos:
170   extends: .acceptance_test_job_template
171   needs:
172     - job: build-system-centos
173       artifacts: true
174   variables:
175     IMAGE: centos8
176     MAKE_CHECK_ARGS: check-acceptance
178 build-system-opensuse:
179   extends: .native_build_job_template
180   needs:
181     job: amd64-opensuse-leap-container
182   variables:
183     IMAGE: opensuse-leap
184     CONFIGURE_ARGS: --enable-fdt=system
185     TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
186     MAKE_CHECK_ARGS: check-build
187   artifacts:
188     expire_in: 2 days
189     paths:
190       - build
192 check-system-opensuse:
193   extends: .native_test_job_template
194   needs:
195     - job: build-system-opensuse
196       artifacts: true
197   variables:
198     IMAGE: opensuse-leap
199     MAKE_CHECK_ARGS: check
201 acceptance-system-opensuse:
202   extends: .acceptance_test_job_template
203   needs:
204     - job: build-system-opensuse
205       artifacts: true
206   variables:
207     IMAGE: opensuse-leap
208     MAKE_CHECK_ARGS: check-acceptance
211 build-disabled:
212   extends: .native_build_job_template
213   needs:
214     job: amd64-fedora-container
215   variables:
216     IMAGE: fedora
217     CONFIGURE_ARGS:
218       --disable-attr
219       --disable-auth-pam
220       --disable-avx2
221       --disable-bochs
222       --disable-brlapi
223       --disable-bzip2
224       --disable-cap-ng
225       --disable-capstone
226       --disable-cloop
227       --disable-coroutine-pool
228       --disable-curl
229       --disable-curses
230       --disable-dmg
231       --disable-docs
232       --disable-gcrypt
233       --disable-glusterfs
234       --disable-gnutls
235       --disable-gtk
236       --disable-guest-agent
237       --disable-iconv
238       --disable-keyring
239       --disable-kvm
240       --disable-libiscsi
241       --disable-libpmem
242       --disable-libssh
243       --disable-libudev
244       --disable-libusb
245       --disable-libxml2
246       --disable-linux-aio
247       --disable-live-block-migration
248       --disable-lzo
249       --disable-malloc-trim
250       --disable-mpath
251       --disable-nettle
252       --disable-numa
253       --disable-opengl
254       --disable-parallels
255       --disable-pie
256       --disable-qcow1
257       --disable-qed
258       --disable-qom-cast-debug
259       --disable-rbd
260       --disable-rdma
261       --disable-replication
262       --disable-sdl
263       --disable-seccomp
264       --disable-slirp
265       --disable-smartcard
266       --disable-snappy
267       --disable-sparse
268       --disable-spice
269       --disable-strip
270       --disable-tpm
271       --disable-usb-redir
272       --disable-vdi
273       --disable-vhost-crypto
274       --disable-vhost-net
275       --disable-vhost-scsi
276       --disable-vhost-kernel
277       --disable-vhost-user
278       --disable-vhost-vdpa
279       --disable-vhost-vsock
280       --disable-virglrenderer
281       --disable-vnc
282       --disable-vte
283       --disable-vvfat
284       --disable-xen
285       --disable-zstd
286     TARGETS: arm-softmmu i386-softmmu ppc64-softmmu mips64-softmmu
287       s390x-softmmu i386-linux-user
288     MAKE_CHECK_ARGS: check-qtest SPEED=slow
290 # This jobs explicitly disable TCG (--disable-tcg), KVM is detected by
291 # the configure script. The container doesn't contain Xen headers so
292 # Xen accelerator is not detected / selected. As result it build the
293 # i386-softmmu and x86_64-softmmu with KVM being the single accelerator
294 # available.
295 # Also use a different coroutine implementation (which is only really of
296 # interest to KVM users, i.e. with TCG disabled)
297 build-tcg-disabled:
298   extends: .native_build_job_template
299   needs:
300     job: amd64-centos8-container
301   variables:
302     IMAGE: centos8
303   script:
304     - mkdir build
305     - cd build
306     - ../configure --disable-tcg --audio-drv-list="" --with-coroutine=ucontext
307       || { cat config.log meson-logs/meson-log.txt && exit 1; }
308     - make -j"$JOBS"
309     - make check-unit
310     - make check-qapi-schema
311     - cd tests/qemu-iotests/
312     - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048
313             052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163
314             170 171 183 184 192 194 197 208 215 221 222 226 227 236 253 277
315     - ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122
316             124 132 139 142 144 145 151 152 155 157 165 194 196 197 200 202
317             208 209 215 216 218 222 227 234 246 247 248 250 254 255 257 258
318             260 261 262 263 264 270 272 273 277 279
320 build-user:
321   extends: .native_build_job_template
322   needs:
323     job: amd64-debian-user-cross-container
324   variables:
325     IMAGE: debian-all-test-cross
326     CONFIGURE_ARGS: --disable-tools --disable-system
327     MAKE_CHECK_ARGS: check-tcg
329 build-user-static:
330   extends: .native_build_job_template
331   needs:
332     job: amd64-debian-user-cross-container
333   variables:
334     IMAGE: debian-all-test-cross
335     CONFIGURE_ARGS: --disable-tools --disable-system --static
336     MAKE_CHECK_ARGS: check-tcg
338 # Because the hexagon cross-compiler takes so long to build we don't rely
339 # on the CI system to build it and hence this job has an optional dependency
340 # declared. The image is manually uploaded.
341 build-user-hexagon:
342   extends: .native_build_job_template
343   needs:
344     job: hexagon-cross-container
345     optional: true
346   variables:
347     IMAGE: debian-hexagon-cross
348     TARGETS: hexagon-linux-user
349     CONFIGURE_ARGS: --disable-tools --disable-docs --enable-debug-tcg
350     MAKE_CHECK_ARGS: check-tcg
352 # Only build the softmmu targets we have check-tcg tests for
353 build-some-softmmu:
354   extends: .native_build_job_template
355   needs:
356     job: amd64-debian-user-cross-container
357   variables:
358     IMAGE: debian-all-test-cross
359     CONFIGURE_ARGS: --disable-tools --enable-debug
360     TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
361     MAKE_CHECK_ARGS: check-tcg
363 # Run check-tcg against linux-user (with plugins)
364 # we skip sparc64-linux-user until it has been fixed somewhat
365 # we skip cris-linux-user as it doesn't use the common run loop
366 build-user-plugins:
367   extends: .native_build_job_template
368   needs:
369     job: amd64-debian-user-cross-container
370   variables:
371     IMAGE: debian-all-test-cross
372     CONFIGURE_ARGS: --disable-tools --disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user,cris-linux-user
373     MAKE_CHECK_ARGS: check-tcg
374   timeout: 1h 30m
376 build-some-softmmu-plugins:
377   extends: .native_build_job_template
378   needs:
379     job: amd64-debian-user-cross-container
380   variables:
381     IMAGE: debian-all-test-cross
382     CONFIGURE_ARGS: --disable-tools --disable-user --enable-plugins --enable-debug-tcg
383     TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
384     MAKE_CHECK_ARGS: check-tcg
386 clang-system:
387   extends: .native_build_job_template
388   needs:
389     job: amd64-fedora-container
390   variables:
391     IMAGE: fedora
392     CONFIGURE_ARGS: --cc=clang --cxx=clang++
393       --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
394     TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu
395       ppc-softmmu s390x-softmmu
396     MAKE_CHECK_ARGS: check-qtest check-tcg
398 clang-user:
399   extends: .native_build_job_template
400   needs:
401     job: amd64-debian-user-cross-container
402   variables:
403     IMAGE: debian-all-test-cross
404     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system
405       --target-list-exclude=microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user
406       --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
407     MAKE_CHECK_ARGS: check-unit check-tcg
409 # Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory.
410 # On gitlab runners, default value sometimes end up calling 2 lds concurrently and
411 # triggers an Out-Of-Memory error
413 # Since slirp callbacks are used in QEMU Timers, slirp needs to be compiled together
414 # with QEMU and linked as a static library to avoid false positives in CFI checks.
415 # This can be accomplished by using -enable-slirp=git, which avoids the use of
416 # a system-wide version of the library
418 # Split in three sets of build/check/acceptance to limit the execution time of each
419 # job
420 build-cfi-aarch64:
421   extends: .native_build_job_template
422   needs:
423   - job: amd64-fedora-container
424   variables:
425     LD_JOBS: 1
426     AR: llvm-ar
427     IMAGE: fedora
428     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
429       --enable-safe-stack --enable-slirp=git
430     TARGETS: aarch64-softmmu
431     MAKE_CHECK_ARGS: check-build
432   timeout: 70m
433   artifacts:
434     expire_in: 2 days
435     paths:
436       - build
438 check-cfi-aarch64:
439   extends: .native_test_job_template
440   needs:
441     - job: build-cfi-aarch64
442       artifacts: true
443   variables:
444     IMAGE: fedora
445     MAKE_CHECK_ARGS: check
447 acceptance-cfi-aarch64:
448   extends: .acceptance_test_job_template
449   needs:
450     - job: build-cfi-aarch64
451       artifacts: true
452   variables:
453     IMAGE: fedora
454     MAKE_CHECK_ARGS: check-acceptance
456 build-cfi-ppc64-s390x:
457   extends: .native_build_job_template
458   needs:
459   - job: amd64-fedora-container
460   variables:
461     LD_JOBS: 1
462     AR: llvm-ar
463     IMAGE: fedora
464     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
465       --enable-safe-stack --enable-slirp=git
466     TARGETS: ppc64-softmmu s390x-softmmu
467     MAKE_CHECK_ARGS: check-build
468   timeout: 70m
469   artifacts:
470     expire_in: 2 days
471     paths:
472       - build
474 check-cfi-ppc64-s390x:
475   extends: .native_test_job_template
476   needs:
477     - job: build-cfi-ppc64-s390x
478       artifacts: true
479   variables:
480     IMAGE: fedora
481     MAKE_CHECK_ARGS: check
483 acceptance-cfi-ppc64-s390x:
484   extends: .acceptance_test_job_template
485   needs:
486     - job: build-cfi-ppc64-s390x
487       artifacts: true
488   variables:
489     IMAGE: fedora
490     MAKE_CHECK_ARGS: check-acceptance
492 build-cfi-x86_64:
493   extends: .native_build_job_template
494   needs:
495   - job: amd64-fedora-container
496   variables:
497     LD_JOBS: 1
498     AR: llvm-ar
499     IMAGE: fedora
500     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
501       --enable-safe-stack --enable-slirp=git
502     TARGETS: x86_64-softmmu
503     MAKE_CHECK_ARGS: check-build
504   timeout: 70m
505   artifacts:
506     expire_in: 2 days
507     paths:
508       - build
510 check-cfi-x86_64:
511   extends: .native_test_job_template
512   needs:
513     - job: build-cfi-x86_64
514       artifacts: true
515   variables:
516     IMAGE: fedora
517     MAKE_CHECK_ARGS: check
519 acceptance-cfi-x86_64:
520   extends: .acceptance_test_job_template
521   needs:
522     - job: build-cfi-x86_64
523       artifacts: true
524   variables:
525     IMAGE: fedora
526     MAKE_CHECK_ARGS: check-acceptance
528 tsan-build:
529   extends: .native_build_job_template
530   needs:
531     job: amd64-ubuntu2004-container
532   variables:
533     IMAGE: ubuntu2004
534     CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10
535           --enable-trace-backends=ust --enable-fdt=system --enable-slirp=system
536     TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
537     MAKE_CHECK_ARGS: bench V=1
539 # These targets are on the way out
540 build-deprecated:
541   extends: .native_build_job_template
542   needs:
543     job: amd64-debian-user-cross-container
544   variables:
545     IMAGE: debian-all-test-cross
546     CONFIGURE_ARGS: --disable-tools
547     MAKE_CHECK_ARGS: build-tcg
548     TARGETS: ppc64abi32-linux-user
549   artifacts:
550     expire_in: 2 days
551     paths:
552       - build
554 # We split the check-tcg step as test failures are expected but we still
555 # want to catch the build breaking.
556 check-deprecated:
557   extends: .native_test_job_template
558   needs:
559     - job: build-deprecated
560       artifacts: true
561   variables:
562     IMAGE: debian-all-test-cross
563     MAKE_CHECK_ARGS: check-tcg
564   allow_failure: true
566 # gprof/gcov are GCC features
567 gprof-gcov:
568   extends: .native_build_job_template
569   needs:
570     job: amd64-ubuntu2004-container
571   variables:
572     IMAGE: ubuntu2004
573     CONFIGURE_ARGS: --enable-gprof --enable-gcov
574     MAKE_CHECK_ARGS: check
575     TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
576   timeout: 70m
577   after_script:
578     - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh
580 build-oss-fuzz:
581   extends: .native_build_job_template
582   needs:
583     job: amd64-fedora-container
584   variables:
585     IMAGE: fedora
586   script:
587     - mkdir build-oss-fuzz
588     - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address"
589       ./scripts/oss-fuzz/build.sh
590     - export ASAN_OPTIONS="fast_unwind_on_malloc=0"
591     - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f
592                       | grep -v slirp); do
593         grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ;
594         echo Testing ${fuzzer} ... ;
595         "${fuzzer}" -runs=1 -seed=1 || exit 1 ;
596       done
597     # Unrelated to fuzzer: run some tests with -fsanitize=address
598     - cd build-oss-fuzz && make check-qtest-i386 check-unit
600 build-tci:
601   extends: .native_build_job_template
602   needs:
603     job: amd64-debian-user-cross-container
604   variables:
605     IMAGE: debian-all-test-cross
606   script:
607     - TARGETS="aarch64 alpha arm hppa m68k microblaze ppc64 s390x x86_64"
608     - mkdir build
609     - cd build
610     - ../configure --enable-tcg-interpreter
611         --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" || { cat config.log meson-logs/meson-log.txt && exit 1; }
612     - make -j"$JOBS"
613     - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test
614     - for tg in $TARGETS ; do
615         export QTEST_QEMU_BINARY="./qemu-system-${tg}" ;
616         ./tests/qtest/boot-serial-test || exit 1 ;
617         ./tests/qtest/cdrom-test || exit 1 ;
618       done
619     - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test
620     - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow
621     - make check-tcg
623 # Alternate coroutines implementations are only really of interest to KVM users
624 # However we can't test against KVM on Gitlab-CI so we can only run unit tests
625 build-coroutine-sigaltstack:
626   extends: .native_build_job_template
627   needs:
628     job: amd64-ubuntu2004-container
629   variables:
630     IMAGE: ubuntu2004
631     CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg
632                     --enable-trace-backends=ftrace
633     MAKE_CHECK_ARGS: check-unit
635 # Most jobs test latest gcrypt or nettle builds
637 # These jobs test old gcrypt and nettle from RHEL7
638 # which had some API differences.
639 crypto-old-nettle:
640   extends: .native_build_job_template
641   needs:
642     job: amd64-centos7-container
643   variables:
644     IMAGE: centos7
645     TARGETS: x86_64-softmmu x86_64-linux-user
646     CONFIGURE_ARGS: --disable-gcrypt --enable-nettle
647     MAKE_CHECK_ARGS: check
649 crypto-old-gcrypt:
650   extends: .native_build_job_template
651   needs:
652     job: amd64-centos7-container
653   variables:
654     IMAGE: centos7
655     TARGETS: x86_64-softmmu x86_64-linux-user
656     CONFIGURE_ARGS: --disable-nettle --enable-gcrypt
657     MAKE_CHECK_ARGS: check
659 crypto-only-gnutls:
660   extends: .native_build_job_template
661   needs:
662     job: amd64-centos7-container
663   variables:
664     IMAGE: centos7
665     TARGETS: x86_64-softmmu x86_64-linux-user
666     CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls
667     MAKE_CHECK_ARGS: check
670 # Check our reduced build configurations
671 build-without-default-devices:
672   extends: .native_build_job_template
673   needs:
674     job: amd64-centos8-container
675   variables:
676     IMAGE: centos8
677     CONFIGURE_ARGS: --without-default-devices --disable-user
679 build-without-default-features:
680   extends: .native_build_job_template
681   needs:
682     job: amd64-debian-container
683   variables:
684     IMAGE: debian-amd64
685     CONFIGURE_ARGS: --without-default-features --disable-user
686         --target-list-exclude=arm-softmmu,i386-softmmu,mipsel-softmmu,mips64-softmmu,ppc-softmmu
687     MAKE_CHECK_ARGS: check-unit
689 build-libvhost-user:
690   stage: build
691   image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
692   needs:
693     job: amd64-fedora-container
694   before_script:
695     - dnf install -y meson ninja-build
696   script:
697     - mkdir subprojects/libvhost-user/build
698     - cd subprojects/libvhost-user/build
699     - meson
700     - ninja
702 # No targets are built here, just tools, docs, and unit tests. This
703 # also feeds into the eventual documentation deployment steps later
704 build-tools-and-docs-debian:
705   extends: .native_build_job_template
706   needs:
707     job: amd64-debian-container
708   variables:
709     IMAGE: debian-amd64
710     MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope
711     CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
712   artifacts:
713     expire_in: 2 days
714     paths:
715       - build
717 # Prepare for GitLab pages deployment. Anything copied into the
718 # "public" directory will be deployed to $USER.gitlab.io/$PROJECT
719 pages:
720   image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:latest
721   stage: test
722   needs:
723     - job: build-tools-and-docs-debian
724   script:
725     - mkdir -p public
726     # HTML-ised source tree
727     - make gtags
728     - htags -anT --tree-view=filetree -m qemu_init
729         -t "Welcome to the QEMU sourcecode"
730     - mv HTML public/src
731     # Project documentation
732     - make -C build install DESTDIR=$(pwd)/temp-install
733     - mv temp-install/usr/local/share/doc/qemu/* public/
734   artifacts:
735     paths:
736       - public