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