]> git.proxmox.com Git - mirror_qemu.git/blob - .gitlab-ci.d/buildtest.yml
cfe737aca261251764fb2311025bc4db68fd2c0a
[mirror_qemu.git] / .gitlab-ci.d / buildtest.yml
1 include:
2 - local: '/.gitlab-ci.d/buildtest-template.yml'
3
4 build-system-alpine:
5 extends:
6 - .native_build_job_template
7 - .native_build_artifact_template
8 needs:
9 - job: amd64-alpine-container
10 variables:
11 IMAGE: alpine
12 TARGETS: avr-softmmu loongarch64-softmmu mips64-softmmu mipsel-softmmu
13 MAKE_CHECK_ARGS: check-build
14 CONFIGURE_ARGS: --enable-docs --enable-trace-backends=log,simple,syslog
15
16 check-system-alpine:
17 extends: .native_test_job_template
18 needs:
19 - job: build-system-alpine
20 artifacts: true
21 variables:
22 IMAGE: alpine
23 MAKE_CHECK_ARGS: check-unit check-qtest
24
25 avocado-system-alpine:
26 extends: .avocado_test_job_template
27 needs:
28 - job: build-system-alpine
29 artifacts: true
30 variables:
31 IMAGE: alpine
32 MAKE_CHECK_ARGS: check-avocado
33 AVOCADO_TAGS: arch:avr arch:loongarch64 arch:mips64 arch:mipsel
34
35 build-system-ubuntu:
36 extends:
37 - .native_build_job_template
38 - .native_build_artifact_template
39 needs:
40 job: amd64-ubuntu2204-container
41 variables:
42 IMAGE: ubuntu2204
43 CONFIGURE_ARGS: --enable-docs
44 TARGETS: alpha-softmmu microblaze-softmmu mips64el-softmmu
45 MAKE_CHECK_ARGS: check-build
46
47 check-system-ubuntu:
48 extends: .native_test_job_template
49 needs:
50 - job: build-system-ubuntu
51 artifacts: true
52 variables:
53 IMAGE: ubuntu2204
54 MAKE_CHECK_ARGS: check
55
56 avocado-system-ubuntu:
57 extends: .avocado_test_job_template
58 needs:
59 - job: build-system-ubuntu
60 artifacts: true
61 variables:
62 IMAGE: ubuntu2204
63 MAKE_CHECK_ARGS: check-avocado
64 AVOCADO_TAGS: arch:alpha arch:microblaze arch:mips64el
65
66 build-system-debian:
67 extends:
68 - .native_build_job_template
69 - .native_build_artifact_template
70 needs:
71 job: amd64-debian-container
72 variables:
73 IMAGE: debian
74 CONFIGURE_ARGS: --with-coroutine=sigaltstack
75 TARGETS: arm-softmmu i386-softmmu riscv64-softmmu sh4eb-softmmu
76 sparc-softmmu xtensa-softmmu
77 MAKE_CHECK_ARGS: check-build
78
79 check-system-debian:
80 extends: .native_test_job_template
81 needs:
82 - job: build-system-debian
83 artifacts: true
84 variables:
85 IMAGE: debian
86 MAKE_CHECK_ARGS: check
87
88 avocado-system-debian:
89 extends: .avocado_test_job_template
90 needs:
91 - job: build-system-debian
92 artifacts: true
93 variables:
94 IMAGE: debian
95 MAKE_CHECK_ARGS: check-avocado
96 AVOCADO_TAGS: arch:arm arch:i386 arch:riscv64 arch:sh4 arch:sparc arch:xtensa
97
98 crash-test-debian:
99 extends: .native_test_job_template
100 needs:
101 - job: build-system-debian
102 artifacts: true
103 variables:
104 IMAGE: debian
105 script:
106 - cd build
107 - make NINJA=":" check-venv
108 - pyvenv/bin/python3 scripts/device-crash-test -q --tcg-only ./qemu-system-i386
109
110 build-system-fedora:
111 extends:
112 - .native_build_job_template
113 - .native_build_artifact_template
114 needs:
115 job: amd64-fedora-container
116 variables:
117 IMAGE: fedora
118 CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
119 TARGETS: microblaze-softmmu mips-softmmu
120 xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
121 MAKE_CHECK_ARGS: check-build
122
123 check-system-fedora:
124 extends: .native_test_job_template
125 needs:
126 - job: build-system-fedora
127 artifacts: true
128 variables:
129 IMAGE: fedora
130 MAKE_CHECK_ARGS: check
131
132 avocado-system-fedora:
133 extends: .avocado_test_job_template
134 needs:
135 - job: build-system-fedora
136 artifacts: true
137 variables:
138 IMAGE: fedora
139 MAKE_CHECK_ARGS: check-avocado
140 AVOCADO_TAGS: arch:microblaze arch:mips arch:xtensa arch:m68k
141 arch:riscv32 arch:ppc arch:sparc64
142
143 crash-test-fedora:
144 extends: .native_test_job_template
145 needs:
146 - job: build-system-fedora
147 artifacts: true
148 variables:
149 IMAGE: fedora
150 script:
151 - cd build
152 - make NINJA=":" check-venv
153 - pyvenv/bin/python3 scripts/device-crash-test -q ./qemu-system-ppc
154 - pyvenv/bin/python3 scripts/device-crash-test -q ./qemu-system-riscv32
155
156 build-system-centos:
157 extends:
158 - .native_build_job_template
159 - .native_build_artifact_template
160 needs:
161 job: amd64-centos8-container
162 variables:
163 IMAGE: centos8
164 CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-vfio-user-server
165 --enable-modules --enable-trace-backends=dtrace --enable-docs
166 TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu
167 x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu
168 MAKE_CHECK_ARGS: check-build
169
170 check-system-centos:
171 extends: .native_test_job_template
172 needs:
173 - job: build-system-centos
174 artifacts: true
175 variables:
176 IMAGE: centos8
177 MAKE_CHECK_ARGS: check
178
179 avocado-system-centos:
180 extends: .avocado_test_job_template
181 needs:
182 - job: build-system-centos
183 artifacts: true
184 variables:
185 IMAGE: centos8
186 MAKE_CHECK_ARGS: check-avocado
187 AVOCADO_TAGS: arch:ppc64 arch:or1k arch:s390x arch:x86_64 arch:rx
188 arch:sh4 arch:nios2
189
190 build-system-opensuse:
191 extends:
192 - .native_build_job_template
193 - .native_build_artifact_template
194 needs:
195 job: amd64-opensuse-leap-container
196 variables:
197 IMAGE: opensuse-leap
198 TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu
199 MAKE_CHECK_ARGS: check-build
200
201 check-system-opensuse:
202 extends: .native_test_job_template
203 needs:
204 - job: build-system-opensuse
205 artifacts: true
206 variables:
207 IMAGE: opensuse-leap
208 MAKE_CHECK_ARGS: check
209
210 avocado-system-opensuse:
211 extends: .avocado_test_job_template
212 needs:
213 - job: build-system-opensuse
214 artifacts: true
215 variables:
216 IMAGE: opensuse-leap
217 MAKE_CHECK_ARGS: check-avocado
218 AVOCADO_TAGS: arch:s390x arch:x86_64 arch:aarch64
219
220 #
221 # Flaky tests. We don't run these by default and they are allow fail
222 # but often the CI system is the only way to trigger the failures.
223 #
224
225 build-system-flaky:
226 extends:
227 - .native_build_job_template
228 - .native_build_artifact_template
229 needs:
230 job: amd64-debian-container
231 variables:
232 IMAGE: debian
233 QEMU_JOB_OPTIONAL: 1
234 TARGETS: aarch64-softmmu arm-softmmu mips64el-softmmu
235 ppc64-softmmu rx-softmmu s390x-softmmu sh4-softmmu x86_64-softmmu
236 MAKE_CHECK_ARGS: check-build
237
238 avocado-system-flaky:
239 extends: .avocado_test_job_template
240 needs:
241 - job: build-system-flaky
242 artifacts: true
243 allow_failure: true
244 variables:
245 IMAGE: debian
246 MAKE_CHECK_ARGS: check-avocado
247 QEMU_JOB_OPTIONAL: 1
248 QEMU_TEST_FLAKY_TESTS: 1
249 AVOCADO_TAGS: flaky
250
251 # This jobs explicitly disable TCG (--disable-tcg), KVM is detected by
252 # the configure script. The container doesn't contain Xen headers so
253 # Xen accelerator is not detected / selected. As result it build the
254 # i386-softmmu and x86_64-softmmu with KVM being the single accelerator
255 # available.
256 # Also use a different coroutine implementation (which is only really of
257 # interest to KVM users, i.e. with TCG disabled)
258 build-tcg-disabled:
259 extends: .native_build_job_template
260 needs:
261 job: amd64-centos8-container
262 variables:
263 IMAGE: centos8
264 script:
265 - mkdir build
266 - cd build
267 - ../configure --disable-tcg --audio-drv-list="" --with-coroutine=ucontext
268 --disable-docs --disable-sdl --disable-gtk --disable-vnc
269 || { cat config.log meson-logs/meson-log.txt && exit 1; }
270 - make -j"$JOBS"
271 - make check-unit
272 - make check-qapi-schema
273 - cd tests/qemu-iotests/
274 - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048
275 052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163
276 170 171 183 184 192 194 208 221 226 227 236 253 277 image-fleecing
277 - ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122
278 124 132 139 142 144 145 151 152 155 157 165 194 196 200 202
279 208 209 216 218 227 234 246 247 248 250 254 255 257 258
280 260 261 262 263 264 270 272 273 277 279 image-fleecing
281
282 build-user:
283 extends: .native_build_job_template
284 needs:
285 job: amd64-debian-user-cross-container
286 variables:
287 IMAGE: debian-all-test-cross
288 CONFIGURE_ARGS: --disable-tools --disable-system
289 --target-list-exclude=alpha-linux-user,sh4-linux-user
290 MAKE_CHECK_ARGS: check-tcg
291
292 build-user-static:
293 extends: .native_build_job_template
294 needs:
295 job: amd64-debian-user-cross-container
296 variables:
297 IMAGE: debian-all-test-cross
298 CONFIGURE_ARGS: --disable-tools --disable-system --static
299 --target-list-exclude=alpha-linux-user,sh4-linux-user
300 MAKE_CHECK_ARGS: check-tcg
301
302 # targets stuck on older compilers
303 build-legacy:
304 extends: .native_build_job_template
305 needs:
306 job: amd64-debian-legacy-cross-container
307 variables:
308 IMAGE: debian-legacy-test-cross
309 TARGETS: alpha-linux-user alpha-softmmu sh4-linux-user
310 CONFIGURE_ARGS: --disable-tools
311 MAKE_CHECK_ARGS: check-tcg
312
313 build-user-hexagon:
314 extends: .native_build_job_template
315 needs:
316 job: hexagon-cross-container
317 variables:
318 IMAGE: debian-hexagon-cross
319 TARGETS: hexagon-linux-user
320 CONFIGURE_ARGS: --disable-tools --disable-docs --enable-debug-tcg
321 MAKE_CHECK_ARGS: check-tcg
322
323 # Build the softmmu targets we have check-tcg tests and compilers in
324 # our omnibus all-test-cross container. Those targets that haven't got
325 # Debian cross compiler support need to use special containers.
326 build-some-softmmu:
327 extends: .native_build_job_template
328 needs:
329 job: amd64-debian-user-cross-container
330 variables:
331 IMAGE: debian-all-test-cross
332 CONFIGURE_ARGS: --disable-tools --enable-debug
333 TARGETS: arm-softmmu aarch64-softmmu i386-softmmu riscv64-softmmu
334 s390x-softmmu x86_64-softmmu
335 MAKE_CHECK_ARGS: check-tcg
336
337 build-loongarch64:
338 extends: .native_build_job_template
339 needs:
340 job: loongarch-debian-cross-container
341 variables:
342 IMAGE: debian-loongarch-cross
343 CONFIGURE_ARGS: --disable-tools --enable-debug
344 TARGETS: loongarch64-linux-user loongarch64-softmmu
345 MAKE_CHECK_ARGS: check-tcg
346
347 # We build tricore in a very minimal tricore only container
348 build-tricore-softmmu:
349 extends: .native_build_job_template
350 needs:
351 job: tricore-debian-cross-container
352 variables:
353 IMAGE: debian-tricore-cross
354 CONFIGURE_ARGS: --disable-tools --disable-fdt --enable-debug
355 TARGETS: tricore-softmmu
356 MAKE_CHECK_ARGS: check-tcg
357
358 clang-system:
359 extends: .native_build_job_template
360 needs:
361 job: amd64-fedora-container
362 variables:
363 IMAGE: fedora
364 CONFIGURE_ARGS: --cc=clang --cxx=clang++
365 --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
366 TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu s390x-softmmu
367 MAKE_CHECK_ARGS: check-qtest check-tcg
368
369 clang-user:
370 extends: .native_build_job_template
371 needs:
372 job: amd64-debian-user-cross-container
373 timeout: 70m
374 variables:
375 IMAGE: debian-all-test-cross
376 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system
377 --target-list-exclude=alpha-linux-user,microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user
378 --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
379 MAKE_CHECK_ARGS: check-unit check-tcg
380
381 # Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory.
382 # On gitlab runners, default value sometimes end up calling 2 lds concurrently and
383 # triggers an Out-Of-Memory error
384 #
385 # Since slirp callbacks are used in QEMU Timers, we cannot use libslirp with
386 # CFI builds, and thus have to disable it here.
387 #
388 # Split in three sets of build/check/avocado to limit the execution time of each
389 # job
390 build-cfi-aarch64:
391 extends:
392 - .native_build_job_template
393 - .native_build_artifact_template
394 needs:
395 - job: amd64-fedora-container
396 variables:
397 LD_JOBS: 1
398 AR: llvm-ar
399 IMAGE: fedora
400 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
401 --enable-safe-stack --disable-slirp
402 TARGETS: aarch64-softmmu
403 MAKE_CHECK_ARGS: check-build
404 # FIXME: This job is often failing, likely due to out-of-memory problems in
405 # the constrained containers of the shared runners. Thus this is marked as
406 # skipped until the situation has been solved.
407 QEMU_JOB_SKIPPED: 1
408 timeout: 90m
409
410 check-cfi-aarch64:
411 extends: .native_test_job_template
412 needs:
413 - job: build-cfi-aarch64
414 artifacts: true
415 variables:
416 IMAGE: fedora
417 MAKE_CHECK_ARGS: check
418
419 avocado-cfi-aarch64:
420 extends: .avocado_test_job_template
421 needs:
422 - job: build-cfi-aarch64
423 artifacts: true
424 variables:
425 IMAGE: fedora
426 MAKE_CHECK_ARGS: check-avocado
427
428 build-cfi-ppc64-s390x:
429 extends:
430 - .native_build_job_template
431 - .native_build_artifact_template
432 needs:
433 - job: amd64-fedora-container
434 variables:
435 LD_JOBS: 1
436 AR: llvm-ar
437 IMAGE: fedora
438 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
439 --enable-safe-stack --disable-slirp
440 TARGETS: ppc64-softmmu s390x-softmmu
441 MAKE_CHECK_ARGS: check-build
442 # FIXME: This job is often failing, likely due to out-of-memory problems in
443 # the constrained containers of the shared runners. Thus this is marked as
444 # skipped until the situation has been solved.
445 QEMU_JOB_SKIPPED: 1
446 timeout: 80m
447
448 check-cfi-ppc64-s390x:
449 extends: .native_test_job_template
450 needs:
451 - job: build-cfi-ppc64-s390x
452 artifacts: true
453 variables:
454 IMAGE: fedora
455 MAKE_CHECK_ARGS: check
456
457 avocado-cfi-ppc64-s390x:
458 extends: .avocado_test_job_template
459 needs:
460 - job: build-cfi-ppc64-s390x
461 artifacts: true
462 variables:
463 IMAGE: fedora
464 MAKE_CHECK_ARGS: check-avocado
465
466 build-cfi-x86_64:
467 extends:
468 - .native_build_job_template
469 - .native_build_artifact_template
470 needs:
471 - job: amd64-fedora-container
472 variables:
473 LD_JOBS: 1
474 AR: llvm-ar
475 IMAGE: fedora
476 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug
477 --enable-safe-stack --disable-slirp
478 TARGETS: x86_64-softmmu
479 MAKE_CHECK_ARGS: check-build
480 timeout: 70m
481
482 check-cfi-x86_64:
483 extends: .native_test_job_template
484 needs:
485 - job: build-cfi-x86_64
486 artifacts: true
487 variables:
488 IMAGE: fedora
489 MAKE_CHECK_ARGS: check
490
491 avocado-cfi-x86_64:
492 extends: .avocado_test_job_template
493 needs:
494 - job: build-cfi-x86_64
495 artifacts: true
496 variables:
497 IMAGE: fedora
498 MAKE_CHECK_ARGS: check-avocado
499
500 tsan-build:
501 extends: .native_build_job_template
502 needs:
503 job: amd64-ubuntu2204-container
504 variables:
505 IMAGE: ubuntu2204
506 CONFIGURE_ARGS: --enable-tsan --cc=clang --cxx=clang++
507 --enable-trace-backends=ust --disable-slirp
508 TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
509
510 # gcov is a GCC features
511 gcov:
512 extends: .native_build_job_template
513 needs:
514 job: amd64-ubuntu2204-container
515 timeout: 80m
516 variables:
517 IMAGE: ubuntu2204
518 CONFIGURE_ARGS: --enable-gcov
519 TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
520 MAKE_CHECK_ARGS: check-unit check-softfloat
521 after_script:
522 - cd build
523 - gcovr --xml-pretty --exclude-unreachable-branches --print-summary
524 -o coverage.xml --root ${CI_PROJECT_DIR} . *.p
525 coverage: /^\s*lines:\s*\d+.\d+\%/
526 artifacts:
527 name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
528 when: always
529 expire_in: 2 days
530 paths:
531 - build/meson-logs/testlog.txt
532 reports:
533 junit: build/meson-logs/testlog.junit.xml
534 coverage_report:
535 coverage_format: cobertura
536 path: build/coverage.xml
537
538 build-oss-fuzz:
539 extends: .native_build_job_template
540 needs:
541 job: amd64-fedora-container
542 variables:
543 IMAGE: fedora
544 script:
545 - mkdir build-oss-fuzz
546 - export LSAN_OPTIONS=suppressions=scripts/oss-fuzz/lsan_suppressions.txt
547 - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address"
548 ./scripts/oss-fuzz/build.sh
549 - export ASAN_OPTIONS="fast_unwind_on_malloc=0"
550 - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f
551 | grep -v slirp); do
552 grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ;
553 echo Testing ${fuzzer} ... ;
554 "${fuzzer}" -runs=1 -seed=1 || exit 1 ;
555 done
556
557 build-tci:
558 extends: .native_build_job_template
559 needs:
560 job: amd64-debian-user-cross-container
561 variables:
562 IMAGE: debian-all-test-cross
563 script:
564 - TARGETS="aarch64 arm hppa m68k microblaze ppc64 s390x x86_64"
565 - mkdir build
566 - cd build
567 - ../configure --enable-tcg-interpreter --disable-docs --disable-gtk --disable-vnc
568 --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)"
569 || { cat config.log meson-logs/meson-log.txt && exit 1; }
570 - make -j"$JOBS"
571 - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test
572 - for tg in $TARGETS ; do
573 export QTEST_QEMU_BINARY="./qemu-system-${tg}" ;
574 ./tests/qtest/boot-serial-test || exit 1 ;
575 ./tests/qtest/cdrom-test || exit 1 ;
576 done
577 - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test
578 - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow
579 - make check-tcg
580
581 # Check our reduced build configurations
582 build-without-defaults:
583 extends: .native_build_job_template
584 needs:
585 job: amd64-centos8-container
586 variables:
587 IMAGE: centos8
588 CONFIGURE_ARGS:
589 --without-default-devices
590 --without-default-features
591 --disable-fdt
592 --disable-pie
593 --disable-qom-cast-debug
594 --disable-strip
595 TARGETS: avr-softmmu mips64-softmmu s390x-softmmu sh4-softmmu
596 sparc64-softmmu hexagon-linux-user i386-linux-user s390x-linux-user
597 MAKE_CHECK_ARGS: check
598
599 build-libvhost-user:
600 extends: .base_job_template
601 stage: build
602 image: $CI_REGISTRY_IMAGE/qemu/fedora:$QEMU_CI_CONTAINER_TAG
603 needs:
604 job: amd64-fedora-container
605 script:
606 - mkdir subprojects/libvhost-user/build
607 - cd subprojects/libvhost-user/build
608 - meson
609 - ninja
610
611 # No targets are built here, just tools, docs, and unit tests. This
612 # also feeds into the eventual documentation deployment steps later
613 build-tools-and-docs-debian:
614 extends:
615 - .native_build_job_template
616 - .native_build_artifact_template
617 needs:
618 job: amd64-debian-container
619 # when running on 'master' we use pre-existing container
620 optional: true
621 variables:
622 IMAGE: debian
623 MAKE_CHECK_ARGS: check-unit ctags TAGS cscope
624 CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
625 QEMU_JOB_PUBLISH: 1
626
627 # Prepare for GitLab pages deployment. Anything copied into the
628 # "public" directory will be deployed to $USER.gitlab.io/$PROJECT
629 #
630 # GitLab publishes from any branch that triggers a CI pipeline
631 #
632 # For the main repo we don't want to publish from 'staging'
633 # since that content may not be pushed, nor do we wish to
634 # publish from 'stable-NNN' branches as that content is outdated.
635 # Thus we restrict to just the default branch
636 #
637 # For contributor forks we want to publish from any repo so
638 # that users can see the results of their commits, regardless
639 # of what topic branch they're currently using
640 pages:
641 extends: .base_job_template
642 image: $CI_REGISTRY_IMAGE/qemu/debian:$QEMU_CI_CONTAINER_TAG
643 stage: test
644 needs:
645 - job: build-tools-and-docs-debian
646 script:
647 - mkdir -p public
648 # HTML-ised source tree
649 - make gtags
650 - htags -anT --tree-view=filetree -m qemu_init
651 -t "Welcome to the QEMU sourcecode"
652 - mv HTML public/src
653 # Project documentation
654 - make -C build install DESTDIR=$(pwd)/temp-install
655 - mv temp-install/usr/local/share/doc/qemu/* public/
656 artifacts:
657 when: on_success
658 paths:
659 - public
660 variables:
661 QEMU_JOB_PUBLISH: 1