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