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