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