1variables: 2 FDO_UPSTREAM_REPO: mesa/mesa 3 MESA_TEMPLATES_COMMIT: &ci-templates-commit 290b79e0e78eab67a83766f4e9691be554fc4afd 4 CI_PRE_CLONE_SCRIPT: |- 5 set -o xtrace 6 /usr/bin/wget -q -O- ${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh | bash - 7 set +o xtrace 8 MINIO_HOST: minio-packet.freedesktop.org 9 # per-pipeline artifact storage on MinIO 10 PIPELINE_ARTIFACTS_BASE: ${MINIO_HOST}/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID} 11 # per-job artifact storage on MinIO 12 JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID} 13 # reference images stored for traces 14 PIGLIT_REPLAY_REFERENCE_IMAGES_BASE: "${MINIO_HOST}/mesa-tracie-results/$FDO_UPSTREAM_REPO" 15 # Individual CI farm status, set to "offline" to disable jobs 16 # running on a particular CI farm (ie. for outages, etc): 17 FD_FARM: "online" 18 19include: 20 - project: 'freedesktop/ci-templates' 21 ref: 79c325922670137e8f0a4dc5f6f097e0eb57c1af 22 file: 23 - '/templates/ci-fairy.yml' 24 - project: 'freedesktop/ci-templates' 25 ref: *ci-templates-commit 26 file: 27 - '/templates/debian.yml' 28 - '/templates/fedora.yml' 29 - local: '.gitlab-ci/lava/lava-gitlab-ci.yml' 30 - local: '.gitlab-ci/test-source-dep.yml' 31 - local: 'src/amd/ci/gitlab-ci.yml' 32 - local: 'src/broadcom/ci/gitlab-ci.yml' 33 - local: 'src/etnaviv/ci/gitlab-ci.yml' 34 - local: 'src/freedreno/ci/gitlab-ci.yml' 35 - local: 'src/gallium/drivers/i915/ci/gitlab-ci.yml' 36 - local: 'src/gallium/drivers/iris/ci/gitlab-ci.yml' 37 - local: 'src/gallium/drivers/lima/ci/gitlab-ci.yml' 38 - local: 'src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml' 39 - local: 'src/gallium/drivers/radeonsi/ci/gitlab-ci.yml' 40 - local: 'src/gallium/drivers/softpipe/ci/gitlab-ci.yml' 41 - local: 'src/gallium/drivers/virgl/ci/gitlab-ci.yml' 42 - local: 'src/gallium/drivers/zink/ci/gitlab-ci.yml' 43 - local: 'src/gallium/frontends/lavapipe/ci/gitlab-ci.yml' 44 - local: 'src/panfrost/ci/gitlab-ci.yml' 45 46stages: 47 - sanity 48 - container 49 - git-archive 50 - build-x86_64 51 - build-misc 52 - amd 53 - intel 54 - arm 55 - broadcom 56 - freedreno 57 - etnaviv 58 - software-renderer 59 - layered-backends 60 - deploy 61 62# Generic rule to not run the job during scheduled pipelines 63# ---------------------------------------------------------- 64.scheduled_pipelines-rules: 65 rules: &ignore_scheduled_pipelines 66 if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"' 67 when: never 68 69# YAML anchors for rule conditions 70# -------------------------------- 71.rules-anchors: 72 rules: 73 # For Marge Bot 74 - if: &is-for-marge '$GITLAB_USER_LOGIN == "marge-bot"' 75 when: never 76 # Forked project branch 77 - if: &is-forked-branch '$CI_PROJECT_NAMESPACE != "mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME' 78 when: manual 79 # Forked project branch / pre-merge pipeline not for Marge bot 80 - if: &is-forked-branch-or-pre-merge-not-for-marge '$CI_PROJECT_NAMESPACE != "mesa" || ($GITLAB_USER_LOGIN != "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME)' 81 when: manual 82 # Pipeline runs for the main branch of the upstream Mesa project 83 - if: &is-mesa-main '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_DEFAULT_BRANCH' 84 when: always 85 # Post-merge pipeline 86 - if: &is-post-merge '$CI_PROJECT_NAMESPACE == "mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME' 87 when: on_success 88 # Post-merge pipeline, not for Marge Bot 89 - if: &is-post-merge-not-for-marge '$CI_PROJECT_NAMESPACE == "mesa" && $GITLAB_USER_LOGIN != "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME' 90 when: on_success 91 # Pre-merge pipeline 92 - if: &is-pre-merge '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME' 93 when: on_success 94 # Pre-merge pipeline for Marge Bot 95 - if: &is-pre-merge-for-marge '$GITLAB_USER_LOGIN == "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME' 96 when: on_success 97 98 99.docs-base: 100 extends: 101 - .fdo.ci-fairy 102 - .ci-run-policy 103 script: 104 - apk --no-cache add graphviz doxygen 105 - pip3 install "sphinx<4.0" breathe mako sphinx_rtd_theme 106 - docs/doxygen-wrapper.py --out-dir=docs/doxygen_xml 107 - sphinx-build -W -b html docs public 108 109pages: 110 extends: .docs-base 111 stage: deploy 112 artifacts: 113 paths: 114 - public 115 needs: [] 116 rules: 117 - *ignore_scheduled_pipelines 118 - if: *is-mesa-main 119 changes: &docs-or-ci 120 - docs/**/* 121 - .gitlab-ci.yml 122 when: always 123 # Other cases default to never 124 125test-docs: 126 extends: .docs-base 127 # Cancel job if a newer commit is pushed to the same branch 128 interruptible: true 129 stage: deploy 130 needs: [] 131 rules: 132 - *ignore_scheduled_pipelines 133 - if: *is-forked-branch 134 changes: *docs-or-ci 135 when: manual 136 # Other cases default to never 137 138test-docs-mr: 139 extends: 140 - test-docs 141 needs: 142 - sanity 143 artifacts: 144 expose_as: 'Documentation preview' 145 paths: 146 - public/ 147 rules: 148 - if: *is-pre-merge 149 changes: *docs-or-ci 150 when: on_success 151 # Other cases default to never 152 153# When to automatically run the CI 154.ci-run-policy: 155 rules: 156 - *ignore_scheduled_pipelines 157 # If any files affecting the pipeline are changed, build/test jobs run 158 # automatically once all dependency jobs have passed 159 - changes: &all_paths 160 - VERSION 161 - bin/git_sha1_gen.py 162 - bin/install_megadrivers.py 163 - bin/meson_get_version.py 164 - bin/symbols-check.py 165 # GitLab CI 166 - .gitlab-ci.yml 167 - .gitlab-ci/**/* 168 # Meson 169 - meson* 170 - build-support/**/* 171 - subprojects/**/* 172 # Source code 173 - include/**/* 174 - src/**/* 175 when: on_success 176 # Otherwise, build/test jobs won't run 177 - when: never 178 retry: 179 max: 2 180 when: 181 - runner_system_failure 182 183 184.ci-deqp-artifacts: 185 artifacts: 186 name: "mesa_${CI_JOB_NAME}" 187 when: always 188 untracked: false 189 paths: 190 # Watch out! Artifacts are relative to the build dir. 191 # https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521 192 - artifacts 193 - _build/meson-logs/*.txt 194 - _build/meson-logs/strace 195 196 197# Docker image tag helper templates 198 199.incorporate-templates-commit: 200 variables: 201 FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}" 202 203.incorporate-base-tag+templates-commit: 204 variables: 205 FDO_BASE_IMAGE: "${CI_REGISTRY_IMAGE}/${MESA_BASE_IMAGE}:${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}" 206 FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}" 207 208.set-image: 209 extends: 210 - .incorporate-templates-commit 211 variables: 212 MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}" 213 image: "$MESA_IMAGE" 214 215.set-image-base-tag: 216 extends: 217 - .set-image 218 - .incorporate-base-tag+templates-commit 219 variables: 220 MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}" 221 222 223# Build the CI docker images. 224# 225# MESA_IMAGE_TAG is the tag of the docker image used by later stage jobs. If the 226# image doesn't exist yet, the container stage job generates it. 227# 228# In order to generate a new image, one should generally change the tag. 229# While removing the image from the registry would also work, that's not 230# recommended except for ephemeral images during development: Replacing 231# an image after a significant amount of time might pull in newer 232# versions of gcc/clang or other packages, which might break the build 233# with older commits using the same tag. 234# 235# After merging a change resulting in generating a new image to the 236# main repository, it's recommended to remove the image from the source 237# repository's container registry, so that the image from the main 238# repository's registry will be used there as well. 239 240.container: 241 stage: container 242 extends: 243 - .ci-run-policy 244 - .incorporate-templates-commit 245 rules: 246 - *ignore_scheduled_pipelines 247 # Run pipeline by default in the main project if any CI pipeline 248 # configuration files were changed, to ensure docker images are up to date 249 - if: *is-post-merge 250 changes: 251 - .gitlab-ci.yml 252 - .gitlab-ci/**/* 253 when: on_success 254 # Run pipeline by default if it was triggered by Marge Bot, is for a 255 # merge request, and any files affecting the pipeline were changed 256 - if: *is-pre-merge-for-marge 257 changes: 258 *all_paths 259 when: on_success 260 # Run pipeline by default in the main project if it was not triggered by 261 # Marge Bot, and any files affecting the pipeline were changed 262 - if: *is-post-merge-not-for-marge 263 changes: 264 *all_paths 265 when: on_success 266 # Allow triggering jobs manually in other cases if any files affecting the 267 # pipeline were changed 268 - changes: 269 *all_paths 270 when: manual 271 # Otherwise, container jobs won't run 272 - when: never 273 variables: 274 FDO_DISTRIBUTION_VERSION: bullseye-slim 275 FDO_REPO_SUFFIX: $CI_JOB_NAME 276 FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh' 277 # no need to pull the whole repo to build the container image 278 GIT_STRATEGY: none 279 280.use-base-image: 281 extends: 282 - .container 283 - .incorporate-base-tag+templates-commit 284 # Don't want the .container rules 285 - .ci-run-policy 286 287# Debian 11 based x86 build image base 288debian/x86_build-base: 289 extends: 290 - .fdo.container-build@debian 291 - .container 292 variables: 293 MESA_IMAGE_TAG: &debian-x86_build-base "2021-07-26-python" 294 295.use-debian/x86_build-base: 296 extends: 297 - .fdo.container-build@debian 298 - .use-base-image 299 variables: 300 MESA_BASE_IMAGE: "debian/x86_build-base" 301 MESA_BASE_TAG: *debian-x86_build-base 302 MESA_ARTIFACTS_BASE_TAG: *debian-x86_build-base 303 needs: 304 - debian/x86_build-base 305 306# Debian 11 based x86 main build image 307debian/x86_build: 308 extends: 309 - .use-debian/x86_build-base 310 variables: 311 MESA_IMAGE_TAG: &debian-x86_build "2021-07-02-bump-libdrm" 312 313.use-debian/x86_build: 314 extends: 315 - .set-image-base-tag 316 variables: 317 MESA_BASE_TAG: *debian-x86_build-base 318 MESA_IMAGE_PATH: "debian/x86_build" 319 MESA_IMAGE_TAG: *debian-x86_build 320 needs: 321 - debian/x86_build 322 323# Debian 11 based i386 cross-build image 324debian/i386_build: 325 extends: 326 - .use-debian/x86_build-base 327 variables: 328 MESA_IMAGE_TAG: &debian-i386_build "2021-07-02-bump-libdrm" 329 330.use-debian/i386_build: 331 extends: 332 - .set-image-base-tag 333 variables: 334 MESA_BASE_TAG: *debian-x86_build-base 335 MESA_IMAGE_PATH: "debian/i386_build" 336 MESA_IMAGE_TAG: *debian-i386_build 337 needs: 338 - debian/i386_build 339 340# Debian 11 based ppc64el cross-build image 341debian/ppc64el_build: 342 extends: 343 - .use-debian/x86_build-base 344 variables: 345 MESA_IMAGE_TAG: &debian-ppc64el_build "2021-07-02-bump-libdrm" 346 347.use-debian/ppc64el_build: 348 extends: 349 - .set-image-base-tag 350 variables: 351 MESA_BASE_TAG: *debian-x86_build-base 352 MESA_IMAGE_PATH: "debian/ppc64el_build" 353 MESA_IMAGE_TAG: *debian-ppc64el_build 354 needs: 355 - debian/ppc64el_build 356 357# Debian 11 based s390x cross-build image 358debian/s390x_build: 359 extends: 360 - .use-debian/x86_build-base 361 variables: 362 MESA_IMAGE_TAG: &debian-s390x_build "2021-07-02-bump-libdrm" 363 364.use-debian/s390x_build: 365 extends: 366 - .set-image-base-tag 367 variables: 368 MESA_BASE_TAG: *debian-x86_build-base 369 MESA_IMAGE_PATH: "debian/s390x_build" 370 MESA_IMAGE_TAG: *debian-s390x_build 371 needs: 372 - debian/s390x_build 373 374# Android NDK cross-build image 375debian/android_build: 376 extends: 377 - .use-debian/x86_build-base 378 variables: 379 MESA_IMAGE_TAG: &debian-android_build "2021-10-26-static-libstdcxx" 380 381.use-debian/android_build: 382 extends: 383 - .set-image-base-tag 384 variables: 385 MESA_BASE_TAG: *debian-x86_build-base 386 MESA_IMAGE_PATH: "debian/android_build" 387 MESA_IMAGE_TAG: *debian-android_build 388 needs: 389 - debian/android_build 390 391# Debian 11 based x86 test image base 392debian/x86_test-base: 393 extends: debian/x86_build-base 394 variables: 395 MESA_IMAGE_TAG: &debian-x86_test-base "2021-10-15-va" 396 397.use-debian/x86_test-base: 398 extends: 399 - .fdo.container-build@debian 400 - .use-base-image 401 variables: 402 MESA_BASE_IMAGE: "debian/x86_test-base" 403 MESA_BASE_TAG: *debian-x86_test-base 404 needs: 405 - debian/x86_test-base 406 407# Debian 11 based x86 test image for GL 408debian/x86_test-gl: 409 extends: .use-debian/x86_test-base 410 variables: 411 FDO_DISTRIBUTION_EXEC: 'env KERNEL_URL=${KERNEL_URL} FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh' 412 KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v5.15-for-mesa-ci-540a4af22d71/linux-v5.15-for-mesa-ci-540a4af22d71.tar.bz2" 413 MESA_IMAGE_TAG: &debian-x86_test-gl "2021-11-02-lazor" 414 415# Debian 11 based x86 test image for VK 416debian/x86_test-vk: 417 extends: .use-debian/x86_test-base 418 variables: 419 MESA_IMAGE_TAG: &debian-x86_test-vk "2021-2021-10-15-va" 420 421# Debian 11 based ARM build image 422debian/arm_build: 423 extends: 424 - .fdo.container-build@debian 425 - .container 426 tags: 427 - aarch64 428 variables: 429 MESA_IMAGE_TAG: &debian-arm_build "2021-07-26-python" 430 431.use-debian/arm_build: 432 extends: 433 - .set-image 434 variables: 435 MESA_IMAGE_PATH: "debian/arm_build" 436 MESA_IMAGE_TAG: *debian-arm_build 437 MESA_ARTIFACTS_TAG: *debian-arm_build 438 needs: 439 - debian/arm_build 440 441 442# Fedora 34 based x86 build image 443fedora/x86_build: 444 extends: 445 - .fdo.container-build@fedora 446 - .container 447 variables: 448 FDO_DISTRIBUTION_VERSION: 34 449 MESA_IMAGE_TAG: &fedora-x86_build "2021-07-08-bump-libdrm" 450 451.use-fedora/x86_build: 452 extends: 453 - .set-image 454 variables: 455 MESA_IMAGE_PATH: "fedora/x86_build" 456 MESA_IMAGE_TAG: *fedora-x86_build 457 needs: 458 - fedora/x86_build 459 460 461.kernel+rootfs: 462 extends: 463 - .ci-run-policy 464 stage: container 465 variables: 466 GIT_STRATEGY: fetch 467 KERNEL_URL: *kernel-rootfs-url 468 MESA_ROOTFS_TAG: &kernel-rootfs "2021-11-02-lazor" 469 DISTRIBUTION_TAG: &distribution-tag-arm "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}" 470 script: 471 - .gitlab-ci/container/lava_build.sh 472 473kernel+rootfs_amd64: 474 extends: 475 - .use-debian/x86_build-base 476 - .kernel+rootfs 477 image: "$FDO_BASE_IMAGE" 478 variables: 479 DEBIAN_ARCH: "amd64" 480 DISTRIBUTION_TAG: &distribution-tag-amd64 "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_BASE_TAG}--${MESA_TEMPLATES_COMMIT}" 481 482kernel+rootfs_arm64: 483 extends: 484 - .use-debian/arm_build 485 - .kernel+rootfs 486 tags: 487 - aarch64 488 variables: 489 DEBIAN_ARCH: "arm64" 490 491kernel+rootfs_armhf: 492 extends: 493 - kernel+rootfs_arm64 494 variables: 495 DEBIAN_ARCH: "armhf" 496 497# Cannot use anchors defined here from included files, so use extends: instead 498.use-kernel+rootfs-arm: 499 variables: 500 DISTRIBUTION_TAG: *distribution-tag-arm 501 MESA_ROOTFS_TAG: *kernel-rootfs 502 503.use-kernel+rootfs-amd64: 504 variables: 505 DISTRIBUTION_TAG: *distribution-tag-amd64 506 MESA_ROOTFS_TAG: *kernel-rootfs 507 508# x86 image with ARM64 & armhf kernel & rootfs for baremetal testing 509debian/arm_test: 510 extends: 511 - .fdo.container-build@debian 512 - .container 513 # Don't want the .container rules 514 - .ci-run-policy 515 needs: 516 - kernel+rootfs_arm64 517 - kernel+rootfs_armhf 518 variables: 519 FDO_DISTRIBUTION_EXEC: 'env ARTIFACTS_PREFIX=https://${MINIO_HOST}/mesa-lava ARTIFACTS_SUFFIX=${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT} CI_PROJECT_PATH=${CI_PROJECT_PATH} FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} FDO_UPSTREAM_REPO=${FDO_UPSTREAM_REPO} bash .gitlab-ci/container/${CI_JOB_NAME}.sh' 520 FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT}" 521 MESA_ARM_BUILD_TAG: *debian-arm_build 522 MESA_IMAGE_TAG: &debian-arm_test "2021-09-17-deqp" 523 MESA_ROOTFS_TAG: *kernel-rootfs 524 525.use-debian/arm_test: 526 image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT}" 527 variables: 528 MESA_ARM_BUILD_TAG: *debian-arm_build 529 MESA_IMAGE_PATH: "debian/arm_test" 530 MESA_IMAGE_TAG: *debian-arm_test 531 MESA_ROOTFS_TAG: *kernel-rootfs 532 needs: 533 - debian/arm_test 534 535# Native Windows docker builds 536# 537# Unlike the above Linux-based builds - including MinGW builds which 538# cross-compile for Windows - which use the freedesktop ci-templates, we 539# cannot use the same scheme here. As Windows lacks support for 540# Docker-in-Docker, and Podman does not run natively on Windows, we have 541# to open-code much of the same ourselves. 542# 543# This is achieved by first running in a native Windows shell instance 544# (host PowerShell) in the container stage to build and push the image, 545# then in the build stage by executing inside Docker. 546 547.windows-docker-vs2019: 548 extends: 549 - .set-image 550 variables: 551 MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}" 552 MESA_IMAGE_PATH: "windows/x64_build" 553 MESA_IMAGE_TAG: "2021-06-24-zink-msvc" 554 MESA_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MESA_IMAGE_PATH:${MESA_IMAGE_TAG}" 555 556windows_build_vs2019: 557 extends: 558 - .container 559 - .windows-docker-vs2019 560 stage: container 561 variables: 562 GIT_STRATEGY: fetch # we do actually need the full repository though 563 timeout: 2h 30m # LLVM + piglit takes ages 564 tags: 565 - windows 566 - shell 567 - "1809" 568 - mesa 569 script: 570 - .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $MESA_IMAGE $MESA_UPSTREAM_IMAGE 571 572.use-windows_build_vs2019: 573 extends: .windows-docker-vs2019 574 image: "$MESA_IMAGE" 575 needs: 576 - windows_build_vs2019 577 578 579# Git archive 580 581make git archive: 582 extends: 583 - .fdo.ci-fairy 584 stage: git-archive 585 rules: 586 - if: *is-scheduled-pipeline 587 when: on_success 588 # ensure we are running on packet 589 tags: 590 - packet.net 591 script: 592 # Compactify the .git directory 593 - git gc --aggressive 594 # compress the current folder 595 - tar -cvzf ../$CI_PROJECT_NAME.tar.gz . 596 597 # login with the JWT token 598 - ci-fairy minio login $CI_JOB_JWT 599 - ci-fairy minio cp ../$CI_PROJECT_NAME.tar.gz minio://$MINIO_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz 600 601 602# Sanity checks of MR settings and commit logs 603sanity: 604 extends: 605 - .fdo.ci-fairy 606 stage: sanity 607 rules: 608 - if: *is-pre-merge 609 when: on_success 610 # Other cases default to never 611 variables: 612 GIT_STRATEGY: none 613 script: 614 # ci-fairy check-commits --junit-xml=check-commits.xml 615 - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request.xml 616 artifacts: 617 when: on_failure 618 reports: 619 junit: check-*.xml 620 621 622# BUILD 623 624# Shared between windows and Linux 625.build-common: 626 extends: .ci-run-policy 627 # Cancel job if a newer commit is pushed to the same branch 628 interruptible: true 629 artifacts: 630 name: "mesa_${CI_JOB_NAME}" 631 when: always 632 paths: 633 - _build/meson-logs/*.txt 634 - _build/meson-logs/strace 635 - shader-db 636 637# Just Linux 638.build-linux: 639 extends: .build-common 640 variables: 641 CCACHE_COMPILERCHECK: "content" 642 CCACHE_COMPRESS: "true" 643 CCACHE_DIR: /cache/mesa/ccache 644 # Use ccache transparently, and print stats before/after 645 before_script: 646 - export PATH="/usr/lib/ccache:$PATH" 647 - export CCACHE_BASEDIR="$PWD" 648 - ccache --show-stats 649 after_script: 650 - ccache --show-stats 651 652.build-windows: 653 extends: .build-common 654 tags: 655 - windows 656 - docker 657 - "1809" 658 - mesa 659 cache: 660 key: ${CI_JOB_NAME} 661 paths: 662 - subprojects/packagecache 663 664.meson-build: 665 extends: 666 - .build-linux 667 - .use-debian/x86_build 668 stage: build-x86_64 669 variables: 670 LLVM_VERSION: 11 671 script: 672 - .gitlab-ci/meson/build.sh 673 674debian-testing: 675 extends: 676 - .meson-build 677 - .ci-deqp-artifacts 678 variables: 679 UNWIND: "enabled" 680 DRI_LOADERS: > 681 -D glx=dri 682 -D gbm=enabled 683 -D egl=enabled 684 -D platforms=x11 685 GALLIUM_ST: > 686 -D dri3=enabled 687 -D gallium-va=enabled 688 GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,iris,i915" 689 VULKAN_DRIVERS: "swrast,amd" 690 BUILDTYPE: "debugoptimized" 691 EXTRA_OPTION: > 692 -D valgrind=false 693 MINIO_ARTIFACT_NAME: mesa-amd64 694 script: 695 - .gitlab-ci/meson/build.sh 696 - .gitlab-ci/prepare-artifacts.sh 697 698debian-testing-asan: 699 extends: 700 - debian-testing 701 variables: 702 C_ARGS: > 703 -Wno-error=stringop-truncation 704 EXTRA_OPTION: > 705 -D b_sanitize=address 706 -D valgrind=false 707 MINIO_ARTIFACT_NAME: "" 708 ARTIFACTS_DEBUG_SYMBOLS: 1 709 710debian-clover-testing: 711 extends: 712 - .meson-build 713 - .ci-deqp-artifacts 714 variables: 715 UNWIND: "enabled" 716 DRI_LOADERS: > 717 -D glx=disabled 718 -D egl=disabled 719 -D gbm=disabled 720 GALLIUM_ST: > 721 -D gallium-opencl=icd 722 -D opencl-spirv=true 723 GALLIUM_DRIVERS: "swrast" 724 BUILDTYPE: "debugoptimized" 725 EXTRA_OPTION: > 726 -D valgrind=false 727 script: 728 - .gitlab-ci/meson/build.sh 729 - .gitlab-ci/prepare-artifacts.sh 730 731debian-gallium: 732 extends: .meson-build 733 variables: 734 UNWIND: "enabled" 735 DRI_LOADERS: > 736 -D glx=dri 737 -D gbm=enabled 738 -D egl=enabled 739 -D platforms=x11,wayland 740 GALLIUM_ST: > 741 -D dri3=enabled 742 -D gallium-extra-hud=true 743 -D gallium-vdpau=enabled 744 -D gallium-xvmc=enabled 745 -D gallium-omx=bellagio 746 -D gallium-va=enabled 747 -D gallium-xa=enabled 748 -D gallium-nine=true 749 -D gallium-opencl=disabled 750 GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus" 751 VULKAN_DRIVERS: swrast 752 EXTRA_OPTION: > 753 -D osmesa=true 754 -D tools=all 755 script: 756 - .gitlab-ci/meson/build.sh 757 - .gitlab-ci/run-shader-db.sh 758 759# Test a release build with -Werror so new warnings don't sneak in. 760debian-release: 761 extends: .meson-build 762 variables: 763 UNWIND: "enabled" 764 DRI_LOADERS: > 765 -D glx=dri 766 -D gbm=enabled 767 -D egl=enabled 768 -D platforms=x11,wayland 769 GALLIUM_ST: > 770 -D dri3=enabled 771 -D gallium-extra-hud=true 772 -D gallium-vdpau=enabled 773 -D gallium-xvmc=disabled 774 -D gallium-omx=disabled 775 -D gallium-va=enabled 776 -D gallium-xa=enabled 777 -D gallium-nine=false 778 -D gallium-opencl=disabled 779 -D llvm=false 780 GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,crocus" 781 VULKAN_DRIVERS: "amd" 782 BUILDTYPE: "release" 783 EXTRA_OPTION: > 784 -D osmesa=true 785 -D tools=all 786 script: 787 - .gitlab-ci/meson/build.sh 788 789fedora-release: 790 extends: 791 - .meson-build 792 - .use-fedora/x86_build 793 variables: 794 BUILDTYPE: "release" 795 C_ARGS: > 796 -Wno-error=array-bounds 797 -Wno-error=maybe-uninitialized 798 -Wno-error=stringop-overread 799 -Wno-error=uninitialized 800 CPP_ARGS: > 801 -Wno-error=array-bounds 802 DRI_DRIVERS: "nouveau,i915,i965,r100,r200" 803 DRI_LOADERS: > 804 -D glx=dri 805 -D gbm=enabled 806 -D egl=enabled 807 -D glvnd=true 808 -D platforms=x11,wayland 809 EXTRA_OPTION: > 810 -D osmesa=true 811 -D selinux=true 812 -D tools=drm-shim,etnaviv,freedreno,glsl,intel,nir,nouveau,lima,panfrost 813 GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink" 814 GALLIUM_ST: > 815 -D dri3=enabled 816 -D gallium-extra-hud=true 817 -D gallium-vdpau=enabled 818 -D gallium-xvmc=disabled 819 -D gallium-omx=disabled 820 -D gallium-va=enabled 821 -D gallium-xa=enabled 822 -D gallium-nine=false 823 -D gallium-opencl=icd 824 -D gles1=disabled 825 -D gles2=enabled 826 -D llvm=enabled 827 -D microsoft-clc=disabled 828 -D shared-llvm=enabled 829 -D vulkan-device-select-layer=true 830 LLVM_VERSION: "" 831 UNWIND: "disabled" 832 VULKAN_DRIVERS: "amd,broadcom,freedreno,intel" 833 script: 834 - .gitlab-ci/meson/build.sh 835 836debian-android: 837 extends: 838 - .meson-cross 839 - .use-debian/android_build 840 variables: 841 UNWIND: "disabled" 842 C_ARGS: > 843 -Wno-error=absolute-value 844 -Wno-error=asm-operand-widths 845 -Wno-error=constant-conversion 846 -Wno-error=enum-conversion 847 -Wno-error=extern-initializer 848 -Wno-error=initializer-overrides 849 -Wno-error=missing-braces 850 -Wno-error=sometimes-uninitialized 851 -Wno-error=tautological-constant-out-of-range-compare 852 -Wno-error=unused-function 853 -Wno-error=unused-label 854 CPP_ARGS: > 855 -Wno-error=deprecated-declarations 856 -Wno-error=non-virtual-dtor 857 DRI_LOADERS: > 858 -D glx=disabled 859 -D gbm=disabled 860 -D egl=enabled 861 -D platforms=android 862 EXTRA_OPTION: > 863 -D android-stub=true 864 -D llvm=disabled 865 -D platform-sdk-version=29 866 -D valgrind=false 867 GALLIUM_ST: > 868 -D dri3=disabled 869 -D gallium-vdpau=disabled 870 -D gallium-xvmc=disabled 871 -D gallium-omx=disabled 872 -D gallium-va=disabled 873 -D gallium-xa=disabled 874 -D gallium-nine=false 875 -D gallium-opencl=disabled 876 LLVM_VERSION: "" 877 PKG_CONFIG_LIBDIR: "/disable/non/android/system/pc/files" 878 script: 879 - PKG_CONFIG_PATH=/usr/local/lib/aarch64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/pkgconfig/ CROSS=aarch64-linux-android GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d VULKAN_DRIVERS=freedreno,broadcom,virtio-experimental .gitlab-ci/meson/build.sh 880 # x86_64 build: 881 # Can't do Intel because gen_decoder.c currently requires libexpat, which 882 # is not a dependency that AOSP wants to accept. Can't do Radeon because 883 # it requires LLVM, which we don't have an Android build of. 884 - PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/pkgconfig/ CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris VULKAN_DRIVERS=intel .gitlab-ci/meson/build.sh 885 886.meson-cross: 887 extends: 888 - .meson-build 889 stage: build-misc 890 variables: 891 UNWIND: "disabled" 892 DRI_LOADERS: > 893 -D glx=dri 894 -D gbm=enabled 895 -D egl=enabled 896 -D platforms=x11 897 -D osmesa=false 898 GALLIUM_ST: > 899 -D dri3=enabled 900 -D gallium-vdpau=disabled 901 -D gallium-xvmc=disabled 902 -D gallium-omx=disabled 903 -D gallium-va=disabled 904 -D gallium-xa=disabled 905 -D gallium-nine=false 906 907.meson-arm: 908 extends: 909 - .meson-cross 910 - .use-debian/arm_build 911 needs: 912 - debian/arm_build 913 variables: 914 VULKAN_DRIVERS: freedreno,broadcom 915 GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4" 916 BUILDTYPE: "debugoptimized" 917 tags: 918 - aarch64 919 920debian-armhf: 921 extends: 922 - .meson-arm 923 - .ci-deqp-artifacts 924 variables: 925 CROSS: armhf 926 EXTRA_OPTION: > 927 -D llvm=disabled 928 -D valgrind=false 929 MINIO_ARTIFACT_NAME: mesa-armhf 930 script: 931 - .gitlab-ci/meson/build.sh 932 - .gitlab-ci/prepare-artifacts.sh 933 934debian-arm64: 935 extends: 936 - .meson-arm 937 - .ci-deqp-artifacts 938 variables: 939 VULKAN_DRIVERS: "freedreno,broadcom,panfrost" 940 EXTRA_OPTION: > 941 -D llvm=disabled 942 -D valgrind=false 943 MINIO_ARTIFACT_NAME: mesa-arm64 944 script: 945 - .gitlab-ci/meson/build.sh 946 - .gitlab-ci/prepare-artifacts.sh 947 948debian-arm64-asan: 949 extends: 950 - debian-arm64 951 variables: 952 C_ARGS: > 953 -Wno-error=stringop-truncation 954 EXTRA_OPTION: > 955 -D llvm=disabled 956 -D b_sanitize=address 957 -D valgrind=false 958 ARTIFACTS_DEBUG_SYMBOLS: 1 959 MINIO_ARTIFACT_NAME: mesa-arm64-asan 960 MESON_TEST_ARGS: "--no-suite mesa:compiler" 961 962debian-arm64-build-test: 963 extends: 964 - .meson-arm 965 - .ci-deqp-artifacts 966 variables: 967 VULKAN_DRIVERS: "amd" 968 EXTRA_OPTION: > 969 -Dtools=panfrost 970 script: 971 - .gitlab-ci/meson/build.sh 972 973debian-clang: 974 extends: .meson-build 975 variables: 976 UNWIND: "enabled" 977 C_ARGS: > 978 -Wno-error=absolute-value 979 -Wno-error=constant-conversion 980 -Wno-error=constant-logical-operand 981 -Wno-error=enum-conversion 982 -Wno-error=gnu-variable-sized-type-not-at-end 983 -Wno-error=implicit-const-int-float-conversion 984 -Wno-error=initializer-overrides 985 -Wno-error=misleading-indentation 986 -Wno-error=mismatched-tags 987 -Wno-error=missing-braces 988 -Wno-error=overloaded-virtual 989 -Wno-error=self-assign 990 -Wno-error=sometimes-uninitialized 991 -Wno-error=tautological-constant-compare 992 -Wno-error=tautological-constant-out-of-range-compare 993 -Wno-error=tautological-overlap-compare 994 -Wno-error=typedef-redefinition 995 -Wno-error=unused-function 996 -Wno-error=unused-private-field 997 -Wno-error=xor-used-as-pow 998 CPP_ARGS: > 999 -Wno-error=c99-designator 1000 -Wno-error=constant-logical-operand 1001 -Wno-error=deprecated-declarations 1002 -Wno-error=implicit-const-int-float-conversion 1003 -Wno-error=mismatched-tags 1004 -Wno-error=missing-braces 1005 -Wno-error=overloaded-virtual 1006 -Wno-error=self-assign 1007 -Wno-error=sometimes-uninitialized 1008 -Wno-error=tautological-constant-out-of-range-compare 1009 -Wno-error=unused-const-variable 1010 -Wno-error=unused-private-field 1011 -Wno-error=unused-value 1012 -Wno-error=unused-variable 1013 DRI_LOADERS: > 1014 -D glvnd=true 1015 DRI_DRIVERS: "auto" 1016 GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus" 1017 VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio-experimental 1018 CC: clang 1019 CXX: clang++ 1020 1021windows-vs2019: 1022 extends: 1023 - .build-windows 1024 - .use-windows_build_vs2019 1025 - .windows-build-rules 1026 stage: build-misc 1027 script: 1028 - . .\.gitlab-ci\windows\mesa_build.ps1 1029 artifacts: 1030 paths: 1031 - _build/meson-logs/*.txt 1032 - _install/ 1033 1034test-d3d12-windows: 1035 extends: 1036 - .build-windows 1037 - .use-windows_build_vs2019 1038 - .windows-test-rules 1039 stage: layered-backends 1040 dependencies: 1041 - windows-vs2019 1042 needs: 1043 - windows-vs2019 1044 variables: 1045 GIT_STRATEGY: none # testing doesn't build anything from source 1046 GALLIUM_DRIVER: d3d12 1047 PIGLIT_PROFILE: quick_gl 1048 PIGLIT_TESTS: -x nv_copy_depth_to_color -x repeat-wait -x arb_timer_query@timestamp-get 1049 script: 1050 - . _install/piglit_run.ps1 1051 artifacts: 1052 when: on_failure 1053 name: "mesa_${CI_JOB_NAME}" 1054 paths: 1055 - summary/ 1056 1057debian-clover: 1058 extends: .meson-build 1059 variables: 1060 UNWIND: "enabled" 1061 DRI_LOADERS: > 1062 -D glx=disabled 1063 -D egl=disabled 1064 -D gbm=disabled 1065 GALLIUM_DRIVERS: "r600,radeonsi" 1066 GALLIUM_ST: > 1067 -D dri3=disabled 1068 -D gallium-vdpau=disabled 1069 -D gallium-xvmc=disabled 1070 -D gallium-omx=disabled 1071 -D gallium-va=disabled 1072 -D gallium-xa=disabled 1073 -D gallium-nine=false 1074 -D gallium-opencl=icd 1075 EXTRA_OPTION: > 1076 -D valgrind=false 1077 script: 1078 - LLVM_VERSION=9 GALLIUM_DRIVERS=r600,swrast .gitlab-ci/meson/build.sh 1079 - .gitlab-ci/meson/build.sh 1080 1081debian-vulkan: 1082 extends: .meson-build 1083 variables: 1084 UNWIND: "disabled" 1085 DRI_LOADERS: > 1086 -D glx=disabled 1087 -D gbm=disabled 1088 -D egl=disabled 1089 -D platforms=x11,wayland 1090 -D osmesa=false 1091 GALLIUM_ST: > 1092 -D dri3=enabled 1093 -D gallium-vdpau=disabled 1094 -D gallium-xvmc=disabled 1095 -D gallium-omx=disabled 1096 -D gallium-va=disabled 1097 -D gallium-xa=disabled 1098 -D gallium-nine=false 1099 -D gallium-opencl=disabled 1100 -D b_sanitize=undefined 1101 -D c_args=-fno-sanitize-recover=all 1102 -D cpp_args=-fno-sanitize-recover=all 1103 UBSAN_OPTIONS: "print_stacktrace=1" 1104 VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio-experimental 1105 EXTRA_OPTION: > 1106 -D vulkan-layers=device-select,overlay 1107 -D build-aco-tests=true 1108 1109debian-i386: 1110 extends: 1111 - .meson-cross 1112 - .use-debian/i386_build 1113 variables: 1114 CROSS: i386 1115 VULKAN_DRIVERS: intel,amd,swrast,virtio-experimental 1116 GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,swrast,virgl,zink,crocus" 1117 DRI_DRIVERS: "i915,i965,r100,r200,nouveau" 1118 EXTRA_OPTION: > 1119 -D vulkan-layers=device-select,overlay 1120 1121debian-s390x: 1122 extends: 1123 - debian-ppc64el 1124 - .use-debian/s390x_build 1125 - .s390x-rules 1126 tags: 1127 - kvm 1128 variables: 1129 CROSS: s390x 1130 GALLIUM_DRIVERS: "swrast,zink" 1131 # The lp_test_blend test times out with LLVM 11 1132 LLVM_VERSION: 9 1133 VULKAN_DRIVERS: "swrast" 1134 1135debian-ppc64el: 1136 extends: 1137 - .meson-cross 1138 - .use-debian/ppc64el_build 1139 - .ppc64el-rules 1140 variables: 1141 CROSS: ppc64el 1142 GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl,zink" 1143 VULKAN_DRIVERS: "amd,swrast" 1144 1145debian-mingw32-x86_64: 1146 extends: .meson-build 1147 stage: build-misc 1148 variables: 1149 UNWIND: "disabled" 1150 C_ARGS: > 1151 -Wno-error=format 1152 -Wno-error=format-extra-args 1153 CPP_ARGS: $C_ARGS 1154 DRI_DRIVERS: "" 1155 GALLIUM_DRIVERS: "swrast" 1156 EXTRA_OPTION: > 1157 -Dllvm=disabled 1158 -Dzlib=disabled 1159 -Dosmesa=true 1160 --cross-file=.gitlab-ci/x86_64-w64-mingw32 1161 1162.test: 1163 extends: 1164 - .ci-run-policy 1165 # Cancel job if a newer commit is pushed to the same branch 1166 interruptible: true 1167 variables: 1168 GIT_STRATEGY: none # testing doesn't build anything from source 1169 before_script: 1170 # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY 1171 - rm -rf install 1172 - tar -xf artifacts/install.tar 1173 - LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \; 1174 artifacts: 1175 when: always 1176 name: "mesa_${CI_JOB_NAME}" 1177 paths: 1178 - results/ 1179 1180.use-debian/x86_test-gl: 1181 extends: 1182 - .test 1183 - .set-image-base-tag 1184 variables: 1185 MESA_BASE_TAG: *debian-x86_test-base 1186 MESA_IMAGE_PATH: "debian/x86_test-gl" 1187 MESA_IMAGE_TAG: *debian-x86_test-gl 1188 needs: 1189 - debian/x86_test-gl 1190 1191.test-gl: 1192 extends: 1193 - .use-debian/x86_test-gl 1194 needs: 1195 - debian/x86_test-gl 1196 - debian-testing 1197 1198.test-vk: 1199 extends: 1200 - .test 1201 - .set-image-base-tag 1202 variables: 1203 MESA_BASE_TAG: *debian-x86_test-base 1204 MESA_IMAGE_PATH: "debian/x86_test-vk" 1205 MESA_IMAGE_TAG: *debian-x86_test-vk 1206 needs: 1207 - debian-testing 1208 - debian/x86_test-vk 1209 1210.test-cl: 1211 extends: 1212 - .use-debian/x86_test-gl 1213 needs: 1214 - debian/x86_test-gl 1215 - debian-clover-testing 1216 1217.vkd3d-proton-test: 1218 artifacts: 1219 when: on_failure 1220 name: "mesa_${CI_JOB_NAME}" 1221 paths: 1222 - results/vkd3d-proton.log 1223 script: 1224 - ./install/vkd3d-proton/run.sh 1225 1226.piglit-test: 1227 artifacts: 1228 when: on_failure 1229 name: "mesa_${CI_JOB_NAME}" 1230 paths: 1231 - results/summary/ 1232 - results/*.txt 1233 variables: 1234 PIGLIT_NO_WINDOW: 1 1235 script: 1236 - install/piglit/run.sh 1237 1238.piglit-traces-test: 1239 extends: 1240 - .piglit-test 1241 cache: 1242 key: ${CI_JOB_NAME} 1243 paths: 1244 - replayer-db/ 1245 artifacts: 1246 when: on_failure 1247 name: "mesa_${CI_JOB_NAME}" 1248 reports: 1249 junit: results/junit.xml 1250 variables: 1251 PIGLIT_PROFILES: replay 1252 PIGLIT_REPLAY_UPLOAD_TO_MINIO: 1 1253 PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_host=minio-packet.freedesktop.org --minio_bucket=mesa-tracie-public --role-session-name=${CI_PROJECT_PATH}:${CI_JOB_ID} --jwt=${CI_JOB_JWT} 1254 PIGLIT_JUNIT_RESULTS: 1 1255 1256.deqp-test: 1257 script: 1258 - ./install/deqp-runner.sh 1259 artifacts: 1260 exclude: 1261 - results/*.shader_cache 1262 reports: 1263 junit: results/junit.xml 1264 1265.deqp-test-vk: 1266 extends: 1267 - .deqp-test 1268 variables: 1269 DEQP_VER: vk 1270 1271.fossilize-test: 1272 script: 1273 - ./install/fossilize-runner.sh 1274 artifacts: 1275 when: on_failure 1276 name: "mesa_${CI_JOB_NAME}" 1277 paths: 1278 - results/ 1279 1280# Rules for tests that should not be present in MRs or the main 1281# project's pipeline (don't block marge or report red on 1282# mesa/mesa main) but should be present on pipelines in personal 1283# branches (so you can opt in to running the flaky test when you want 1284# to). 1285.test-manual: 1286 rules: 1287 - *ignore_scheduled_pipelines 1288 - if: *is-forked-branch 1289 changes: 1290 *all_paths 1291 when: manual 1292 - when: never 1293 variables: 1294 GIT_STRATEGY: none 1295 JOB_TIMEOUT: 80 1296 1297# The above .test-manual rules doesn't allow the jobs to be available for MRs 1298# but we should have an option to have manual jobs in MRs as well. 1299.test-manual-mr: 1300 rules: 1301 - *ignore_scheduled_pipelines 1302 - if: *is-forked-branch-or-pre-merge-not-for-marge 1303 changes: 1304 *all_paths 1305 when: manual 1306 - when: never 1307 variables: 1308 GIT_STRATEGY: none 1309 JOB_TIMEOUT: 80 1310 1311.baremetal-test: 1312 extends: 1313 - .ci-run-policy 1314 - .test 1315 # Cancel job if a newer commit is pushed to the same branch 1316 interruptible: true 1317 stage: test 1318 before_script: 1319 # Use this instead of gitlab's artifacts download because it hits packet.net 1320 # instead of fd.o. Set FDO_HTTP_CACHE_URI to an http cache for your test lab to 1321 # improve it even more (see https://docs.mesa3d.org/ci/bare-metal.html for 1322 # setup). 1323 - wget ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${MINIO_ARTIFACT_NAME}.tar.gz -S --progress=dot:giga -O- | tar -xz 1324 artifacts: 1325 when: always 1326 name: "mesa_${CI_JOB_NAME}" 1327 paths: 1328 - results/ 1329 - serial*.txt 1330 exclude: 1331 - results/*.shader_cache 1332 reports: 1333 junit: results/junit.xml 1334 1335.baremetal-test-armhf: 1336 extends: 1337 - .baremetal-test 1338 variables: 1339 MINIO_ARTIFACT_NAME: mesa-armhf 1340 1341.baremetal-arm64-asan-test: 1342 variables: 1343 DEQP_RUNNER_OPTIONS: "--env LD_PRELOAD=libasan.so.6" 1344 MINIO_ARTIFACT_NAME: mesa-arm64-asan 1345 needs: 1346 - debian/arm_test 1347 - job: debian-arm64-asan 1348 artifacts: false 1349 1350.baremetal-deqp-test: 1351 variables: 1352 HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" 1353 FDO_CI_CONCURRENT: 0 # Default to number of CPUs 1354