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-some-softmmu-plugins: 377 extends: .native_build_job_template 378 needs: 379 job: amd64-debian-user-cross-container 380 variables: 381 IMAGE: debian-all-test-cross 382 CONFIGURE_ARGS: --disable-tools --disable-user --enable-plugins --enable-debug-tcg 383 TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu 384 MAKE_CHECK_ARGS: check-tcg 385 386clang-system: 387 extends: .native_build_job_template 388 needs: 389 job: amd64-fedora-container 390 variables: 391 IMAGE: fedora 392 CONFIGURE_ARGS: --cc=clang --cxx=clang++ 393 --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined 394 TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu 395 ppc-softmmu s390x-softmmu 396 MAKE_CHECK_ARGS: check-qtest check-tcg 397 398clang-user: 399 extends: .native_build_job_template 400 needs: 401 job: amd64-debian-user-cross-container 402 variables: 403 IMAGE: debian-all-test-cross 404 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system 405 --target-list-exclude=microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user 406 --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined 407 MAKE_CHECK_ARGS: check-unit check-tcg 408 409# Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory. 410# On gitlab runners, default value sometimes end up calling 2 lds concurrently and 411# triggers an Out-Of-Memory error 412# 413# Since slirp callbacks are used in QEMU Timers, slirp needs to be compiled together 414# with QEMU and linked as a static library to avoid false positives in CFI checks. 415# This can be accomplished by using -enable-slirp=git, which avoids the use of 416# a system-wide version of the library 417# 418# Split in three sets of build/check/acceptance to limit the execution time of each 419# job 420build-cfi-aarch64: 421 extends: .native_build_job_template 422 needs: 423 - job: amd64-fedora-container 424 variables: 425 LD_JOBS: 1 426 AR: llvm-ar 427 IMAGE: fedora 428 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug 429 --enable-safe-stack --enable-slirp=git 430 TARGETS: aarch64-softmmu 431 MAKE_CHECK_ARGS: check-build 432 timeout: 70m 433 artifacts: 434 expire_in: 2 days 435 paths: 436 - build 437 438check-cfi-aarch64: 439 extends: .native_test_job_template 440 needs: 441 - job: build-cfi-aarch64 442 artifacts: true 443 variables: 444 IMAGE: fedora 445 MAKE_CHECK_ARGS: check 446 447acceptance-cfi-aarch64: 448 extends: .acceptance_test_job_template 449 needs: 450 - job: build-cfi-aarch64 451 artifacts: true 452 variables: 453 IMAGE: fedora 454 MAKE_CHECK_ARGS: check-acceptance 455 456build-cfi-ppc64-s390x: 457 extends: .native_build_job_template 458 needs: 459 - job: amd64-fedora-container 460 variables: 461 LD_JOBS: 1 462 AR: llvm-ar 463 IMAGE: fedora 464 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug 465 --enable-safe-stack --enable-slirp=git 466 TARGETS: ppc64-softmmu s390x-softmmu 467 MAKE_CHECK_ARGS: check-build 468 timeout: 70m 469 artifacts: 470 expire_in: 2 days 471 paths: 472 - build 473 474check-cfi-ppc64-s390x: 475 extends: .native_test_job_template 476 needs: 477 - job: build-cfi-ppc64-s390x 478 artifacts: true 479 variables: 480 IMAGE: fedora 481 MAKE_CHECK_ARGS: check 482 483acceptance-cfi-ppc64-s390x: 484 extends: .acceptance_test_job_template 485 needs: 486 - job: build-cfi-ppc64-s390x 487 artifacts: true 488 variables: 489 IMAGE: fedora 490 MAKE_CHECK_ARGS: check-acceptance 491 492build-cfi-x86_64: 493 extends: .native_build_job_template 494 needs: 495 - job: amd64-fedora-container 496 variables: 497 LD_JOBS: 1 498 AR: llvm-ar 499 IMAGE: fedora 500 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug 501 --enable-safe-stack --enable-slirp=git 502 TARGETS: x86_64-softmmu 503 MAKE_CHECK_ARGS: check-build 504 timeout: 70m 505 artifacts: 506 expire_in: 2 days 507 paths: 508 - build 509 510check-cfi-x86_64: 511 extends: .native_test_job_template 512 needs: 513 - job: build-cfi-x86_64 514 artifacts: true 515 variables: 516 IMAGE: fedora 517 MAKE_CHECK_ARGS: check 518 519acceptance-cfi-x86_64: 520 extends: .acceptance_test_job_template 521 needs: 522 - job: build-cfi-x86_64 523 artifacts: true 524 variables: 525 IMAGE: fedora 526 MAKE_CHECK_ARGS: check-acceptance 527 528tsan-build: 529 extends: .native_build_job_template 530 needs: 531 job: amd64-ubuntu2004-container 532 variables: 533 IMAGE: ubuntu2004 534 CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10 535 --enable-trace-backends=ust --enable-fdt=system --enable-slirp=system 536 TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user 537 MAKE_CHECK_ARGS: bench V=1 538 539# These targets are on the way out 540build-deprecated: 541 extends: .native_build_job_template 542 needs: 543 job: amd64-debian-user-cross-container 544 variables: 545 IMAGE: debian-all-test-cross 546 CONFIGURE_ARGS: --disable-tools 547 MAKE_CHECK_ARGS: build-tcg 548 TARGETS: ppc64abi32-linux-user 549 artifacts: 550 expire_in: 2 days 551 paths: 552 - build 553 554# We split the check-tcg step as test failures are expected but we still 555# want to catch the build breaking. 556check-deprecated: 557 extends: .native_test_job_template 558 needs: 559 - job: build-deprecated 560 artifacts: true 561 variables: 562 IMAGE: debian-all-test-cross 563 MAKE_CHECK_ARGS: check-tcg 564 allow_failure: true 565 566# gprof/gcov are GCC features 567gprof-gcov: 568 extends: .native_build_job_template 569 needs: 570 job: amd64-ubuntu2004-container 571 variables: 572 IMAGE: ubuntu2004 573 CONFIGURE_ARGS: --enable-gprof --enable-gcov 574 MAKE_CHECK_ARGS: check 575 TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu 576 timeout: 70m 577 after_script: 578 - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh 579 580build-oss-fuzz: 581 extends: .native_build_job_template 582 needs: 583 job: amd64-fedora-container 584 variables: 585 IMAGE: fedora 586 script: 587 - mkdir build-oss-fuzz 588 - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address" 589 ./scripts/oss-fuzz/build.sh 590 - export ASAN_OPTIONS="fast_unwind_on_malloc=0" 591 - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f 592 | grep -v slirp); do 593 grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ; 594 echo Testing ${fuzzer} ... ; 595 "${fuzzer}" -runs=1 -seed=1 || exit 1 ; 596 done 597 # Unrelated to fuzzer: run some tests with -fsanitize=address 598 - cd build-oss-fuzz && make check-qtest-i386 check-unit 599 600build-tci: 601 extends: .native_build_job_template 602 needs: 603 job: amd64-debian-user-cross-container 604 variables: 605 IMAGE: debian-all-test-cross 606 script: 607 - TARGETS="aarch64 alpha arm hppa m68k microblaze ppc64 s390x x86_64" 608 - mkdir build 609 - cd build 610 - ../configure --enable-tcg-interpreter 611 --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" || { cat config.log meson-logs/meson-log.txt && exit 1; } 612 - make -j"$JOBS" 613 - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test 614 - for tg in $TARGETS ; do 615 export QTEST_QEMU_BINARY="./qemu-system-${tg}" ; 616 ./tests/qtest/boot-serial-test || exit 1 ; 617 ./tests/qtest/cdrom-test || exit 1 ; 618 done 619 - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test 620 - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow 621 - make check-tcg 622 623# Alternate coroutines implementations are only really of interest to KVM users 624# However we can't test against KVM on Gitlab-CI so we can only run unit tests 625build-coroutine-sigaltstack: 626 extends: .native_build_job_template 627 needs: 628 job: amd64-ubuntu2004-container 629 variables: 630 IMAGE: ubuntu2004 631 CONFIGURE_ARGS: --with-coroutine=sigaltstack --disable-tcg 632 --enable-trace-backends=ftrace 633 MAKE_CHECK_ARGS: check-unit 634 635# Most jobs test latest gcrypt or nettle builds 636# 637# These jobs test old gcrypt and nettle from RHEL7 638# which had some API differences. 639crypto-old-nettle: 640 extends: .native_build_job_template 641 needs: 642 job: amd64-centos7-container 643 variables: 644 IMAGE: centos7 645 TARGETS: x86_64-softmmu x86_64-linux-user 646 CONFIGURE_ARGS: --disable-gcrypt --enable-nettle 647 MAKE_CHECK_ARGS: check 648 649crypto-old-gcrypt: 650 extends: .native_build_job_template 651 needs: 652 job: amd64-centos7-container 653 variables: 654 IMAGE: centos7 655 TARGETS: x86_64-softmmu x86_64-linux-user 656 CONFIGURE_ARGS: --disable-nettle --enable-gcrypt 657 MAKE_CHECK_ARGS: check 658 659crypto-only-gnutls: 660 extends: .native_build_job_template 661 needs: 662 job: amd64-centos7-container 663 variables: 664 IMAGE: centos7 665 TARGETS: x86_64-softmmu x86_64-linux-user 666 CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls 667 MAKE_CHECK_ARGS: check 668 669 670# Check our reduced build configurations 671build-without-default-devices: 672 extends: .native_build_job_template 673 needs: 674 job: amd64-centos8-container 675 variables: 676 IMAGE: centos8 677 CONFIGURE_ARGS: --without-default-devices --disable-user 678 679build-without-default-features: 680 extends: .native_build_job_template 681 needs: 682 job: amd64-debian-container 683 variables: 684 IMAGE: debian-amd64 685 CONFIGURE_ARGS: --without-default-features --disable-user 686 --target-list-exclude=arm-softmmu,i386-softmmu,mipsel-softmmu,mips64-softmmu,ppc-softmmu 687 MAKE_CHECK_ARGS: check-unit 688 689build-libvhost-user: 690 stage: build 691 image: $CI_REGISTRY_IMAGE/qemu/fedora:latest 692 needs: 693 job: amd64-fedora-container 694 before_script: 695 - dnf install -y meson ninja-build 696 script: 697 - mkdir subprojects/libvhost-user/build 698 - cd subprojects/libvhost-user/build 699 - meson 700 - ninja 701 702# No targets are built here, just tools, docs, and unit tests. This 703# also feeds into the eventual documentation deployment steps later 704build-tools-and-docs-debian: 705 extends: .native_build_job_template 706 needs: 707 job: amd64-debian-container 708 variables: 709 IMAGE: debian-amd64 710 MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope 711 CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools 712 artifacts: 713 expire_in: 2 days 714 paths: 715 - build 716 717# Prepare for GitLab pages deployment. Anything copied into the 718# "public" directory will be deployed to $USER.gitlab.io/$PROJECT 719pages: 720 image: $CI_REGISTRY_IMAGE/qemu/debian-amd64:latest 721 stage: test 722 needs: 723 - job: build-tools-and-docs-debian 724 script: 725 - mkdir -p public 726 # HTML-ised source tree 727 - make gtags 728 - htags -anT --tree-view=filetree -m qemu_init 729 -t "Welcome to the QEMU sourcecode" 730 - mv HTML public/src 731 # Project documentation 732 - make -C build install DESTDIR=$(pwd)/temp-install 733 - mv temp-install/usr/local/share/doc/qemu/* public/ 734 artifacts: 735 paths: 736 - public 737