Merge remote-tracking branch 'remotes/dgilbert-gitlab/tags/pull-migration-20210726a...
[qemu/armbru.git] / .gitlab-ci.d / buildtest.yml
blobee0c83b6004011e5bfffa3f378d3dc5c2b5a28de
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 197 208 215 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 197 200 202
311             208 209 215 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
420 check-cfi-aarch64:
421   extends: .native_test_job_template
422   needs:
423     - job: build-cfi-aarch64
424       artifacts: true
425   variables:
426     IMAGE: fedora
427     MAKE_CHECK_ARGS: check
429 acceptance-cfi-aarch64:
430   extends: .acceptance_test_job_template
431   needs:
432     - job: build-cfi-aarch64
433       artifacts: true
434   variables:
435     IMAGE: fedora
436     MAKE_CHECK_ARGS: check-acceptance
438 build-cfi-ppc64-s390x:
439   extends: .native_build_job_template
440   needs:
441   - job: amd64-fedora-container
442   variables:
443     LD_JOBS: 1
444     AR: llvm-ar
445     IMAGE: fedora
446     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
447       --enable-safe-stack --enable-slirp=git
448     TARGETS: ppc64-softmmu s390x-softmmu
449     MAKE_CHECK_ARGS: check-build
450   timeout: 70m
451   artifacts:
452     expire_in: 2 days
453     paths:
454       - build
456 check-cfi-ppc64-s390x:
457   extends: .native_test_job_template
458   needs:
459     - job: build-cfi-ppc64-s390x
460       artifacts: true
461   variables:
462     IMAGE: fedora
463     MAKE_CHECK_ARGS: check
465 acceptance-cfi-ppc64-s390x:
466   extends: .acceptance_test_job_template
467   needs:
468     - job: build-cfi-ppc64-s390x
469       artifacts: true
470   variables:
471     IMAGE: fedora
472     MAKE_CHECK_ARGS: check-acceptance
474 build-cfi-x86_64:
475   extends: .native_build_job_template
476   needs:
477   - job: amd64-fedora-container
478   variables:
479     LD_JOBS: 1
480     AR: llvm-ar
481     IMAGE: fedora
482     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
483       --enable-safe-stack --enable-slirp=git
484     TARGETS: x86_64-softmmu
485     MAKE_CHECK_ARGS: check-build
486   timeout: 70m
487   artifacts:
488     expire_in: 2 days
489     paths:
490       - build
492 check-cfi-x86_64:
493   extends: .native_test_job_template
494   needs:
495     - job: build-cfi-x86_64
496       artifacts: true
497   variables:
498     IMAGE: fedora
499     MAKE_CHECK_ARGS: check
501 acceptance-cfi-x86_64:
502   extends: .acceptance_test_job_template
503   needs:
504     - job: build-cfi-x86_64
505       artifacts: true
506   variables:
507     IMAGE: fedora
508     MAKE_CHECK_ARGS: check-acceptance
510 tsan-build:
511   extends: .native_build_job_template
512   needs:
513     job: amd64-ubuntu2004-container
514   variables:
515     IMAGE: ubuntu2004
516     CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10
517           --enable-trace-backends=ust --enable-fdt=system --enable-slirp=system
518     TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
519     MAKE_CHECK_ARGS: bench V=1
521 # These targets are on the way out
522 build-deprecated:
523   extends: .native_build_job_template
524   needs:
525     job: amd64-debian-user-cross-container
526   variables:
527     IMAGE: debian-all-test-cross
528     CONFIGURE_ARGS: --disable-tools
529     MAKE_CHECK_ARGS: build-tcg
530     TARGETS: ppc64abi32-linux-user
531   artifacts:
532     expire_in: 2 days
533     paths:
534       - build
536 # We split the check-tcg step as test failures are expected but we still
537 # want to catch the build breaking.
538 check-deprecated:
539   extends: .native_test_job_template
540   needs:
541     - job: build-deprecated
542       artifacts: true
543   variables:
544     IMAGE: debian-all-test-cross
545     MAKE_CHECK_ARGS: check-tcg
546   allow_failure: true
548 # gprof/gcov are GCC features
549 build-gprof-gcov:
550   extends: .native_build_job_template
551   needs:
552     job: amd64-ubuntu2004-container
553   variables:
554     IMAGE: ubuntu2004
555     CONFIGURE_ARGS: --enable-gprof --enable-gcov
556     TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
557   artifacts:
558     expire_in: 1 days
559     paths:
560       - build
562 check-gprof-gcov:
563   extends: .native_test_job_template
564   needs:
565     - job: build-gprof-gcov
566       artifacts: true
567   variables:
568     IMAGE: ubuntu2004
569     MAKE_CHECK_ARGS: check
570   after_script:
571     - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh
573 build-oss-fuzz:
574   extends: .native_build_job_template
575   needs:
576     job: amd64-fedora-container
577   variables:
578     IMAGE: fedora
579   script:
580     - mkdir build-oss-fuzz
581     - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address"
582       ./scripts/oss-fuzz/build.sh
583     - export ASAN_OPTIONS="fast_unwind_on_malloc=0"
584     - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f
585                       | grep -v slirp); do
586         grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ;
587         echo Testing ${fuzzer} ... ;
588         "${fuzzer}" -runs=1 -seed=1 || exit 1 ;
589       done
590     # Unrelated to fuzzer: run some tests with -fsanitize=address
591     - cd build-oss-fuzz && make check-qtest-i386 check-unit
593 build-tci:
594   extends: .native_build_job_template
595   needs:
596     job: amd64-debian-user-cross-container
597   variables:
598     IMAGE: debian-all-test-cross
599   script:
600     - TARGETS="aarch64 alpha arm hppa m68k microblaze ppc64 s390x x86_64"
601     - mkdir build
602     - cd build
603     - ../configure --enable-tcg-interpreter
604         --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" || { cat config.log meson-logs/meson-log.txt && exit 1; }
605     - make -j"$JOBS"
606     - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test
607     - for tg in $TARGETS ; do
608         export QTEST_QEMU_BINARY="./qemu-system-${tg}" ;
609         ./tests/qtest/boot-serial-test || exit 1 ;
610         ./tests/qtest/cdrom-test || exit 1 ;
611       done
612     - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test
613     - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow
614     - make check-tcg
616 # Alternate coroutines implementations are only really of interest to KVM users
617 # However we can't test against KVM on Gitlab-CI so we can only run unit tests
618 build-coroutine-sigaltstack:
619   extends: .native_build_job_template
620   needs:
621     job: amd64-ubuntu2004-container
622   variables:
623     IMAGE: ubuntu2004
624     CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg
625                     --enable-trace-backends=ftrace
626     MAKE_CHECK_ARGS: check-unit
628 # Check our reduced build configurations
629 build-without-default-devices:
630   extends: .native_build_job_template
631   needs:
632     job: amd64-centos8-container
633   variables:
634     IMAGE: centos8
635     CONFIGURE_ARGS: --without-default-devices --disable-user
637 build-without-default-features:
638   extends: .native_build_job_template
639   needs:
640     job: amd64-debian-container
641   variables:
642     IMAGE: debian-amd64
643     CONFIGURE_ARGS: --without-default-features --disable-user
644         --target-list-exclude=arm-softmmu,i386-softmmu,mipsel-softmmu,mips64-softmmu,ppc-softmmu
645     MAKE_CHECK_ARGS: check-unit
647 build-libvhost-user:
648   stage: build
649   image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
650   needs:
651     job: amd64-fedora-container
652   before_script:
653     - dnf install -y meson ninja-build
654   script:
655     - mkdir subprojects/libvhost-user/build
656     - cd subprojects/libvhost-user/build
657     - meson
658     - ninja
660 # No targets are built here, just tools, docs, and unit tests. This
661 # also feeds into the eventual documentation deployment steps later
662 build-tools-and-docs-debian:
663   extends: .native_build_job_template
664   needs:
665     job: amd64-debian-container
666   variables:
667     IMAGE: debian-amd64
668     MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope
669     CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
670   artifacts:
671     expire_in: 2 days
672     paths:
673       - build
675 # Prepare for GitLab pages deployment. Anything copied into the
676 # "public" directory will be deployed to $USER.gitlab.io/$PROJECT
678 # GitLab publishes from any branch that triggers a CI pipeline
680 # For the main repo we don't want to publish from 'staging'
681 # since that content may not be pushed, nor do we wish to
682 # publish from 'stable-NNN' branches as that content is outdated.
683 # Thus we restrict to just the default branch
685 # For contributor forks we want to publish from any repo so
686 # that users can see the results of their commits, regardless
687 # of what topic branch they're currently using
688 pages:
689   image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:latest
690   stage: test
691   needs:
692     - job: build-tools-and-docs-debian
693   script:
694     - mkdir -p public
695     # HTML-ised source tree
696     - make gtags
697     - htags -anT --tree-view=filetree -m qemu_init
698         -t "Welcome to the QEMU sourcecode"
699     - mv HTML public/src
700     # Project documentation
701     - make -C build install DESTDIR=$(pwd)/temp-install
702     - mv temp-install/usr/local/share/doc/qemu/* public/
703   artifacts:
704     paths:
705       - public
706   rules:
707     - if: '$CI_PROJECT_NAMESPACE == "qemu-project" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
708       when: on_success
709     - if: '$CI_PROJECT_NAMESPACE == "qemu-project"'
710       when: never
711     - if: '$CI_PROJECT_NAMESPACE != "qemu-project"'
712       when: on_success