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