1include: 2 - local: '/.gitlab-ci.d/buildtest-template.yml' 3 4build-system-alpine: 5 extends: 6 - .native_build_job_template 7 - .native_build_artifact_template 8 needs: 9 - job: amd64-alpine-container 10 variables: 11 IMAGE: alpine 12 TARGETS: avr-softmmu loongarch64-softmmu mips64-softmmu mipsel-softmmu 13 MAKE_CHECK_ARGS: check-build 14 CONFIGURE_ARGS: --enable-docs --enable-trace-backends=log,simple,syslog 15 16check-system-alpine: 17 extends: .native_test_job_template 18 needs: 19 - job: build-system-alpine 20 artifacts: true 21 variables: 22 IMAGE: alpine 23 MAKE_CHECK_ARGS: check-unit check-qtest 24 25avocado-system-alpine: 26 extends: .avocado_test_job_template 27 needs: 28 - job: build-system-alpine 29 artifacts: true 30 variables: 31 IMAGE: alpine 32 MAKE_CHECK_ARGS: check-avocado 33 AVOCADO_TAGS: arch:avr arch:loongarch64 arch:mips64 arch:mipsel 34 35build-system-ubuntu: 36 extends: 37 - .native_build_job_template 38 - .native_build_artifact_template 39 needs: 40 job: amd64-ubuntu2204-container 41 variables: 42 IMAGE: ubuntu2204 43 CONFIGURE_ARGS: --enable-docs 44 TARGETS: alpha-softmmu microblazeel-softmmu mips64el-softmmu 45 MAKE_CHECK_ARGS: check-build 46 47check-system-ubuntu: 48 extends: .native_test_job_template 49 needs: 50 - job: build-system-ubuntu 51 artifacts: true 52 variables: 53 IMAGE: ubuntu2204 54 MAKE_CHECK_ARGS: check 55 56avocado-system-ubuntu: 57 extends: .avocado_test_job_template 58 needs: 59 - job: build-system-ubuntu 60 artifacts: true 61 variables: 62 IMAGE: ubuntu2204 63 MAKE_CHECK_ARGS: check-avocado 64 AVOCADO_TAGS: arch:alpha arch:microblazeel arch:mips64el 65 66build-system-debian: 67 extends: 68 - .native_build_job_template 69 - .native_build_artifact_template 70 needs: 71 job: amd64-debian-container 72 variables: 73 IMAGE: debian 74 CONFIGURE_ARGS: --with-coroutine=sigaltstack 75 TARGETS: arm-softmmu i386-softmmu riscv64-softmmu sh4eb-softmmu 76 sparc-softmmu xtensa-softmmu 77 MAKE_CHECK_ARGS: check-build 78 79check-system-debian: 80 extends: .native_test_job_template 81 needs: 82 - job: build-system-debian 83 artifacts: true 84 variables: 85 IMAGE: debian 86 MAKE_CHECK_ARGS: check 87 88avocado-system-debian: 89 extends: .avocado_test_job_template 90 needs: 91 - job: build-system-debian 92 artifacts: true 93 variables: 94 IMAGE: debian 95 MAKE_CHECK_ARGS: check-avocado 96 AVOCADO_TAGS: arch:arm arch:i386 arch:riscv64 arch:sh4 arch:sparc arch:xtensa 97 98crash-test-debian: 99 extends: .native_test_job_template 100 needs: 101 - job: build-system-debian 102 artifacts: true 103 variables: 104 IMAGE: debian 105 script: 106 - cd build 107 - make NINJA=":" check-venv 108 - pyvenv/bin/python3 scripts/device-crash-test -q --tcg-only ./qemu-system-i386 109 110build-system-fedora: 111 extends: 112 - .native_build_job_template 113 - .native_build_artifact_template 114 needs: 115 job: amd64-fedora-container 116 variables: 117 IMAGE: fedora 118 CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs 119 TARGETS: microblaze-softmmu mips-softmmu 120 xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu 121 MAKE_CHECK_ARGS: check-build 122 123check-system-fedora: 124 extends: .native_test_job_template 125 needs: 126 - job: build-system-fedora 127 artifacts: true 128 variables: 129 IMAGE: fedora 130 MAKE_CHECK_ARGS: check 131 132avocado-system-fedora: 133 extends: .avocado_test_job_template 134 needs: 135 - job: build-system-fedora 136 artifacts: true 137 variables: 138 IMAGE: fedora 139 MAKE_CHECK_ARGS: check-avocado 140 AVOCADO_TAGS: arch:microblaze arch:mips arch:xtensa arch:m68k 141 arch:riscv32 arch:ppc arch:sparc64 142 143crash-test-fedora: 144 extends: .native_test_job_template 145 needs: 146 - job: build-system-fedora 147 artifacts: true 148 variables: 149 IMAGE: fedora 150 script: 151 - cd build 152 - make NINJA=":" check-venv 153 - pyvenv/bin/python3 scripts/device-crash-test -q ./qemu-system-ppc 154 - pyvenv/bin/python3 scripts/device-crash-test -q ./qemu-system-riscv32 155 156build-system-centos: 157 extends: 158 - .native_build_job_template 159 - .native_build_artifact_template 160 needs: 161 job: amd64-centos8-container 162 variables: 163 IMAGE: centos8 164 CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-vfio-user-server 165 --enable-modules --enable-trace-backends=dtrace --enable-docs 166 TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu 167 x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu 168 MAKE_CHECK_ARGS: check-build 169 170# Previous QEMU release. Used for cross-version migration tests. 171build-previous-qemu: 172 extends: .native_build_job_template 173 artifacts: 174 when: on_success 175 expire_in: 2 days 176 paths: 177 - build-previous 178 exclude: 179 - build-previous/**/*.p 180 - build-previous/**/*.a.p 181 - build-previous/**/*.fa.p 182 - build-previous/**/*.c.o 183 - build-previous/**/*.c.o.d 184 - build-previous/**/*.fa 185 needs: 186 job: amd64-opensuse-leap-container 187 variables: 188 IMAGE: opensuse-leap 189 TARGETS: x86_64-softmmu aarch64-softmmu 190 before_script: 191 - export QEMU_PREV_VERSION="$(sed 's/\([0-9.]*\)\.[0-9]*/v\1.0/' VERSION)" 192 - git checkout $QEMU_PREV_VERSION 193 after_script: 194 - mv build build-previous 195 196.migration-compat-common: 197 extends: .common_test_job_template 198 needs: 199 - job: build-previous-qemu 200 - job: build-system-opensuse 201 # The old QEMU could have bugs unrelated to migration that are 202 # already fixed in the current development branch, so this test 203 # might fail. 204 allow_failure: true 205 variables: 206 IMAGE: opensuse-leap 207 MAKE_CHECK_ARGS: check-build 208 script: 209 # Use the migration-tests from the older QEMU tree. This avoids 210 # testing an old QEMU against new features/tests that it is not 211 # compatible with. 212 - cd build-previous 213 # old to new 214 - QTEST_QEMU_BINARY_SRC=./qemu-system-${TARGET} 215 QTEST_QEMU_BINARY=../build/qemu-system-${TARGET} ./tests/qtest/migration-test 216 # new to old 217 - QTEST_QEMU_BINARY_DST=./qemu-system-${TARGET} 218 QTEST_QEMU_BINARY=../build/qemu-system-${TARGET} ./tests/qtest/migration-test 219 220migration-compat-aarch64: 221 extends: .migration-compat-common 222 variables: 223 TARGET: aarch64 224 225migration-compat-x86_64: 226 extends: .migration-compat-common 227 variables: 228 TARGET: x86_64 229 230check-system-centos: 231 extends: .native_test_job_template 232 needs: 233 - job: build-system-centos 234 artifacts: true 235 variables: 236 IMAGE: centos8 237 MAKE_CHECK_ARGS: check 238 239avocado-system-centos: 240 extends: .avocado_test_job_template 241 needs: 242 - job: build-system-centos 243 artifacts: true 244 variables: 245 IMAGE: centos8 246 MAKE_CHECK_ARGS: check-avocado 247 AVOCADO_TAGS: arch:ppc64 arch:or1k arch:s390x arch:x86_64 arch:rx 248 arch:sh4 arch:nios2 249 250build-system-opensuse: 251 extends: 252 - .native_build_job_template 253 - .native_build_artifact_template 254 needs: 255 job: amd64-opensuse-leap-container 256 variables: 257 IMAGE: opensuse-leap 258 TARGETS: s390x-softmmu x86_64-softmmu aarch64-softmmu 259 MAKE_CHECK_ARGS: check-build 260 261check-system-opensuse: 262 extends: .native_test_job_template 263 needs: 264 - job: build-system-opensuse 265 artifacts: true 266 variables: 267 IMAGE: opensuse-leap 268 MAKE_CHECK_ARGS: check 269 270avocado-system-opensuse: 271 extends: .avocado_test_job_template 272 needs: 273 - job: build-system-opensuse 274 artifacts: true 275 variables: 276 IMAGE: opensuse-leap 277 MAKE_CHECK_ARGS: check-avocado 278 AVOCADO_TAGS: arch:s390x arch:x86_64 arch:aarch64 279 280# 281# Flaky tests. We don't run these by default and they are allow fail 282# but often the CI system is the only way to trigger the failures. 283# 284 285build-system-flaky: 286 extends: 287 - .native_build_job_template 288 - .native_build_artifact_template 289 needs: 290 job: amd64-debian-container 291 variables: 292 IMAGE: debian 293 QEMU_JOB_OPTIONAL: 1 294 TARGETS: aarch64-softmmu arm-softmmu mips64el-softmmu 295 ppc64-softmmu rx-softmmu s390x-softmmu sh4-softmmu x86_64-softmmu 296 MAKE_CHECK_ARGS: check-build 297 298avocado-system-flaky: 299 extends: .avocado_test_job_template 300 needs: 301 - job: build-system-flaky 302 artifacts: true 303 allow_failure: true 304 variables: 305 IMAGE: debian 306 MAKE_CHECK_ARGS: check-avocado 307 QEMU_JOB_OPTIONAL: 1 308 QEMU_TEST_FLAKY_TESTS: 1 309 AVOCADO_TAGS: flaky 310 311# This jobs explicitly disable TCG (--disable-tcg), KVM is detected by 312# the configure script. The container doesn't contain Xen headers so 313# Xen accelerator is not detected / selected. As result it build the 314# i386-softmmu and x86_64-softmmu with KVM being the single accelerator 315# available. 316# Also use a different coroutine implementation (which is only really of 317# interest to KVM users, i.e. with TCG disabled) 318build-tcg-disabled: 319 extends: .native_build_job_template 320 needs: 321 job: amd64-centos8-container 322 variables: 323 IMAGE: centos8 324 script: 325 - mkdir build 326 - cd build 327 - ../configure --disable-tcg --audio-drv-list="" --with-coroutine=ucontext 328 --disable-docs --disable-sdl --disable-gtk --disable-vnc 329 || { cat config.log meson-logs/meson-log.txt && exit 1; } 330 - make -j"$JOBS" 331 - make check-unit 332 - make check-qapi-schema 333 - cd tests/qemu-iotests/ 334 - ./check -raw 001 002 003 004 005 008 009 010 011 012 021 025 032 033 048 335 052 063 077 086 101 104 106 113 148 150 151 152 157 159 160 163 336 170 171 183 184 192 194 208 221 226 227 236 253 277 image-fleecing 337 - ./check -qcow2 028 051 056 057 058 065 068 082 085 091 095 096 102 122 338 124 132 139 142 144 145 151 152 155 157 165 194 196 200 202 339 208 209 216 218 227 234 246 247 248 250 254 255 257 258 340 260 261 262 263 264 270 272 273 277 279 image-fleecing 341 342build-user: 343 extends: .native_build_job_template 344 needs: 345 job: amd64-debian-user-cross-container 346 variables: 347 IMAGE: debian-all-test-cross 348 CONFIGURE_ARGS: --disable-tools --disable-system 349 --target-list-exclude=alpha-linux-user,sh4-linux-user 350 MAKE_CHECK_ARGS: check-tcg 351 352build-user-static: 353 extends: .native_build_job_template 354 needs: 355 job: amd64-debian-user-cross-container 356 variables: 357 IMAGE: debian-all-test-cross 358 CONFIGURE_ARGS: --disable-tools --disable-system --static 359 --target-list-exclude=alpha-linux-user,sh4-linux-user 360 MAKE_CHECK_ARGS: check-tcg 361 362# targets stuck on older compilers 363build-legacy: 364 extends: .native_build_job_template 365 needs: 366 job: amd64-debian-legacy-cross-container 367 variables: 368 IMAGE: debian-legacy-test-cross 369 TARGETS: alpha-linux-user alpha-softmmu sh4-linux-user 370 CONFIGURE_ARGS: --disable-tools 371 MAKE_CHECK_ARGS: check-tcg 372 373build-user-hexagon: 374 extends: .native_build_job_template 375 needs: 376 job: hexagon-cross-container 377 variables: 378 IMAGE: debian-hexagon-cross 379 TARGETS: hexagon-linux-user 380 CONFIGURE_ARGS: --disable-tools --disable-docs --enable-debug-tcg 381 MAKE_CHECK_ARGS: check-tcg 382 383# Build the softmmu targets we have check-tcg tests and compilers in 384# our omnibus all-test-cross container. Those targets that haven't got 385# Debian cross compiler support need to use special containers. 386build-some-softmmu: 387 extends: .native_build_job_template 388 needs: 389 job: amd64-debian-user-cross-container 390 variables: 391 IMAGE: debian-all-test-cross 392 CONFIGURE_ARGS: --disable-tools --enable-debug 393 TARGETS: arm-softmmu aarch64-softmmu i386-softmmu riscv64-softmmu 394 s390x-softmmu x86_64-softmmu 395 MAKE_CHECK_ARGS: check-tcg 396 397build-loongarch64: 398 extends: .native_build_job_template 399 needs: 400 job: loongarch-debian-cross-container 401 variables: 402 IMAGE: debian-loongarch-cross 403 CONFIGURE_ARGS: --disable-tools --enable-debug 404 TARGETS: loongarch64-linux-user loongarch64-softmmu 405 MAKE_CHECK_ARGS: check-tcg 406 407# We build tricore in a very minimal tricore only container 408build-tricore-softmmu: 409 extends: .native_build_job_template 410 needs: 411 job: tricore-debian-cross-container 412 variables: 413 IMAGE: debian-tricore-cross 414 CONFIGURE_ARGS: --disable-tools --disable-fdt --enable-debug 415 TARGETS: tricore-softmmu 416 MAKE_CHECK_ARGS: check-tcg 417 418clang-system: 419 extends: .native_build_job_template 420 needs: 421 job: amd64-fedora-container 422 variables: 423 IMAGE: fedora 424 CONFIGURE_ARGS: --cc=clang --cxx=clang++ 425 --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined 426 TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu s390x-softmmu 427 MAKE_CHECK_ARGS: check-qtest check-tcg 428 429clang-user: 430 extends: .native_build_job_template 431 needs: 432 job: amd64-debian-user-cross-container 433 timeout: 70m 434 variables: 435 IMAGE: debian-all-test-cross 436 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system 437 --target-list-exclude=alpha-linux-user,microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user 438 --extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined 439 MAKE_CHECK_ARGS: check-unit check-tcg 440 441# Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory. 442# On gitlab runners, default value sometimes end up calling 2 lds concurrently and 443# triggers an Out-Of-Memory error 444# 445# Since slirp callbacks are used in QEMU Timers, we cannot use libslirp with 446# CFI builds, and thus have to disable it here. 447# 448# Split in three sets of build/check/avocado to limit the execution time of each 449# job 450build-cfi-aarch64: 451 extends: 452 - .native_build_job_template 453 - .native_build_artifact_template 454 needs: 455 - job: amd64-fedora-container 456 variables: 457 LD_JOBS: 1 458 AR: llvm-ar 459 IMAGE: fedora 460 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug 461 --enable-safe-stack --disable-slirp 462 TARGETS: aarch64-softmmu 463 MAKE_CHECK_ARGS: check-build 464 # FIXME: This job is often failing, likely due to out-of-memory problems in 465 # the constrained containers of the shared runners. Thus this is marked as 466 # skipped until the situation has been solved. 467 QEMU_JOB_SKIPPED: 1 468 timeout: 90m 469 470check-cfi-aarch64: 471 extends: .native_test_job_template 472 needs: 473 - job: build-cfi-aarch64 474 artifacts: true 475 variables: 476 IMAGE: fedora 477 MAKE_CHECK_ARGS: check 478 479avocado-cfi-aarch64: 480 extends: .avocado_test_job_template 481 needs: 482 - job: build-cfi-aarch64 483 artifacts: true 484 variables: 485 IMAGE: fedora 486 MAKE_CHECK_ARGS: check-avocado 487 488build-cfi-ppc64-s390x: 489 extends: 490 - .native_build_job_template 491 - .native_build_artifact_template 492 needs: 493 - job: amd64-fedora-container 494 variables: 495 LD_JOBS: 1 496 AR: llvm-ar 497 IMAGE: fedora 498 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug 499 --enable-safe-stack --disable-slirp 500 TARGETS: ppc64-softmmu s390x-softmmu 501 MAKE_CHECK_ARGS: check-build 502 # FIXME: This job is often failing, likely due to out-of-memory problems in 503 # the constrained containers of the shared runners. Thus this is marked as 504 # skipped until the situation has been solved. 505 QEMU_JOB_SKIPPED: 1 506 timeout: 80m 507 508check-cfi-ppc64-s390x: 509 extends: .native_test_job_template 510 needs: 511 - job: build-cfi-ppc64-s390x 512 artifacts: true 513 variables: 514 IMAGE: fedora 515 MAKE_CHECK_ARGS: check 516 517avocado-cfi-ppc64-s390x: 518 extends: .avocado_test_job_template 519 needs: 520 - job: build-cfi-ppc64-s390x 521 artifacts: true 522 variables: 523 IMAGE: fedora 524 MAKE_CHECK_ARGS: check-avocado 525 526build-cfi-x86_64: 527 extends: 528 - .native_build_job_template 529 - .native_build_artifact_template 530 needs: 531 - job: amd64-fedora-container 532 variables: 533 LD_JOBS: 1 534 AR: llvm-ar 535 IMAGE: fedora 536 CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-cfi --enable-cfi-debug 537 --enable-safe-stack --disable-slirp 538 TARGETS: x86_64-softmmu 539 MAKE_CHECK_ARGS: check-build 540 timeout: 70m 541 542check-cfi-x86_64: 543 extends: .native_test_job_template 544 needs: 545 - job: build-cfi-x86_64 546 artifacts: true 547 variables: 548 IMAGE: fedora 549 MAKE_CHECK_ARGS: check 550 551avocado-cfi-x86_64: 552 extends: .avocado_test_job_template 553 needs: 554 - job: build-cfi-x86_64 555 artifacts: true 556 variables: 557 IMAGE: fedora 558 MAKE_CHECK_ARGS: check-avocado 559 560tsan-build: 561 extends: .native_build_job_template 562 needs: 563 job: amd64-ubuntu2204-container 564 variables: 565 IMAGE: ubuntu2204 566 CONFIGURE_ARGS: --enable-tsan --cc=clang --cxx=clang++ 567 --enable-trace-backends=ust --disable-slirp 568 TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user 569 570# gcov is a GCC features 571gcov: 572 extends: .native_build_job_template 573 needs: 574 job: amd64-ubuntu2204-container 575 timeout: 80m 576 variables: 577 IMAGE: ubuntu2204 578 CONFIGURE_ARGS: --enable-gcov 579 TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu 580 MAKE_CHECK_ARGS: check-unit check-softfloat 581 after_script: 582 - cd build 583 - gcovr --xml-pretty --exclude-unreachable-branches --print-summary 584 -o coverage.xml --root ${CI_PROJECT_DIR} . *.p 585 coverage: /^\s*lines:\s*\d+.\d+\%/ 586 artifacts: 587 name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA} 588 when: always 589 expire_in: 2 days 590 paths: 591 - build/meson-logs/testlog.txt 592 reports: 593 junit: build/meson-logs/testlog.junit.xml 594 coverage_report: 595 coverage_format: cobertura 596 path: build/coverage.xml 597 598build-oss-fuzz: 599 extends: .native_build_job_template 600 needs: 601 job: amd64-fedora-container 602 variables: 603 IMAGE: fedora 604 script: 605 - mkdir build-oss-fuzz 606 - export LSAN_OPTIONS=suppressions=scripts/oss-fuzz/lsan_suppressions.txt 607 - CC="clang" CXX="clang++" CFLAGS="-fsanitize=address" 608 ./scripts/oss-fuzz/build.sh 609 - export ASAN_OPTIONS="fast_unwind_on_malloc=0" 610 - for fuzzer in $(find ./build-oss-fuzz/DEST_DIR/ -executable -type f 611 | grep -v slirp); do 612 grep "LLVMFuzzerTestOneInput" ${fuzzer} > /dev/null 2>&1 || continue ; 613 echo Testing ${fuzzer} ... ; 614 "${fuzzer}" -runs=1 -seed=1 || exit 1 ; 615 done 616 617build-tci: 618 extends: .native_build_job_template 619 needs: 620 job: amd64-debian-user-cross-container 621 variables: 622 IMAGE: debian-all-test-cross 623 script: 624 - TARGETS="aarch64 arm hppa m68k microblaze ppc64 s390x x86_64" 625 - mkdir build 626 - cd build 627 - ../configure --enable-tcg-interpreter --disable-docs --disable-gtk --disable-vnc 628 --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)" 629 || { cat config.log meson-logs/meson-log.txt && exit 1; } 630 - make -j"$JOBS" 631 - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test 632 - for tg in $TARGETS ; do 633 export QTEST_QEMU_BINARY="./qemu-system-${tg}" ; 634 ./tests/qtest/boot-serial-test || exit 1 ; 635 ./tests/qtest/cdrom-test || exit 1 ; 636 done 637 - QTEST_QEMU_BINARY="./qemu-system-x86_64" ./tests/qtest/pxe-test 638 - QTEST_QEMU_BINARY="./qemu-system-s390x" ./tests/qtest/pxe-test -m slow 639 - make check-tcg 640 641# Check our reduced build configurations 642build-without-defaults: 643 extends: .native_build_job_template 644 needs: 645 job: amd64-centos8-container 646 variables: 647 IMAGE: centos8 648 CONFIGURE_ARGS: 649 --without-default-devices 650 --without-default-features 651 --disable-fdt 652 --disable-pie 653 --disable-qom-cast-debug 654 --disable-strip 655 TARGETS: avr-softmmu mips64-softmmu s390x-softmmu sh4-softmmu 656 sparc64-softmmu hexagon-linux-user i386-linux-user s390x-linux-user 657 MAKE_CHECK_ARGS: check 658 659build-libvhost-user: 660 extends: .base_job_template 661 stage: build 662 image: $CI_REGISTRY_IMAGE/qemu/fedora:$QEMU_CI_CONTAINER_TAG 663 needs: 664 job: amd64-fedora-container 665 script: 666 - mkdir subprojects/libvhost-user/build 667 - cd subprojects/libvhost-user/build 668 - meson 669 - ninja 670 671# No targets are built here, just tools, docs, and unit tests. This 672# also feeds into the eventual documentation deployment steps later 673build-tools-and-docs-debian: 674 extends: 675 - .native_build_job_template 676 - .native_build_artifact_template 677 needs: 678 job: amd64-debian-container 679 # when running on 'master' we use pre-existing container 680 optional: true 681 variables: 682 IMAGE: debian 683 MAKE_CHECK_ARGS: check-unit ctags TAGS cscope 684 CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools 685 QEMU_JOB_PUBLISH: 1 686 687# Prepare for GitLab pages deployment. Anything copied into the 688# "public" directory will be deployed to $USER.gitlab.io/$PROJECT 689# 690# GitLab publishes from any branch that triggers a CI pipeline 691# 692# For the main repo we don't want to publish from 'staging' 693# since that content may not be pushed, nor do we wish to 694# publish from 'stable-NNN' branches as that content is outdated. 695# Thus we restrict to just the default branch 696# 697# For contributor forks we want to publish from any repo so 698# that users can see the results of their commits, regardless 699# of what topic branch they're currently using 700pages: 701 extends: .base_job_template 702 image: $CI_REGISTRY_IMAGE/qemu/debian:$QEMU_CI_CONTAINER_TAG 703 stage: test 704 needs: 705 - job: build-tools-and-docs-debian 706 script: 707 - mkdir -p public 708 # HTML-ised source tree 709 - make gtags 710 # We unset variables to work around a bug in some htags versions 711 # which causes it to fail when the environment is large 712 - CI_COMMIT_MESSAGE= CI_COMMIT_TAG_MESSAGE= htags 713 -anT --tree-view=filetree -m qemu_init 714 -t "Welcome to the QEMU sourcecode" 715 - mv HTML public/src 716 # Project documentation 717 - make -C build install DESTDIR=$(pwd)/temp-install 718 - mv temp-install/usr/local/share/doc/qemu/* public/ 719 artifacts: 720 when: on_success 721 paths: 722 - public 723 variables: 724 QEMU_JOB_PUBLISH: 1 725