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