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