1bf215546Sopenharmony_ci# Docker image tag helper templates 2bf215546Sopenharmony_ci 3bf215546Sopenharmony_ci.incorporate-templates-commit: 4bf215546Sopenharmony_ci variables: 5bf215546Sopenharmony_ci FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}" 6bf215546Sopenharmony_ci 7bf215546Sopenharmony_ci.incorporate-base-tag+templates-commit: 8bf215546Sopenharmony_ci variables: 9bf215546Sopenharmony_ci FDO_BASE_IMAGE: "${CI_REGISTRY_IMAGE}/${MESA_BASE_IMAGE}:${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}" 10bf215546Sopenharmony_ci FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}" 11bf215546Sopenharmony_ci 12bf215546Sopenharmony_ci.set-image: 13bf215546Sopenharmony_ci extends: 14bf215546Sopenharmony_ci - .incorporate-templates-commit 15bf215546Sopenharmony_ci variables: 16bf215546Sopenharmony_ci MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}" 17bf215546Sopenharmony_ci image: "$MESA_IMAGE" 18bf215546Sopenharmony_ci 19bf215546Sopenharmony_ci.set-image-base-tag: 20bf215546Sopenharmony_ci extends: 21bf215546Sopenharmony_ci - .set-image 22bf215546Sopenharmony_ci - .incorporate-base-tag+templates-commit 23bf215546Sopenharmony_ci variables: 24bf215546Sopenharmony_ci MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}" 25bf215546Sopenharmony_ci 26bf215546Sopenharmony_ci.use-wine: 27bf215546Sopenharmony_ci variables: 28bf215546Sopenharmony_ci WINEPATH: "/usr/x86_64-w64-mingw32/bin;/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/10-posix;c:/windows;c:/windows/system32" 29bf215546Sopenharmony_ci 30bf215546Sopenharmony_ci# Build the CI docker images. 31bf215546Sopenharmony_ci# 32bf215546Sopenharmony_ci# MESA_IMAGE_TAG is the tag of the docker image used by later stage jobs. If the 33bf215546Sopenharmony_ci# image doesn't exist yet, the container stage job generates it. 34bf215546Sopenharmony_ci# 35bf215546Sopenharmony_ci# In order to generate a new image, one should generally change the tag. 36bf215546Sopenharmony_ci# While removing the image from the registry would also work, that's not 37bf215546Sopenharmony_ci# recommended except for ephemeral images during development: Replacing 38bf215546Sopenharmony_ci# an image after a significant amount of time might pull in newer 39bf215546Sopenharmony_ci# versions of gcc/clang or other packages, which might break the build 40bf215546Sopenharmony_ci# with older commits using the same tag. 41bf215546Sopenharmony_ci# 42bf215546Sopenharmony_ci# After merging a change resulting in generating a new image to the 43bf215546Sopenharmony_ci# main repository, it's recommended to remove the image from the source 44bf215546Sopenharmony_ci# repository's container registry, so that the image from the main 45bf215546Sopenharmony_ci# repository's registry will be used there as well. 46bf215546Sopenharmony_ci 47bf215546Sopenharmony_ci.container: 48bf215546Sopenharmony_ci stage: container 49bf215546Sopenharmony_ci extends: 50bf215546Sopenharmony_ci - .container-rules 51bf215546Sopenharmony_ci - .incorporate-templates-commit 52bf215546Sopenharmony_ci - .use-wine 53bf215546Sopenharmony_ci variables: 54bf215546Sopenharmony_ci FDO_DISTRIBUTION_VERSION: bullseye-slim 55bf215546Sopenharmony_ci FDO_REPO_SUFFIX: $CI_JOB_NAME 56bf215546Sopenharmony_ci FDO_DISTRIBUTION_EXEC: 'env "WINEPATH=${WINEPATH}" FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh' 57bf215546Sopenharmony_ci # no need to pull the whole repo to build the container image 58bf215546Sopenharmony_ci GIT_STRATEGY: none 59bf215546Sopenharmony_ci 60bf215546Sopenharmony_ci.use-base-image: 61bf215546Sopenharmony_ci extends: 62bf215546Sopenharmony_ci - .container 63bf215546Sopenharmony_ci - .incorporate-base-tag+templates-commit 64bf215546Sopenharmony_ci # Don't want the .container rules 65bf215546Sopenharmony_ci - .build-rules 66bf215546Sopenharmony_ci 67bf215546Sopenharmony_ci# Debian 11 based x86 build image base 68bf215546Sopenharmony_cidebian/x86_build-base: 69bf215546Sopenharmony_ci extends: 70bf215546Sopenharmony_ci - .fdo.container-build@debian 71bf215546Sopenharmony_ci - .container 72bf215546Sopenharmony_ci variables: 73bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-x86_build-base ${DEBIAN_BASE_TAG} 74bf215546Sopenharmony_ci 75bf215546Sopenharmony_ci.use-debian/x86_build-base: 76bf215546Sopenharmony_ci extends: 77bf215546Sopenharmony_ci - .fdo.container-build@debian 78bf215546Sopenharmony_ci - .use-base-image 79bf215546Sopenharmony_ci variables: 80bf215546Sopenharmony_ci MESA_BASE_IMAGE: ${DEBIAN_X86_BUILD_BASE_IMAGE} 81bf215546Sopenharmony_ci MESA_BASE_TAG: *debian-x86_build-base 82bf215546Sopenharmony_ci MESA_ARTIFACTS_BASE_TAG: *debian-x86_build-base 83bf215546Sopenharmony_ci needs: 84bf215546Sopenharmony_ci - debian/x86_build-base 85bf215546Sopenharmony_ci 86bf215546Sopenharmony_ci# Debian 11 based x86 main build image 87bf215546Sopenharmony_cidebian/x86_build: 88bf215546Sopenharmony_ci extends: 89bf215546Sopenharmony_ci - .use-debian/x86_build-base 90bf215546Sopenharmony_ci variables: 91bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-x86_build ${DEBIAN_BUILD_TAG} 92bf215546Sopenharmony_ci 93bf215546Sopenharmony_ci.use-debian/x86_build: 94bf215546Sopenharmony_ci extends: 95bf215546Sopenharmony_ci - .set-image-base-tag 96bf215546Sopenharmony_ci variables: 97bf215546Sopenharmony_ci MESA_BASE_TAG: *debian-x86_build-base 98bf215546Sopenharmony_ci MESA_IMAGE_PATH: ${DEBIAN_X86_BUILD_IMAGE_PATH} 99bf215546Sopenharmony_ci MESA_IMAGE_TAG: *debian-x86_build 100bf215546Sopenharmony_ci needs: 101bf215546Sopenharmony_ci - debian/x86_build 102bf215546Sopenharmony_ci 103bf215546Sopenharmony_ci# Debian 11 based i386 cross-build image 104bf215546Sopenharmony_cidebian/i386_build: 105bf215546Sopenharmony_ci extends: 106bf215546Sopenharmony_ci - .use-debian/x86_build-base 107bf215546Sopenharmony_ci variables: 108bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-i386_build ${DEBIAN_BUILD_TAG} 109bf215546Sopenharmony_ci 110bf215546Sopenharmony_ci.use-debian/i386_build: 111bf215546Sopenharmony_ci extends: 112bf215546Sopenharmony_ci - .set-image-base-tag 113bf215546Sopenharmony_ci variables: 114bf215546Sopenharmony_ci MESA_BASE_TAG: *debian-x86_build-base 115bf215546Sopenharmony_ci MESA_IMAGE_PATH: "debian/i386_build" 116bf215546Sopenharmony_ci MESA_IMAGE_TAG: *debian-i386_build 117bf215546Sopenharmony_ci needs: 118bf215546Sopenharmony_ci - debian/i386_build 119bf215546Sopenharmony_ci 120bf215546Sopenharmony_ci# Debian 11 based x86-mingw cross main build image 121bf215546Sopenharmony_cidebian/x86_build-mingw: 122bf215546Sopenharmony_ci extends: 123bf215546Sopenharmony_ci - .use-debian/x86_build-base 124bf215546Sopenharmony_ci variables: 125bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-x86_build_mingw ${DEBIAN_BUILD_MINGW_TAG} 126bf215546Sopenharmony_ci 127bf215546Sopenharmony_ci.use-debian/x86_build_mingw: 128bf215546Sopenharmony_ci extends: 129bf215546Sopenharmony_ci - .set-image-base-tag 130bf215546Sopenharmony_ci variables: 131bf215546Sopenharmony_ci MESA_BASE_TAG: *debian-x86_build-base 132bf215546Sopenharmony_ci MESA_IMAGE_PATH: ${DEBIAN_X86_BUILD_MINGW_IMAGE_PATH} 133bf215546Sopenharmony_ci MESA_IMAGE_TAG: *debian-x86_build_mingw 134bf215546Sopenharmony_ci needs: 135bf215546Sopenharmony_ci - debian/x86_build-mingw 136bf215546Sopenharmony_ci 137bf215546Sopenharmony_ci# Debian 11 based ppc64el cross-build image 138bf215546Sopenharmony_cidebian/ppc64el_build: 139bf215546Sopenharmony_ci extends: 140bf215546Sopenharmony_ci - .use-debian/x86_build-base 141bf215546Sopenharmony_ci variables: 142bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-ppc64el_build ${DEBIAN_BUILD_TAG} 143bf215546Sopenharmony_ci 144bf215546Sopenharmony_ci.use-debian/ppc64el_build: 145bf215546Sopenharmony_ci extends: 146bf215546Sopenharmony_ci - .set-image-base-tag 147bf215546Sopenharmony_ci variables: 148bf215546Sopenharmony_ci MESA_BASE_TAG: *debian-x86_build-base 149bf215546Sopenharmony_ci MESA_IMAGE_PATH: "debian/ppc64el_build" 150bf215546Sopenharmony_ci MESA_IMAGE_TAG: *debian-ppc64el_build 151bf215546Sopenharmony_ci needs: 152bf215546Sopenharmony_ci - debian/ppc64el_build 153bf215546Sopenharmony_ci 154bf215546Sopenharmony_ci# Debian 11 based s390x cross-build image 155bf215546Sopenharmony_cidebian/s390x_build: 156bf215546Sopenharmony_ci extends: 157bf215546Sopenharmony_ci - .use-debian/x86_build-base 158bf215546Sopenharmony_ci variables: 159bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-s390x_build ${DEBIAN_BUILD_TAG} 160bf215546Sopenharmony_ci 161bf215546Sopenharmony_ci.use-debian/s390x_build: 162bf215546Sopenharmony_ci extends: 163bf215546Sopenharmony_ci - .set-image-base-tag 164bf215546Sopenharmony_ci variables: 165bf215546Sopenharmony_ci MESA_BASE_TAG: *debian-x86_build-base 166bf215546Sopenharmony_ci MESA_IMAGE_PATH: "debian/s390x_build" 167bf215546Sopenharmony_ci MESA_IMAGE_TAG: *debian-s390x_build 168bf215546Sopenharmony_ci needs: 169bf215546Sopenharmony_ci - debian/s390x_build 170bf215546Sopenharmony_ci 171bf215546Sopenharmony_ci# Android NDK cross-build image 172bf215546Sopenharmony_cidebian/android_build: 173bf215546Sopenharmony_ci extends: 174bf215546Sopenharmony_ci - .use-debian/x86_build-base 175bf215546Sopenharmony_ci variables: 176bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-android_build ${DEBIAN_BUILD_TAG} 177bf215546Sopenharmony_ci 178bf215546Sopenharmony_ci.use-debian/android_build: 179bf215546Sopenharmony_ci extends: 180bf215546Sopenharmony_ci - .set-image-base-tag 181bf215546Sopenharmony_ci variables: 182bf215546Sopenharmony_ci MESA_BASE_TAG: *debian-x86_build-base 183bf215546Sopenharmony_ci MESA_IMAGE_PATH: "debian/android_build" 184bf215546Sopenharmony_ci MESA_IMAGE_TAG: *debian-android_build 185bf215546Sopenharmony_ci needs: 186bf215546Sopenharmony_ci - debian/android_build 187bf215546Sopenharmony_ci 188bf215546Sopenharmony_ci# Debian 11 based x86 test image base 189bf215546Sopenharmony_cidebian/x86_test-base: 190bf215546Sopenharmony_ci extends: debian/x86_build-base 191bf215546Sopenharmony_ci variables: 192bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-x86_test-base ${DEBIAN_BASE_TAG} 193bf215546Sopenharmony_ci 194bf215546Sopenharmony_ci.use-debian/x86_test-base: 195bf215546Sopenharmony_ci extends: 196bf215546Sopenharmony_ci - .fdo.container-build@debian 197bf215546Sopenharmony_ci - .use-base-image 198bf215546Sopenharmony_ci variables: 199bf215546Sopenharmony_ci MESA_BASE_IMAGE: ${DEBIAN_X86_TEST_BASE_IMAGE} 200bf215546Sopenharmony_ci MESA_BASE_TAG: *debian-x86_test-base 201bf215546Sopenharmony_ci needs: 202bf215546Sopenharmony_ci - debian/x86_test-base 203bf215546Sopenharmony_ci 204bf215546Sopenharmony_ci# Debian 11 based x86 test image for GL 205bf215546Sopenharmony_cidebian/x86_test-gl: 206bf215546Sopenharmony_ci extends: .use-debian/x86_test-base 207bf215546Sopenharmony_ci variables: 208bf215546Sopenharmony_ci FDO_DISTRIBUTION_EXEC: 'env KERNEL_URL=${KERNEL_URL} FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh' 209bf215546Sopenharmony_ci KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v5.17-for-mesa-ci-b78f7870d97b/linux-v5.17-for-mesa-ci-b78f7870d97b.tar.bz2" 210bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-x86_test-gl ${DEBIAN_X86_TEST_GL_TAG} 211bf215546Sopenharmony_ci 212bf215546Sopenharmony_ci.use-debian/x86_test-gl: 213bf215546Sopenharmony_ci extends: 214bf215546Sopenharmony_ci - .set-image-base-tag 215bf215546Sopenharmony_ci variables: 216bf215546Sopenharmony_ci MESA_BASE_TAG: *debian-x86_test-base 217bf215546Sopenharmony_ci MESA_IMAGE_PATH: ${DEBIAN_X86_TEST_IMAGE_PATH} 218bf215546Sopenharmony_ci MESA_IMAGE_TAG: *debian-x86_test-gl 219bf215546Sopenharmony_ci needs: 220bf215546Sopenharmony_ci - debian/x86_test-gl 221bf215546Sopenharmony_ci 222bf215546Sopenharmony_ci# Debian 11 based x86 test image for VK 223bf215546Sopenharmony_cidebian/x86_test-vk: 224bf215546Sopenharmony_ci extends: .use-debian/x86_test-base 225bf215546Sopenharmony_ci variables: 226bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-x86_test-vk ${DEBIAN_X86_TEST_VK_TAG} 227bf215546Sopenharmony_ci 228bf215546Sopenharmony_ci.use-debian/x86_test-vk: 229bf215546Sopenharmony_ci extends: 230bf215546Sopenharmony_ci - .set-image-base-tag 231bf215546Sopenharmony_ci variables: 232bf215546Sopenharmony_ci MESA_BASE_TAG: *debian-x86_test-base 233bf215546Sopenharmony_ci MESA_IMAGE_PATH: "debian/x86_test-vk" 234bf215546Sopenharmony_ci MESA_IMAGE_TAG: *debian-x86_test-vk 235bf215546Sopenharmony_ci needs: 236bf215546Sopenharmony_ci - debian/x86_test-vk 237bf215546Sopenharmony_ci 238bf215546Sopenharmony_ci# Debian 11 based ARM build image 239bf215546Sopenharmony_cidebian/arm_build: 240bf215546Sopenharmony_ci extends: 241bf215546Sopenharmony_ci - .fdo.container-build@debian 242bf215546Sopenharmony_ci - .container 243bf215546Sopenharmony_ci tags: 244bf215546Sopenharmony_ci - aarch64 245bf215546Sopenharmony_ci variables: 246bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-arm_build ${DEBIAN_BASE_TAG} 247bf215546Sopenharmony_ci 248bf215546Sopenharmony_ci.use-debian/arm_build: 249bf215546Sopenharmony_ci extends: 250bf215546Sopenharmony_ci - .set-image 251bf215546Sopenharmony_ci variables: 252bf215546Sopenharmony_ci MESA_IMAGE_PATH: "debian/arm_build" 253bf215546Sopenharmony_ci MESA_IMAGE_TAG: *debian-arm_build 254bf215546Sopenharmony_ci MESA_ARTIFACTS_TAG: *debian-arm_build 255bf215546Sopenharmony_ci needs: 256bf215546Sopenharmony_ci - debian/arm_build 257bf215546Sopenharmony_ci 258bf215546Sopenharmony_ci 259bf215546Sopenharmony_ci# Fedora 34 based x86 build image 260bf215546Sopenharmony_cifedora/x86_build: 261bf215546Sopenharmony_ci extends: 262bf215546Sopenharmony_ci - .fdo.container-build@fedora 263bf215546Sopenharmony_ci - .container 264bf215546Sopenharmony_ci variables: 265bf215546Sopenharmony_ci FDO_DISTRIBUTION_VERSION: 34 266bf215546Sopenharmony_ci MESA_IMAGE_TAG: &fedora-x86_build ${FEDORA_X86_BUILD_TAG} 267bf215546Sopenharmony_ci 268bf215546Sopenharmony_ci.use-fedora/x86_build: 269bf215546Sopenharmony_ci extends: 270bf215546Sopenharmony_ci - .set-image 271bf215546Sopenharmony_ci variables: 272bf215546Sopenharmony_ci MESA_IMAGE_PATH: "fedora/x86_build" 273bf215546Sopenharmony_ci MESA_IMAGE_TAG: *fedora-x86_build 274bf215546Sopenharmony_ci needs: 275bf215546Sopenharmony_ci - fedora/x86_build 276bf215546Sopenharmony_ci 277bf215546Sopenharmony_ci 278bf215546Sopenharmony_ci.kernel+rootfs: 279bf215546Sopenharmony_ci extends: 280bf215546Sopenharmony_ci - .build-rules 281bf215546Sopenharmony_ci stage: container 282bf215546Sopenharmony_ci variables: 283bf215546Sopenharmony_ci GIT_STRATEGY: fetch 284bf215546Sopenharmony_ci KERNEL_URL: *kernel-rootfs-url 285bf215546Sopenharmony_ci MESA_ROOTFS_TAG: &kernel-rootfs ${KERNEL_ROOTFS_TAG} 286bf215546Sopenharmony_ci DISTRIBUTION_TAG: &distribution-tag-arm "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}" 287bf215546Sopenharmony_ci script: 288bf215546Sopenharmony_ci - .gitlab-ci/container/lava_build.sh 289bf215546Sopenharmony_ci 290bf215546Sopenharmony_cikernel+rootfs_amd64: 291bf215546Sopenharmony_ci extends: 292bf215546Sopenharmony_ci - .use-debian/x86_build-base 293bf215546Sopenharmony_ci - .kernel+rootfs 294bf215546Sopenharmony_ci image: "$FDO_BASE_IMAGE" 295bf215546Sopenharmony_ci variables: 296bf215546Sopenharmony_ci DEBIAN_ARCH: "amd64" 297bf215546Sopenharmony_ci DISTRIBUTION_TAG: &distribution-tag-amd64 "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_BASE_TAG}--${MESA_TEMPLATES_COMMIT}" 298bf215546Sopenharmony_ci 299bf215546Sopenharmony_cikernel+rootfs_arm64: 300bf215546Sopenharmony_ci extends: 301bf215546Sopenharmony_ci - .use-debian/arm_build 302bf215546Sopenharmony_ci - .kernel+rootfs 303bf215546Sopenharmony_ci tags: 304bf215546Sopenharmony_ci - aarch64 305bf215546Sopenharmony_ci variables: 306bf215546Sopenharmony_ci DEBIAN_ARCH: "arm64" 307bf215546Sopenharmony_ci 308bf215546Sopenharmony_cikernel+rootfs_armhf: 309bf215546Sopenharmony_ci extends: 310bf215546Sopenharmony_ci - kernel+rootfs_arm64 311bf215546Sopenharmony_ci variables: 312bf215546Sopenharmony_ci DEBIAN_ARCH: "armhf" 313bf215546Sopenharmony_ci 314bf215546Sopenharmony_ci# Cannot use anchors defined here from included files, so use extends: instead 315bf215546Sopenharmony_ci.use-kernel+rootfs-arm: 316bf215546Sopenharmony_ci variables: 317bf215546Sopenharmony_ci DISTRIBUTION_TAG: *distribution-tag-arm 318bf215546Sopenharmony_ci MESA_ROOTFS_TAG: *kernel-rootfs 319bf215546Sopenharmony_ci 320bf215546Sopenharmony_ci.use-kernel+rootfs-amd64: 321bf215546Sopenharmony_ci variables: 322bf215546Sopenharmony_ci DISTRIBUTION_TAG: *distribution-tag-amd64 323bf215546Sopenharmony_ci MESA_ROOTFS_TAG: *kernel-rootfs 324bf215546Sopenharmony_ci 325bf215546Sopenharmony_ci# x86 image with ARM64 & armhf kernel & rootfs for baremetal testing 326bf215546Sopenharmony_cidebian/arm_test: 327bf215546Sopenharmony_ci extends: 328bf215546Sopenharmony_ci - .fdo.container-build@debian 329bf215546Sopenharmony_ci - .container 330bf215546Sopenharmony_ci # Don't want the .container rules 331bf215546Sopenharmony_ci - .build-rules 332bf215546Sopenharmony_ci needs: 333bf215546Sopenharmony_ci - kernel+rootfs_arm64 334bf215546Sopenharmony_ci - kernel+rootfs_armhf 335bf215546Sopenharmony_ci variables: 336bf215546Sopenharmony_ci FDO_DISTRIBUTION_EXEC: 'env ARTIFACTS_PREFIX=https://${MINIO_HOST}/mesa-lava ARTIFACTS_SUFFIX=${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT} CI_PROJECT_PATH=${CI_PROJECT_PATH} FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} FDO_UPSTREAM_REPO=${FDO_UPSTREAM_REPO} bash .gitlab-ci/container/${CI_JOB_NAME}.sh' 337bf215546Sopenharmony_ci FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT}" 338bf215546Sopenharmony_ci MESA_ARM_BUILD_TAG: *debian-arm_build 339bf215546Sopenharmony_ci MESA_IMAGE_TAG: &debian-arm_test ${DEBIAN_BASE_TAG} 340bf215546Sopenharmony_ci MESA_ROOTFS_TAG: *kernel-rootfs 341bf215546Sopenharmony_ci 342bf215546Sopenharmony_ci.use-debian/arm_test: 343bf215546Sopenharmony_ci image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT}" 344bf215546Sopenharmony_ci variables: 345bf215546Sopenharmony_ci MESA_ARM_BUILD_TAG: *debian-arm_build 346bf215546Sopenharmony_ci MESA_IMAGE_PATH: "debian/arm_test" 347bf215546Sopenharmony_ci MESA_IMAGE_TAG: *debian-arm_test 348bf215546Sopenharmony_ci MESA_ROOTFS_TAG: *kernel-rootfs 349bf215546Sopenharmony_ci needs: 350bf215546Sopenharmony_ci - debian/arm_test 351bf215546Sopenharmony_ci 352bf215546Sopenharmony_ci# Native Windows docker builds 353bf215546Sopenharmony_ci# 354bf215546Sopenharmony_ci# Unlike the above Linux-based builds - including MinGW builds which 355bf215546Sopenharmony_ci# cross-compile for Windows - which use the freedesktop ci-templates, we 356bf215546Sopenharmony_ci# cannot use the same scheme here. As Windows lacks support for 357bf215546Sopenharmony_ci# Docker-in-Docker, and Podman does not run natively on Windows, we have 358bf215546Sopenharmony_ci# to open-code much of the same ourselves. 359bf215546Sopenharmony_ci# 360bf215546Sopenharmony_ci# This is achieved by first running in a native Windows shell instance 361bf215546Sopenharmony_ci# (host PowerShell) in the container stage to build and push the image, 362bf215546Sopenharmony_ci# then in the build stage by executing inside Docker. 363bf215546Sopenharmony_ci 364bf215546Sopenharmony_ci.windows-docker-vs2019: 365bf215546Sopenharmony_ci variables: 366bf215546Sopenharmony_ci MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}" 367bf215546Sopenharmony_ci MESA_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MESA_IMAGE_PATH:${MESA_IMAGE_TAG}" 368bf215546Sopenharmony_ci 369bf215546Sopenharmony_ci.windows_container_build: 370bf215546Sopenharmony_ci inherit: 371bf215546Sopenharmony_ci default: [retry] 372bf215546Sopenharmony_ci extends: 373bf215546Sopenharmony_ci - .container 374bf215546Sopenharmony_ci - .windows-docker-vs2019 375bf215546Sopenharmony_ci rules: 376bf215546Sopenharmony_ci - if: '$MICROSOFT_FARM == "offline"' 377bf215546Sopenharmony_ci when: never 378bf215546Sopenharmony_ci - !reference [.container-rules, rules] 379bf215546Sopenharmony_ci variables: 380bf215546Sopenharmony_ci GIT_STRATEGY: fetch # we do actually need the full repository though 381bf215546Sopenharmony_ci MESA_BASE_IMAGE: None 382bf215546Sopenharmony_ci tags: 383bf215546Sopenharmony_ci - windows 384bf215546Sopenharmony_ci - shell 385bf215546Sopenharmony_ci - "2022" 386bf215546Sopenharmony_ci - mesa 387bf215546Sopenharmony_ci script: 388bf215546Sopenharmony_ci - .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $MESA_IMAGE $MESA_UPSTREAM_IMAGE ${DOCKERFILE} ${MESA_BASE_IMAGE} 389bf215546Sopenharmony_ci 390bf215546Sopenharmony_ciwindows_vs2019: 391bf215546Sopenharmony_ci inherit: 392bf215546Sopenharmony_ci default: [retry] 393bf215546Sopenharmony_ci extends: 394bf215546Sopenharmony_ci - .windows_container_build 395bf215546Sopenharmony_ci variables: 396bf215546Sopenharmony_ci MESA_IMAGE_PATH: &windows_vs_image_path ${WINDOWS_X64_VS_PATH} 397bf215546Sopenharmony_ci MESA_IMAGE_TAG: &windows_vs_image_tag ${WINDOWS_X64_VS_TAG} 398bf215546Sopenharmony_ci DOCKERFILE: Dockerfile_vs 399bf215546Sopenharmony_ci MESA_BASE_IMAGE: "mcr.microsoft.com/windows/server:ltsc2022" 400bf215546Sopenharmony_ci 401bf215546Sopenharmony_ciwindows_build_vs2019: 402bf215546Sopenharmony_ci inherit: 403bf215546Sopenharmony_ci default: [retry] 404bf215546Sopenharmony_ci extends: 405bf215546Sopenharmony_ci - .windows_container_build 406bf215546Sopenharmony_ci rules: 407bf215546Sopenharmony_ci - if: '$MICROSOFT_FARM == "offline"' 408bf215546Sopenharmony_ci when: never 409bf215546Sopenharmony_ci - !reference [.build-rules, rules] 410bf215546Sopenharmony_ci variables: 411bf215546Sopenharmony_ci MESA_IMAGE_PATH: &windows_build_image_path ${WINDOWS_X64_BUILD_PATH} 412bf215546Sopenharmony_ci MESA_IMAGE_TAG: &windows_build_image_tag ${WINDOWS_X64_BUILD_TAG} 413bf215546Sopenharmony_ci DOCKERFILE: Dockerfile_build 414bf215546Sopenharmony_ci MESA_BASE_IMAGE_PATH: *windows_vs_image_path 415bf215546Sopenharmony_ci MESA_BASE_IMAGE_TAG: *windows_vs_image_tag 416bf215546Sopenharmony_ci MESA_BASE_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_BASE_IMAGE_PATH}:${MESA_BASE_IMAGE_TAG}" 417bf215546Sopenharmony_ci timeout: 2h 30m # LLVM takes ages 418bf215546Sopenharmony_ci needs: 419bf215546Sopenharmony_ci - windows_vs2019 420bf215546Sopenharmony_ci 421bf215546Sopenharmony_ciwindows_test_vs2019: 422bf215546Sopenharmony_ci inherit: 423bf215546Sopenharmony_ci default: [retry] 424bf215546Sopenharmony_ci extends: 425bf215546Sopenharmony_ci - .windows_container_build 426bf215546Sopenharmony_ci rules: 427bf215546Sopenharmony_ci - if: '$MICROSOFT_FARM == "offline"' 428bf215546Sopenharmony_ci when: never 429bf215546Sopenharmony_ci - !reference [.build-rules, rules] 430bf215546Sopenharmony_ci variables: 431bf215546Sopenharmony_ci MESA_IMAGE_PATH: &windows_test_image_path ${WINDOWS_X64_TEST_PATH} 432bf215546Sopenharmony_ci MESA_IMAGE_TAG: &windows_test_image_tag ${WINDOWS_X64_BUILD_TAG}--${WINDOWS_X64_TEST_TAG} 433bf215546Sopenharmony_ci DOCKERFILE: Dockerfile_test 434bf215546Sopenharmony_ci MESA_BASE_IMAGE_PATH: *windows_vs_image_path 435bf215546Sopenharmony_ci MESA_BASE_IMAGE_TAG: *windows_vs_image_tag 436bf215546Sopenharmony_ci MESA_BASE_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_BASE_IMAGE_PATH}:${MESA_BASE_IMAGE_TAG}" 437bf215546Sopenharmony_ci needs: 438bf215546Sopenharmony_ci - windows_vs2019 439bf215546Sopenharmony_ci 440bf215546Sopenharmony_ci.use-windows_build_vs2019: 441bf215546Sopenharmony_ci inherit: 442bf215546Sopenharmony_ci default: [retry] 443bf215546Sopenharmony_ci extends: .windows-docker-vs2019 444bf215546Sopenharmony_ci image: "$MESA_IMAGE" 445bf215546Sopenharmony_ci variables: 446bf215546Sopenharmony_ci MESA_IMAGE_PATH: *windows_build_image_path 447bf215546Sopenharmony_ci MESA_IMAGE_TAG: *windows_build_image_tag 448bf215546Sopenharmony_ci needs: 449bf215546Sopenharmony_ci - windows_build_vs2019 450bf215546Sopenharmony_ci 451bf215546Sopenharmony_ci.use-windows_test_vs2019: 452bf215546Sopenharmony_ci inherit: 453bf215546Sopenharmony_ci default: [retry] 454bf215546Sopenharmony_ci extends: .windows-docker-vs2019 455bf215546Sopenharmony_ci image: "$MESA_IMAGE" 456bf215546Sopenharmony_ci variables: 457bf215546Sopenharmony_ci MESA_IMAGE_PATH: *windows_test_image_path 458bf215546Sopenharmony_ci MESA_IMAGE_TAG: *windows_test_image_tag 459