]> git.proxmox.com Git - mirror_qemu.git/blob - .gitlab-ci.yml
gitlab-ci.yml: Move build-tools-and-docs-debian to a better place
[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 variables:
436 IMAGE: centos7
437 CONFIGURE_ARGS: --disable-system --disable-tools --disable-docs
438 MAKE_CHECK_ARGS: check-tcg
439
440 build-some-softmmu-plugins:
441 <<: *native_build_job_definition
442 needs:
443 job: amd64-debian-user-cross-container
444 variables:
445 IMAGE: debian-all-test-cross
446 CONFIGURE_ARGS: --disable-tools --disable-user --enable-plugins --enable-debug-tcg
447 TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
448 MAKE_CHECK_ARGS: check-tcg
449
450 clang-system:
451 <<: *native_build_job_definition
452 needs:
453 job: amd64-fedora-container
454 variables:
455 IMAGE: fedora
456 CONFIGURE_ARGS: --cc=clang --cxx=clang++
457 --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
458 TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu
459 ppc-softmmu s390x-softmmu
460 MAKE_CHECK_ARGS: check-qtest check-tcg
461
462 clang-user:
463 <<: *native_build_job_definition
464 variables:
465 IMAGE: debian-all-test-cross
466 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system
467 --target-list-exclude=microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user
468 --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
469 MAKE_CHECK_ARGS: check-unit check-tcg
470
471 tsan-build:
472 <<: *native_build_job_definition
473 variables:
474 IMAGE: ubuntu2004
475 CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10 --disable-docs
476 --enable-fdt=system --enable-slirp=system
477 TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
478 MAKE_CHECK_ARGS: bench V=1
479
480 # These targets are on the way out
481 build-deprecated:
482 <<: *native_build_job_definition
483 needs:
484 job: amd64-debian-user-cross-container
485 variables:
486 IMAGE: debian-all-test-cross
487 CONFIGURE_ARGS: --disable-docs --disable-tools
488 MAKE_CHECK_ARGS: build-tcg
489 TARGETS: ppc64abi32-linux-user lm32-softmmu unicore32-softmmu
490 artifacts:
491 expire_in: 2 days
492 paths:
493 - build
494
495 # We split the check-tcg step as test failures are expected but we still
496 # want to catch the build breaking.
497 check-deprecated:
498 <<: *native_test_job_definition
499 needs:
500 - job: build-deprecated
501 artifacts: true
502 variables:
503 IMAGE: debian-all-test-cross
504 MAKE_CHECK_ARGS: check-tcg
505 allow_failure: true
506
507 # gprof/gcov are GCC features
508 gprof-gcov:
509 <<: *native_build_job_definition
510 variables:
511 IMAGE: ubuntu2004
512 CONFIGURE_ARGS: --enable-gprof --enable-gcov
513 MAKE_CHECK_ARGS: check
514 TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
515 timeout: 70m
516 after_script:
517 - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh
518
519 build-oss-fuzz:
520 <<: *native_build_job_definition
521 needs:
522 job: amd64-fedora-container
523 variables:
524 IMAGE: fedora
525 script:
526 - mkdir build-oss-fuzz
527 - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address"
528 ./scripts/oss-fuzz/build.sh
529 - export ASAN_OPTIONS="fast_unwind_on_malloc=0"
530 - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f
531 | grep -v slirp); do
532 grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ;
533 echo Testing ${fuzzer} ... ;
534 "${fuzzer}" -runs=1 -seed=1 || exit 1 ;
535 done
536 # Unrelated to fuzzer: run some tests with -fsanitize=address
537 - cd build-oss-fuzz && make check-qtest-i386 check-unit
538
539 build-tci:
540 <<: *native_build_job_definition
541 needs:
542 job: amd64-debian-user-cross-container
543 variables:
544 IMAGE: debian-all-test-cross
545 script:
546 - TARGETS="aarch64 alpha arm hppa m68k microblaze moxie ppc64 s390x x86_64"
547 - mkdir build
548 - cd build
549 - ../configure --enable-tcg-interpreter
550 --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" || { cat config.log meson-logs/meson-log.txt && exit 1; }
551 - make -j"$JOBS"
552 - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test
553 - for tg in $TARGETS ; do
554 export QTEST_QEMU_BINARY="./qemu-system-${tg}" ;
555 ./tests/qtest/boot-serial-test || exit 1 ;
556 ./tests/qtest/cdrom-test || exit 1 ;
557 done
558 - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test
559 - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow
560 - make check-tcg
561
562 # Alternate coroutines implementations are only really of interest to KVM users
563 # However we can't test against KVM on Gitlab-CI so we can only run unit tests
564 build-coroutine-ucontext:
565 <<: *native_build_job_definition
566 needs:
567 job: amd64-ubuntu2004-container
568 variables:
569 IMAGE: ubuntu2004
570 CONFIGURE_ARGS: --with-coroutine=ucontext --disable-tcg
571 MAKE_CHECK_ARGS: check-unit
572
573 build-coroutine-sigaltstack:
574 <<: *native_build_job_definition
575 needs:
576 job: amd64-ubuntu2004-container
577 variables:
578 IMAGE: ubuntu2004
579 CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg
580 MAKE_CHECK_ARGS: check-unit
581
582 # Most jobs test latest gcrypt or nettle builds
583 #
584 # These jobs test old gcrypt and nettle from RHEL7
585 # which had some API differences.
586 build-crypto-old-nettle:
587 <<: *native_build_job_definition
588 needs:
589 job: amd64-centos7-container
590 variables:
591 IMAGE: centos7
592 TARGETS: x86_64-softmmu x86_64-linux-user
593 CONFIGURE_ARGS: --disable-gcrypt --enable-nettle
594 MAKE_CHECK_ARGS: check-build
595 artifacts:
596 paths:
597 - build
598
599 check-crypto-old-nettle:
600 <<: *native_test_job_definition
601 needs:
602 - job: build-crypto-old-nettle
603 artifacts: true
604 variables:
605 IMAGE: centos7
606 MAKE_CHECK_ARGS: check
607
608
609 build-crypto-old-gcrypt:
610 <<: *native_build_job_definition
611 needs:
612 job: amd64-centos7-container
613 variables:
614 IMAGE: centos7
615 TARGETS: x86_64-softmmu x86_64-linux-user
616 CONFIGURE_ARGS: --disable-nettle --enable-gcrypt
617 MAKE_CHECK_ARGS: check-build
618 artifacts:
619 paths:
620 - build
621
622 check-crypto-old-gcrypt:
623 <<: *native_test_job_definition
624 needs:
625 - job: build-crypto-old-gcrypt
626 artifacts: true
627 variables:
628 IMAGE: centos7
629 MAKE_CHECK_ARGS: check
630
631
632 build-crypto-only-gnutls:
633 <<: *native_build_job_definition
634 needs:
635 job: amd64-centos7-container
636 variables:
637 IMAGE: centos7
638 TARGETS: x86_64-softmmu x86_64-linux-user
639 CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls
640 MAKE_CHECK_ARGS: check-build
641 artifacts:
642 paths:
643 - build
644
645 check-crypto-only-gnutls:
646 <<: *native_test_job_definition
647 needs:
648 - job: build-crypto-only-gnutls
649 artifacts: true
650 variables:
651 IMAGE: centos7
652 MAKE_CHECK_ARGS: check
653
654 # We don't need to exercise every backend with every front-end
655 build-trace-multi-user:
656 <<: *native_build_job_definition
657 needs:
658 job: amd64-ubuntu2004-container
659 variables:
660 IMAGE: ubuntu2004
661 CONFIGURE_ARGS: --enable-trace-backends=log,simple,syslog --disable-system
662
663 build-trace-ftrace-system:
664 <<: *native_build_job_definition
665 needs:
666 job: amd64-ubuntu2004-container
667 variables:
668 IMAGE: ubuntu2004
669 CONFIGURE_ARGS: --enable-trace-backends=ftrace --target-list=x86_64-softmmu
670
671 build-trace-ust-system:
672 <<: *native_build_job_definition
673 needs:
674 job: amd64-ubuntu2004-container
675 variables:
676 IMAGE: ubuntu2004
677 CONFIGURE_ARGS: --enable-trace-backends=ust --target-list=x86_64-softmmu
678
679 # Check our reduced build configurations
680 build-without-default-devices:
681 <<: *native_build_job_definition
682 needs:
683 job: amd64-centos8-container
684 variables:
685 IMAGE: centos8
686 CONFIGURE_ARGS: --without-default-devices --disable-user
687
688 build-without-default-features:
689 <<: *native_build_job_definition
690 needs:
691 job: amd64-debian-container
692 variables:
693 IMAGE: debian-amd64
694 CONFIGURE_ARGS: --without-default-features --disable-user
695 --target-list-exclude=arm-softmmu,i386-softmmu,mipsel-softmmu,mips64-softmmu,ppc-softmmu
696 MAKE_CHECK_ARGS: check-unit
697
698 check-patch:
699 stage: build
700 image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
701 needs:
702 job: amd64-centos8-container
703 script: .gitlab-ci.d/check-patch.py
704 except:
705 variables:
706 - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
707 variables:
708 GIT_DEPTH: 1000
709 allow_failure: true
710
711 check-dco:
712 stage: build
713 image: $CI_REGISTRY_IMAGE/qemu/centos8:latest
714 needs:
715 job: amd64-centos8-container
716 script: .gitlab-ci.d/check-dco.py
717 except:
718 variables:
719 - $CI_PROJECT_NAMESPACE == 'qemu-project' && $CI_COMMIT_BRANCH == 'master'
720 variables:
721 GIT_DEPTH: 1000
722
723 build-libvhost-user:
724 stage: build
725 image: $CI_REGISTRY_IMAGE/qemu/fedora:latest
726 needs:
727 job: amd64-fedora-container
728 before_script:
729 - dnf install -y meson ninja-build
730 script:
731 - mkdir subprojects/libvhost-user/build
732 - cd subprojects/libvhost-user/build
733 - meson
734 - ninja
735
736 # No targets are built here, just tools, docs, and unit tests. This
737 # also feeds into the eventual documentation deployment steps later
738 build-tools-and-docs-debian:
739 <<: *native_build_job_definition
740 needs:
741 job: amd64-debian-container
742 variables:
743 IMAGE: debian-amd64
744 MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope
745 CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
746 artifacts:
747 expire_in: 2 days
748 paths:
749 - build
750
751 # Prepare for GitLab pages deployment. Anything copied into the
752 # "public" directory will be deployed to $USER.gitlab.io/$PROJECT
753 pages:
754 image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:latest
755 stage: test
756 needs:
757 - job: build-tools-and-docs-debian
758 script:
759 - mkdir -p public
760 # HTML-ised source tree
761 - make gtags
762 - htags -anT --tree-view=filetree -m qemu_init
763 -t "Welcome to the QEMU sourcecode"
764 - mv HTML public/src
765 # Project documentation
766 - make -C build install DESTDIR=$(pwd)/temp-install
767 - mv temp-install/usr/local/share/doc/qemu/* public/
768 artifacts:
769 paths:
770 - public