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) 4stages: 5 - containers 6 - containers-layer2 7 - build 8 - test 9 10include: 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 77build-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 91check-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 100acceptance-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 110build-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 123check-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 132acceptance-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 142build-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 155check-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 166build-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 177acceptance-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 187build-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 201check-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 210acceptance-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 220build-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 234check-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 243acceptance-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 253build-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 265check-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 274acceptance-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 285build-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. 367build-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 387build-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 394build-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 402build-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 413build-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 421build-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 428build-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 436clang-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 446clang-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 455tsan-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 465build-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. 480check-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 491gprof-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 502build-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 520build-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 543build-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 550build-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. 561build-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 572check-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 582build-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 593check-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 603build-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 614check-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 624build-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 630build-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 636build-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 643build-without-default-devices: 644 <<: *native_build_job_definition 645 variables: 646 IMAGE: centos8 647 CONFIGURE_ARGS: --without-default-devices --disable-user 648 649build-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 657check-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 668check-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 678build-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 691pages: 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 709