Unlike other containers (e.g. debian/x86_64_build-base and debian/x86_64_build), debian/arm64_build is a single-stage image without a separate -base variant. Including DEBIAN_BUILD_TAG in its FDO_DISTRIBUTION_TAG ensures it gets rebuilt when the build tag changes. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12737 Signed-off-by: Valentine Burley <valentine.burley@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35000>
825 lines
24 KiB
YAML
825 lines
24 KiB
YAML
# Docker image tag helper templates
|
|
|
|
.incorporate-templates-commit:
|
|
variables:
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.incorporate-base-tag+templates-commit:
|
|
variables:
|
|
FDO_BASE_IMAGE: "${CI_REGISTRY_IMAGE}/${MESA_BASE_IMAGE}:${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.set-image:
|
|
extends:
|
|
- .incorporate-templates-commit
|
|
variables:
|
|
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
|
|
image: "$MESA_IMAGE"
|
|
|
|
.set-image-base-tag:
|
|
extends:
|
|
- .set-image
|
|
- .incorporate-base-tag+templates-commit
|
|
variables:
|
|
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
|
|
|
|
# Build the CI docker images.
|
|
#
|
|
# MESA_IMAGE_TAG is the tag of the docker image used by later stage jobs. If the
|
|
# image doesn't exist yet, the container stage job generates it.
|
|
#
|
|
# In order to generate a new image, one should generally change the tag.
|
|
# While removing the image from the registry would also work, that's not
|
|
# recommended except for ephemeral images during development: Replacing
|
|
# an image after a significant amount of time might pull in newer
|
|
# versions of gcc/clang or other packages, which might break the build
|
|
# with older commits using the same tag.
|
|
#
|
|
# After merging a change resulting in generating a new image to the
|
|
# main repository, it's recommended to remove the image from the source
|
|
# repository's container registry, so that the image from the main
|
|
# repository's registry will be used there as well.
|
|
|
|
.debian-container-version:
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: bookworm-slim
|
|
|
|
.debian-container:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .container
|
|
- .debian-container-version
|
|
|
|
.container:
|
|
stage: container
|
|
timeout: 1h
|
|
extends:
|
|
- .container+build-rules
|
|
- .incorporate-templates-commit
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
variables:
|
|
FDO_REPO_SUFFIX: $CI_JOB_NAME
|
|
FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/container/container_job_trampoline.sh "${CI_JOB_NAME}"'
|
|
# no need to pull the whole repo to build the container image
|
|
GIT_STRATEGY: none
|
|
CI_BUILD_COMPONENTS: "$CI_BUILD_COMPONENTS_ANGLE $CI_BUILD_COMPONENTS_CROSVM $CI_BUILD_COMPONENTS_FLUSTER $CI_BUILD_COMPONENTS_PIGLIT"
|
|
|
|
.container-builds-angle:
|
|
variables:
|
|
ANGLE_TAG: "${CONDITIONAL_BUILD_ANGLE_TAG}"
|
|
CI_BUILD_COMPONENTS_ANGLE: angle
|
|
|
|
.container-builds-crosvm:
|
|
variables:
|
|
CROSVM_TAG: "${CONDITIONAL_BUILD_CROSVM_TAG}"
|
|
CI_BUILD_COMPONENTS_CROSVM: crosvm
|
|
|
|
.container-builds-fluster:
|
|
variables:
|
|
FLUSTER_TAG: "${CONDITIONAL_BUILD_FLUSTER_TAG}"
|
|
CI_BUILD_COMPONENTS_FLUSTER: fluster
|
|
|
|
.container-builds-piglit:
|
|
variables:
|
|
PIGLIT_TAG: "${CONDITIONAL_BUILD_PIGLIT_TAG}"
|
|
CI_BUILD_COMPONENTS_PIGLIT: piglit
|
|
|
|
.container-builds-android:
|
|
extends:
|
|
- .container-builds-angle
|
|
|
|
.container-builds-arm32:
|
|
extends:
|
|
- .container-builds-piglit
|
|
|
|
.container-builds-base:
|
|
extends:
|
|
- .container-builds-crosvm
|
|
|
|
.container-builds-gl:
|
|
extends:
|
|
- .container-builds-angle
|
|
- .container-builds-piglit
|
|
|
|
.container-builds-video:
|
|
extends:
|
|
- .container-builds-fluster
|
|
|
|
.container-builds-vk:
|
|
extends:
|
|
- .container-builds-piglit
|
|
|
|
# Export the container rootfs and upload it to S3
|
|
.export-container:
|
|
variables:
|
|
FDO_DISTRIBUTION_PACKAGES: zstd
|
|
FDO_DISTRIBUTION_POST_EXEC: 'bash .gitlab-ci/container/fdo_cntr_export.sh'
|
|
|
|
.use-base-image:
|
|
extends:
|
|
- .container
|
|
- .incorporate-base-tag+templates-commit
|
|
|
|
# Debian based x86_64 build image base
|
|
debian/x86_64_build-base:
|
|
extends:
|
|
- .debian-container
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_64_build-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
|
LLVM_VERSION: &debian-x86_64-llvm 19
|
|
|
|
.use-debian/x86_64_build-base:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .debian-container-version
|
|
- .use-base-image
|
|
variables:
|
|
MESA_BASE_IMAGE: "debian/x86_64_build-base"
|
|
MESA_BASE_TAG: *debian-x86_64_build-base
|
|
LLVM_VERSION: *debian-x86_64-llvm
|
|
needs:
|
|
- debian/x86_64_build-base
|
|
|
|
# Debian based x86_64 main build image
|
|
debian/x86_64_build:
|
|
extends:
|
|
- .use-debian/x86_64_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_64_build ${DEBIAN_BUILD_TAG}
|
|
LLVM_VERSION: *debian-x86_64-llvm
|
|
|
|
.use-debian/x86_64_build:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_64_build-base
|
|
MESA_IMAGE_PATH: "debian/x86_64_build"
|
|
MESA_IMAGE_TAG: *debian-x86_64_build
|
|
LLVM_VERSION: *debian-x86_64-llvm
|
|
needs:
|
|
- debian/x86_64_build
|
|
|
|
# Debian based x86_32 cross-build image
|
|
debian/x86_32_build:
|
|
extends:
|
|
- .use-debian/x86_64_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_32_build ${DEBIAN_BUILD_TAG}
|
|
|
|
.use-debian/x86_32_build:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_64_build-base
|
|
MESA_IMAGE_PATH: "debian/x86_32_build"
|
|
MESA_IMAGE_TAG: *debian-x86_32_build
|
|
LLVM_VERSION: *debian-x86_64-llvm
|
|
needs:
|
|
- debian/x86_32_build
|
|
|
|
# Debian based ppc64el cross-build image
|
|
debian/ppc64el_build:
|
|
extends:
|
|
- .use-debian/x86_64_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-ppc64el_build ${DEBIAN_BUILD_TAG}
|
|
LLVM_VERSION: &debian-ppc64el-llvm 15 # no LLVM packages for PPC
|
|
|
|
.use-debian/ppc64el_build:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_64_build-base
|
|
MESA_IMAGE_PATH: "debian/ppc64el_build"
|
|
MESA_IMAGE_TAG: *debian-ppc64el_build
|
|
LLVM_VERSION: *debian-ppc64el-llvm
|
|
needs:
|
|
- debian/ppc64el_build
|
|
|
|
# Debian based s390x cross-build image
|
|
debian/s390x_build:
|
|
extends:
|
|
- .use-debian/x86_64_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-s390x_build ${DEBIAN_BUILD_TAG}
|
|
LLVM_VERSION: &debian-s390x-llvm 19
|
|
|
|
.use-debian/s390x_build:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_64_build-base
|
|
MESA_IMAGE_PATH: "debian/s390x_build"
|
|
MESA_IMAGE_TAG: *debian-s390x_build
|
|
LLVM_VERSION: *debian-s390x-llvm
|
|
needs:
|
|
- debian/s390x_build
|
|
|
|
# Android NDK cross-build image
|
|
.android-variables:
|
|
variables:
|
|
ANDROID_VERSION: 14
|
|
ANDROID_NDK_VERSION: "r27c"
|
|
ANDROID_SDK_VERSION: 34
|
|
# Space-separated list of interesting CTS modules
|
|
ANDROID_CTS_MODULES: >-
|
|
CtsGraphicsTestCases
|
|
CtsNativeHardwareTestCases
|
|
CtsSkQPTestCases
|
|
ANDROID_LLVM_VERSION: llvmorg-19.1.7
|
|
ANDROID_LLVM_ARTIFACT_NAME: android-x86_64-llvm-20250324
|
|
# This can be confusing: LLVM_VERSION refers to the host LLVM toolchain
|
|
# used (LLVM 19 in our Debian system), but ANDROID_LLVM_VERSION refers to
|
|
# the cross-compiling LLVM toolchain used to build for the Android system.
|
|
LLVM_VERSION: &debian-android-llvm 19
|
|
|
|
debian/android_build:
|
|
extends:
|
|
- .android-variables
|
|
- .use-debian/x86_64_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-android_build ${DEBIAN_BUILD_TAG}
|
|
|
|
.use-debian/android_build:
|
|
extends:
|
|
- .android-variables
|
|
- .set-image-base-tag
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_64_build-base
|
|
MESA_IMAGE_PATH: "debian/android_build"
|
|
MESA_IMAGE_TAG: *debian-android_build
|
|
needs:
|
|
- debian/android_build
|
|
|
|
# Debian based ARM build image
|
|
debian/arm64_build:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .container
|
|
- .debian-container-version
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-arm64_build "${DEBIAN_BUILD_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
|
LLVM_VERSION: &debian-arm64-llvm 19
|
|
|
|
.use-debian/arm64_build:
|
|
extends:
|
|
- .set-image
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
variables:
|
|
MESA_IMAGE_PATH: "debian/arm64_build"
|
|
MESA_IMAGE_TAG: *debian-arm64_build
|
|
MESA_ARTIFACTS_TAG: *debian-arm64_build
|
|
LLVM_VERSION: *debian-arm64-llvm
|
|
needs:
|
|
- debian/arm64_build
|
|
|
|
# Alpine based x86_64 build image
|
|
.alpine/x86_64_build-base:
|
|
extends:
|
|
- .fdo.container-build@alpine
|
|
- .container
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: "3.21"
|
|
FDO_BASE_IMAGE: alpine:$FDO_DISTRIBUTION_VERSION # since cbuild ignores it
|
|
|
|
# Alpine based x86_64 build image
|
|
alpine/x86_64_build:
|
|
extends:
|
|
- .alpine/x86_64_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &alpine-x86_64_build ${ALPINE_X86_64_BUILD_TAG}
|
|
LLVM_VERSION: &alpine-llvm_version 19
|
|
rules:
|
|
# Note: the next three lines must remain in that order, so that the rules
|
|
# in `linkcheck-docs` catch nightly pipelines before the rules in `deploy-docs`
|
|
# exclude them.
|
|
- !reference [linkcheck-docs, rules]
|
|
- !reference [deploy-docs, rules]
|
|
- !reference [test-docs, rules]
|
|
- !reference [.container, rules]
|
|
|
|
.use-alpine/x86_64_build:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .set-image
|
|
variables:
|
|
MESA_IMAGE_PATH: "alpine/x86_64_build"
|
|
MESA_IMAGE_TAG: *alpine-x86_64_build
|
|
LLVM_VERSION: *alpine-llvm_version
|
|
needs:
|
|
- alpine/x86_64_build
|
|
|
|
# Alpine based x86_64 image for LAVA SSH dockerized client
|
|
alpine/x86_64_lava_ssh_client:
|
|
extends:
|
|
- .alpine/x86_64_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &alpine-x86_64_lava_ssh_client ${ALPINE_X86_64_LAVA_SSH_TAG}
|
|
|
|
# Fedora based x86_64 build image
|
|
fedora/x86_64_build:
|
|
extends:
|
|
- .fdo.container-build@fedora
|
|
- .container
|
|
variables:
|
|
FDO_DISTRIBUTION_VERSION: 42
|
|
MESA_IMAGE_TAG: &fedora-x86_64_build ${FEDORA_X86_64_BUILD_TAG}
|
|
LLVM_VERSION: &fedora-x86_64-llvm 20
|
|
|
|
.use-fedora/x86_64_build:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .set-image
|
|
variables:
|
|
MESA_IMAGE_PATH: "fedora/x86_64_build"
|
|
MESA_IMAGE_TAG: *fedora-x86_64_build
|
|
LLVM_VERSION: *fedora-x86_64-llvm
|
|
needs:
|
|
- fedora/x86_64_build
|
|
|
|
# Debian based x86_64 test image base
|
|
debian/x86_64_test-base:
|
|
extends:
|
|
- .debian-container
|
|
- .firmware_x86_64
|
|
- .container-builds-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_64_test-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
|
LLVM_VERSION: *debian-x86_64-llvm
|
|
|
|
.use-debian/x86_64_test-base:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .debian-container-version
|
|
- .use-base-image
|
|
variables:
|
|
MESA_BASE_IMAGE: "debian/x86_64_test-base"
|
|
MESA_BASE_TAG: *debian-x86_64_test-base
|
|
LLVM_VERSION: *debian-x86_64-llvm
|
|
needs:
|
|
- debian/x86_64_test-base
|
|
|
|
# Debian based ARMv7/armhf test image base
|
|
debian/arm32_test-base:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .debian-container
|
|
- .firmware_arm32
|
|
- .container-builds-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-arm32_test-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
|
LLVM_VERSION: *debian-arm64-llvm
|
|
FDO_DISTRIBUTION_PLATFORM: "linux/arm/v7"
|
|
|
|
.use-debian/arm32_test-base:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .debian-container-version
|
|
- .use-base-image
|
|
variables:
|
|
MESA_BASE_IMAGE: "debian/arm32_test-base"
|
|
MESA_BASE_TAG: *debian-arm32_test-base
|
|
LLVM_VERSION: *debian-arm64-llvm
|
|
FDO_DISTRIBUTION_PLATFORM: "linux/arm/v7"
|
|
needs:
|
|
- debian/arm32_test-base
|
|
|
|
# Debian based aarch64 test image base
|
|
debian/arm64_test-base:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .debian-container
|
|
- .firmware_arm64
|
|
- .container-builds-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-arm64_test-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
|
LLVM_VERSION: *debian-arm64-llvm
|
|
|
|
.use-debian/arm64_test-base:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .debian-container-version
|
|
- .use-base-image
|
|
variables:
|
|
MESA_BASE_IMAGE: "debian/arm64_test-base"
|
|
MESA_BASE_TAG: *debian-arm64_test-base
|
|
LLVM_VERSION: *debian-arm64-llvm
|
|
needs:
|
|
- debian/arm64_test-base
|
|
|
|
# Debian based x86_64 test image for GL
|
|
debian/x86_64_test-gl:
|
|
extends:
|
|
- .use-debian/x86_64_test-base
|
|
- .container-builds-gl
|
|
- .export-container
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_64_test-gl ${DEBIAN_TEST_GL_TAG}
|
|
LAVA_DISTRIBUTION_TAG: "debian/x86_64_test-gl:${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.use-debian/x86_64_test-gl:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_64_test-base
|
|
MESA_IMAGE_PATH: "debian/x86_64_test-gl"
|
|
MESA_IMAGE_TAG: *debian-x86_64_test-gl
|
|
needs:
|
|
- debian/x86_64_test-gl
|
|
|
|
# Debian based x86_64 test image for VK
|
|
debian/x86_64_test-vk:
|
|
extends:
|
|
- .use-debian/x86_64_test-base
|
|
- .container-builds-vk
|
|
- .export-container
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_64_test-vk ${DEBIAN_TEST_VK_TAG}
|
|
LAVA_DISTRIBUTION_TAG: "debian/x86_64_test-vk:${DEBIAN_TEST_VK_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.use-debian/x86_64_test-vk:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_64_test-base
|
|
MESA_IMAGE_PATH: "debian/x86_64_test-vk"
|
|
MESA_IMAGE_TAG: *debian-x86_64_test-vk
|
|
needs:
|
|
- debian/x86_64_test-vk
|
|
|
|
# Debian based x86_64 test image for Android
|
|
debian/x86_64_test-android:
|
|
extends:
|
|
- .android-variables
|
|
- .use-debian/x86_64_test-base
|
|
- .container-builds-android
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_64_test-android ${DEBIAN_TEST_ANDROID_TAG}
|
|
|
|
.use-debian/x86_64_test-android:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64_KVM
|
|
extends:
|
|
- .android-variables
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_64_test-base
|
|
MESA_IMAGE_PATH: "debian/x86_64_test-android"
|
|
MESA_IMAGE_TAG: *debian-x86_64_test-android
|
|
needs:
|
|
- debian/x86_64_test-android
|
|
|
|
# Debian based x86_64 test image for video
|
|
debian/x86_64_test-video:
|
|
extends:
|
|
- .use-debian/x86_64_test-base
|
|
- .container-builds-video
|
|
- .export-container
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_64_test-video ${DEBIAN_TEST_VIDEO_TAG}
|
|
LAVA_DISTRIBUTION_TAG: "debian/x86_64_test-video:${DEBIAN_TEST_VIDEO_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.use-debian/x86_64_test-video:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-x86_64_test-base
|
|
MESA_IMAGE_PATH: "debian/x86_64_test-video"
|
|
MESA_IMAGE_TAG: *debian-x86_64_test-video
|
|
needs:
|
|
- debian/x86_64_test-video
|
|
|
|
# Debian-based x86_64 image to run Python utilities
|
|
debian/x86_64_pyutils:
|
|
extends:
|
|
- .debian-container
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-x86_64_pyutils "${DEBIAN_PYUTILS_TAG}"
|
|
|
|
.use-debian/x86_64_pyutils:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .debian-container-version
|
|
- .set-image
|
|
variables:
|
|
MESA_IMAGE_PATH: "debian/x86_64_pyutils"
|
|
MESA_IMAGE_TAG: *debian-x86_64_pyutils
|
|
needs:
|
|
- debian/x86_64_pyutils
|
|
|
|
# Debian based ARMv7/armhf test image for GL
|
|
debian/arm32_test-gl:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .use-debian/arm32_test-base
|
|
- .container-builds-arm32
|
|
- .export-container
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-arm32_test-gl ${DEBIAN_TEST_GL_TAG}
|
|
LAVA_DISTRIBUTION_TAG: "debian/arm32_test-gl:${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.use-debian/arm32_test-gl:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-arm32_test-base
|
|
MESA_IMAGE_PATH: "debian/arm32_test-gl"
|
|
MESA_IMAGE_TAG: *debian-arm32_test-gl
|
|
needs:
|
|
- debian/arm32_test-gl
|
|
|
|
# Debian based ARMv7/armhf test image for VK
|
|
debian/arm32_test-vk:
|
|
rules:
|
|
- when: never # There are currently no arm32 VK jobs
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .use-debian/arm32_test-base
|
|
- .container-builds-arm32
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-arm32_test-vk ${DEBIAN_TEST_VK_TAG}
|
|
|
|
.use-debian/arm32_test-vk:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-arm32_test-base
|
|
MESA_IMAGE_PATH: "debian/arm32_test-vk"
|
|
MESA_IMAGE_TAG: *debian-arm32_test-vk
|
|
needs:
|
|
- debian/arm32_test-vk
|
|
|
|
# Debian based aarch64 test image for GL
|
|
debian/arm64_test-gl:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .use-debian/arm64_test-base
|
|
- .container-builds-gl
|
|
- .export-container
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-arm64_test-gl ${DEBIAN_TEST_GL_TAG}
|
|
LAVA_DISTRIBUTION_TAG: "debian/arm64_test-gl:${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.use-debian/arm64_test-gl:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-arm64_test-base
|
|
MESA_IMAGE_PATH: "debian/arm64_test-gl"
|
|
MESA_IMAGE_TAG: *debian-arm64_test-gl
|
|
needs:
|
|
- debian/arm64_test-gl
|
|
|
|
# Debian based aarch64 test image for VK
|
|
debian/arm64_test-vk:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .use-debian/arm64_test-base
|
|
- .container-builds-vk
|
|
- .export-container
|
|
variables:
|
|
MESA_IMAGE_TAG: &debian-arm64_test-vk ${DEBIAN_TEST_VK_TAG}
|
|
LAVA_DISTRIBUTION_TAG: "debian/arm64_test-vk:${DEBIAN_TEST_VK_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.use-debian/arm64_test-vk:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .set-image-base-tag
|
|
variables:
|
|
MESA_BASE_TAG: *debian-arm64_test-base
|
|
MESA_IMAGE_PATH: "debian/arm64_test-vk"
|
|
MESA_IMAGE_TAG: *debian-arm64_test-vk
|
|
needs:
|
|
- debian/arm64_test-vk
|
|
|
|
# Get firmware directly rather than using package versions.
|
|
# Change DEBIAN_BASE_TAG to add firmware changes.
|
|
# FIRMWARE_FILES is a list of json files arranged by vendor in .gitlab-ci/firmware/*
|
|
.firmware_x86_64:
|
|
variables:
|
|
FIRMWARE_FILES: |
|
|
.gitlab-ci/firmware/i915/adl-fw.json
|
|
.gitlab-ci/firmware/i915/mtl-fw.json
|
|
|
|
.firmware_arm64:
|
|
variables:
|
|
FIRMWARE_FILES: |
|
|
.gitlab-ci/firmware/arm/mali/arch10.8/mali-fw.json
|
|
|
|
.firmware_arm32:
|
|
variables:
|
|
FIRMWARE_FILES: |
|
|
|
|
# x86_64 image with ARM64 & ARM32 kernel & rootfs for baremetal testing
|
|
.debian/baremetal_arm_test:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .container
|
|
- .debian-container-version
|
|
# Don't want the .container rules
|
|
- .container+build-rules
|
|
variables:
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
MESA_ARTIFACTS_TAG: *debian-arm64_build
|
|
|
|
debian/baremetal_arm32_test-gl:
|
|
extends:
|
|
- .debian/baremetal_arm_test
|
|
needs:
|
|
- debian/arm32_test-gl
|
|
variables:
|
|
MESA_IMAGE_TAG: &baremetal-arm32_test-gl "${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
|
LAVA_DISTRIBUTION_TAG: !reference [debian/arm32_test-gl, variables, LAVA_DISTRIBUTION_TAG]
|
|
|
|
debian/baremetal_arm64_test-gl:
|
|
extends:
|
|
- .debian/baremetal_arm_test
|
|
needs:
|
|
- debian/arm64_test-gl
|
|
variables:
|
|
MESA_IMAGE_TAG: &baremetal-arm64_test-gl "${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
|
LAVA_DISTRIBUTION_TAG: !reference [debian/arm64_test-gl, variables, LAVA_DISTRIBUTION_TAG]
|
|
|
|
debian/baremetal_arm64_test-vk:
|
|
extends:
|
|
- .debian/baremetal_arm_test
|
|
needs:
|
|
- debian/arm64_test-vk
|
|
variables:
|
|
MESA_IMAGE_TAG: &baremetal-arm64_test-vk "${DEBIAN_TEST_VK_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
|
LAVA_DISTRIBUTION_TAG: !reference [debian/arm64_test-vk, variables, LAVA_DISTRIBUTION_TAG]
|
|
|
|
.use-debian/baremetal_arm32_test-gl:
|
|
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
variables:
|
|
MESA_IMAGE_PATH: "debian/baremetal_arm32_test-gl"
|
|
MESA_IMAGE_TAG: *baremetal-arm32_test-gl
|
|
needs:
|
|
- debian/baremetal_arm_test
|
|
|
|
.use-debian/baremetal_arm64_test-gl:
|
|
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
variables:
|
|
MESA_IMAGE_PATH: "debian/baremetal_arm64_test-gl"
|
|
MESA_IMAGE_TAG: *baremetal-arm64_test-gl
|
|
needs:
|
|
- debian/baremetal_arm_test
|
|
|
|
.use-debian/baremetal_arm64_test-vk:
|
|
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
variables:
|
|
MESA_IMAGE_PATH: "debian/baremetal_arm64_test-vk"
|
|
MESA_IMAGE_TAG: *baremetal-arm64_test-vk
|
|
needs:
|
|
- debian/baremetal_arm_test
|
|
|
|
# Native Windows docker builds
|
|
#
|
|
# Unlike the above Linux-based builds - including MinGW builds which
|
|
# cross-compile for Windows - which use the freedesktop ci-templates, we
|
|
# cannot use the same scheme here. As Windows lacks support for
|
|
# Docker-in-Docker, and Podman does not run natively on Windows, we have
|
|
# to open-code much of the same ourselves.
|
|
#
|
|
# This is achieved by first running in a native Windows shell instance
|
|
# (host PowerShell) in the container stage to build and push the image,
|
|
# then in the build stage by executing inside Docker.
|
|
|
|
.windows-docker-msvc:
|
|
variables:
|
|
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}"
|
|
MESA_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MESA_IMAGE_PATH:${MESA_IMAGE_TAG}"
|
|
extends:
|
|
- .windows-docker-tags
|
|
|
|
.windows_container_build:
|
|
inherit:
|
|
default: [retry]
|
|
extends:
|
|
- .container
|
|
- .windows-docker-msvc
|
|
- .windows-shell-tags
|
|
rules:
|
|
- !reference [.common-rules, rules]
|
|
- !reference [.microsoft-farm-container-rules, rules]
|
|
- !reference [.container+build-rules, rules]
|
|
variables:
|
|
GIT_STRATEGY: fetch # we do actually need the full repository though
|
|
MESA_BASE_IMAGE: None
|
|
script:
|
|
- .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $MESA_IMAGE $MESA_UPSTREAM_IMAGE ${DOCKERFILE} ${MESA_BASE_IMAGE}
|
|
|
|
windows_msvc:
|
|
inherit:
|
|
default: [retry]
|
|
extends:
|
|
- .windows_container_build
|
|
variables:
|
|
MESA_IMAGE_PATH: &windows_msvc_image_path "windows/x86_64_msvc"
|
|
MESA_IMAGE_TAG: ${WINDOWS_X64_MSVC_TAG}
|
|
DOCKERFILE: Dockerfile_msvc
|
|
MESA_BASE_IMAGE: "mcr.microsoft.com/windows/server:ltsc2022"
|
|
|
|
windows_build_msvc:
|
|
inherit:
|
|
default: [retry]
|
|
extends:
|
|
- .windows_container_build
|
|
rules:
|
|
- !reference [.common-rules, rules]
|
|
- !reference [.microsoft-farm-rules, rules]
|
|
- !reference [.container+build-rules, rules]
|
|
variables:
|
|
MESA_IMAGE_PATH: &windows_build_image_path "windows/x86_64_build"
|
|
MESA_IMAGE_TAG: &windows_build_image_tag ${WINDOWS_X64_MSVC_TAG}--${WINDOWS_X64_BUILD_TAG}
|
|
DOCKERFILE: Dockerfile_build
|
|
MESA_BASE_IMAGE_PATH: *windows_msvc_image_path
|
|
MESA_BASE_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_BASE_IMAGE_PATH}:${WINDOWS_X64_MSVC_TAG}"
|
|
timeout: 2h 30m # LLVM takes ages
|
|
needs:
|
|
- windows_msvc
|
|
|
|
windows_test_msvc:
|
|
inherit:
|
|
default: [retry]
|
|
extends:
|
|
- .windows_container_build
|
|
rules:
|
|
- !reference [.common-rules, rules]
|
|
- !reference [.microsoft-farm-rules, rules]
|
|
- !reference [.container+build-rules, rules]
|
|
variables:
|
|
MESA_IMAGE_PATH: &windows_test_image_path "windows/x86_64_test"
|
|
MESA_IMAGE_TAG: &windows_test_image_tag ${WINDOWS_X64_MSVC_TAG}--${WINDOWS_X64_TEST_TAG}
|
|
DOCKERFILE: Dockerfile_test
|
|
MESA_BASE_IMAGE_PATH: *windows_msvc_image_path
|
|
MESA_BASE_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_BASE_IMAGE_PATH}:${WINDOWS_X64_MSVC_TAG}"
|
|
timeout: 2h 30m
|
|
needs:
|
|
- windows_msvc
|
|
|
|
.use-windows_build_msvc:
|
|
inherit:
|
|
default: [retry]
|
|
extends: .windows-docker-msvc
|
|
image: "$MESA_IMAGE"
|
|
variables:
|
|
MESA_IMAGE_PATH: *windows_build_image_path
|
|
MESA_IMAGE_TAG: *windows_build_image_tag
|
|
needs:
|
|
- windows_build_msvc
|
|
|
|
.use-windows_test_msvc:
|
|
inherit:
|
|
default: [retry]
|
|
extends: .windows-docker-msvc
|
|
image: "$MESA_IMAGE"
|
|
variables:
|
|
MESA_IMAGE_PATH: *windows_test_image_path
|
|
MESA_IMAGE_TAG: *windows_test_image_tag
|