Structured tagging ensures that we are building and testing the current component version specified in the commit by matching the checksum of the related build script file. In this case, it is worthy to isolate the Android CTS version part, because we don't need to rebuild the entire test-android container when we change the CTS version or the CTS modules filtering. PS: actually the new file `build-android-cts.sh` is not building anything, it is just downloads, filters, compress and reupload the stripped version to S3. The `build-` prefix is to make it work transparently with `bin/ci/update_tag.py` script. Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35596>
838 lines
24 KiB
YAML
838 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-rules
|
|
- .incorporate-templates-commit
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64
|
|
before_script:
|
|
- !reference [default, before_script]
|
|
# Undoing the `eval "$S3_JWT_FILE_SCRIPT"` from the default before_script,
|
|
# because container_job_trampoline.sh and fdo_cntr_export.sh both need it.
|
|
- S3_JWT=$(cat "${S3_JWT_FILE}")
|
|
- export S3_JWT_FILE_SCRIPT="echo -n '${S3_JWT}' > '${S3_JWT_FILE}' && S3_JWT_FILE_SCRIPT= && unset CI_JOB_JWT S3_JWT"
|
|
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_ANDROID_CTS $CI_BUILD_COMPONENTS_ANGLE $CI_BUILD_COMPONENTS_CROSVM $CI_BUILD_COMPONENTS_FLUSTER $CI_BUILD_COMPONENTS_PIGLIT $CI_BUILD_COMPONENTS_VKD3D_PROTON"
|
|
|
|
.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-vkd3d-proton:
|
|
variables:
|
|
VKD3D_PROTON_TAG: "${CONDITIONAL_BUILD_VKD3D_PROTON_TAG}"
|
|
CI_BUILD_COMPONENTS_VKD3D_PROTON: vkd3d-proton
|
|
|
|
.container-builds-android-cts:
|
|
variables:
|
|
ANDROID_CTS_TAG: "${CONDITIONAL_BUILD_ANDROID_CTS_TAG}"
|
|
CI_BUILD_COMPONENTS_ANDROID_CTS: android-cts
|
|
|
|
.container-builds-android:
|
|
extends:
|
|
- .container-builds-android-cts
|
|
- .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
|
|
- .container-builds-vkd3d-proton
|
|
|
|
# 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:
|
|
- job: debian/x86_64_build-base
|
|
optional: true
|
|
|
|
# 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:
|
|
- job: debian/x86_64_build
|
|
optional: true
|
|
|
|
# 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:
|
|
- job: debian/x86_32_build
|
|
optional: true
|
|
|
|
# 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:
|
|
- job: debian/ppc64el_build
|
|
optional: true
|
|
|
|
# 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:
|
|
- job: debian/s390x_build
|
|
optional: true
|
|
|
|
# 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
|
|
CUTTLEFISH_PROJECT_PATH: ao2/aosp-manifest
|
|
CUTTLEFISH_BUILD_VERSION_TAGS: mesa-venus
|
|
CUTTLEFISH_BUILD_NUMBER: 20250506.001
|
|
AOSP_KERNEL_PROJECT_PATH: ao2/aosp-kernel-manifest
|
|
AOSP_KERNEL_BUILD_VERSION_TAGS: common-android14-6.1-venus
|
|
AOSP_KERNEL_BUILD_NUMBER: 20241107.001
|
|
|
|
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:
|
|
- job: debian/android_build
|
|
optional: true
|
|
|
|
# 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:
|
|
- job: debian/arm64_build
|
|
optional: true
|
|
|
|
# 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:
|
|
- !reference [.container, 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]
|
|
|
|
.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:
|
|
- job: alpine/x86_64_build
|
|
optional: true
|
|
|
|
# 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}
|
|
|
|
# Alpine based x86_64 image to run LAVA jobs
|
|
alpine/x86_64_lava-trigger:
|
|
extends:
|
|
- .alpine/x86_64_build-base
|
|
variables:
|
|
MESA_IMAGE_TAG: &alpine-x86_64_lava_trigger ${ALPINE_X86_64_LAVA_TRIGGER_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:
|
|
- job: fedora/x86_64_build
|
|
optional: true
|
|
|
|
# Debian based x86_64 test image base
|
|
debian/x86_64_test-base:
|
|
extends:
|
|
- .debian-container
|
|
- .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:
|
|
- job: debian/x86_64_test-base
|
|
optional: true
|
|
|
|
# Debian based ARMv7/armhf test image base
|
|
debian/arm32_test-base:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .debian-container
|
|
- .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:
|
|
- job: debian/arm32_test-base
|
|
optional: true
|
|
|
|
# Debian based aarch64 test image base
|
|
debian/arm64_test-base:
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64
|
|
extends:
|
|
- .debian-container
|
|
- .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:
|
|
- job: debian/arm64_test-base
|
|
optional: true
|
|
|
|
# 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}
|
|
|
|
.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:
|
|
- job: debian/x86_64_test-gl
|
|
optional: true
|
|
|
|
# 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}
|
|
|
|
.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:
|
|
- job: debian/x86_64_test-vk
|
|
optional: true
|
|
|
|
# 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
|
|
- .export-container
|
|
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:
|
|
- job: debian/x86_64_test-android
|
|
optional: true
|
|
|
|
# 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}
|
|
|
|
.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:
|
|
- job: debian/x86_64_test-video
|
|
optional: true
|
|
|
|
# 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}
|
|
|
|
.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:
|
|
- job: debian/arm32_test-gl
|
|
optional: true
|
|
|
|
# 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:
|
|
- job: debian/arm32_test-vk
|
|
optional: true
|
|
|
|
# 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}
|
|
|
|
.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:
|
|
- job: debian/arm64_test-gl
|
|
optional: true
|
|
|
|
# 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}
|
|
|
|
.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:
|
|
- job: debian/arm64_test-vk
|
|
optional: true
|
|
|
|
# x86_64 image with ARM64 & ARM32 kernel & rootfs for baremetal testing
|
|
.debian/baremetal_arm_test:
|
|
extends:
|
|
- .fdo.container-build@debian
|
|
- .container
|
|
- .debian-container-version
|
|
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:
|
|
- job: debian/arm32_test-gl
|
|
optional: true
|
|
variables:
|
|
MESA_IMAGE_TAG: &baremetal-arm32_test-gl "${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
|
LAVA_DISTRIBUTION_TAG: "debian/arm32_test-gl:${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
debian/baremetal_arm64_test-gl:
|
|
extends:
|
|
- .debian/baremetal_arm_test
|
|
needs:
|
|
- job: debian/arm64_test-gl
|
|
optional: true
|
|
variables:
|
|
MESA_IMAGE_TAG: &baremetal-arm64_test-gl "${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
|
LAVA_DISTRIBUTION_TAG: "debian/arm64_test-gl:${DEBIAN_TEST_GL_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
debian/baremetal_arm64_test-vk:
|
|
extends:
|
|
- .debian/baremetal_arm_test
|
|
needs:
|
|
- job: debian/arm64_test-vk
|
|
optional: true
|
|
variables:
|
|
MESA_IMAGE_TAG: &baremetal-arm64_test-vk "${DEBIAN_TEST_VK_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}"
|
|
LAVA_DISTRIBUTION_TAG: "debian/arm64_test-vk:${DEBIAN_TEST_VK_TAG}--${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
.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:
|
|
- job: debian/baremetal_arm32_test-gl
|
|
optional: true
|
|
|
|
.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:
|
|
- job: debian/baremetal_arm64_test-gl
|
|
optional: true
|
|
|
|
.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:
|
|
- job: debian/baremetal_arm64_test-vk
|
|
optional: true
|
|
|
|
# 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-rules, rules]
|
|
variables:
|
|
GIT_STRATEGY: fetch # we do actually need the full repository though
|
|
MESA_BASE_IMAGE: None
|
|
before_script: null # remove .container before_script as it's unix-only
|
|
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-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:
|
|
- job: windows_msvc
|
|
optional: true
|
|
|
|
windows_test_msvc:
|
|
inherit:
|
|
default: [retry]
|
|
extends:
|
|
- .windows_container_build
|
|
rules:
|
|
- !reference [.common-rules, rules]
|
|
- !reference [.microsoft-farm-rules, rules]
|
|
- !reference [.container-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:
|
|
- job: windows_msvc
|
|
optional: true
|
|
|
|
.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:
|
|
- job: windows_build_msvc
|
|
optional: true
|
|
|
|
.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
|