mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 07:20:10 +01:00
ci: split long containers build yaml
The yaml file for the definitions for container build on different systems can have a split between systems before split between hidden and build jobs. Signed-off-by: Sergi Blanch-Torne <sergi.blanch.torne@collabora.com> Acked-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org> Reviewed-by: Eric Engestrom <eric@igalia.com> Reviewed-by: Valentine Burley <valentine.burley@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35427>
This commit is contained in:
parent
6ba1b61395
commit
d5c63dd292
6 changed files with 870 additions and 814 deletions
68
.gitlab-ci/container/alpine/gitlab-ci.yml
Normal file
68
.gitlab-ci/container/alpine/gitlab-ci.yml
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
# Build the CI Alpine 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.
|
||||
|
||||
# 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}
|
||||
536
.gitlab-ci/container/debian/gitlab-ci.yml
Normal file
536
.gitlab-ci/container/debian/gitlab-ci.yml
Normal file
|
|
@ -0,0 +1,536 @@
|
|||
# Build the CI Debian 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
|
||||
|
||||
# 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
|
||||
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
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
40
.gitlab-ci/container/fedora/gitlab-ci.yml
Normal file
40
.gitlab-ci/container/fedora/gitlab-ci.yml
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# Build the CI Fedora 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.
|
||||
|
||||
# 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
|
||||
|
||||
114
.gitlab-ci/container/gitlab-ci-inc.yml
Normal file
114
.gitlab-ci/container/gitlab-ci-inc.yml
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
# 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}"
|
||||
|
||||
.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
|
||||
|
||||
|
|
@ -1,28 +1,3 @@
|
|||
# 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
|
||||
|
|
@ -40,793 +15,7 @@
|
|||
# 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
|
||||
include:
|
||||
- local: '.gitlab-ci/container/gitlab-ci-inc.yml'
|
||||
- local: '.gitlab-ci/container/*/gitlab-ci.yml'
|
||||
|
||||
.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
|
||||
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
|
||||
|
|
|
|||
109
.gitlab-ci/container/windows/gitlab-ci.yml
Normal file
109
.gitlab-ci/container/windows/gitlab-ci.yml
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
# 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
|
||||
|
||||
Loading…
Add table
Reference in a new issue