CI: Add Debian bookworm jobs

Bookworm has just been released. Add jobs which start using it, but keep
bullseye around as the LTS release, to make sure we can build on new and
old distributions.

Signed-off-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
Daniel Stone 2023-05-17 13:43:20 +01:00
parent 0e4aa29e4b
commit e35977f3a0

View File

@ -42,7 +42,7 @@
variables:
FDO_UPSTREAM_REPO: wayland/weston
FDO_REPO_SUFFIX: "$BUILD_OS/$BUILD_ARCH"
FDO_REPO_SUFFIX: "$BUILD_OS-$FDO_DISTRIBUTION_VERSION/$BUILD_ARCH"
FDO_DISTRIBUTION_TAG: '2023-06-12-kernel-mesa-upgrade-2'
@ -78,6 +78,13 @@ stages:
FDO_DISTRIBUTION_VERSION: bullseye
FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} BUILD_ARCH=${BUILD_ARCH} KERNEL_IMAGE=${KERNEL_IMAGE} KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG} LLVM_VERSION=${LLVM_VERSION} FDO_DISTRIBUTION_VERSION=${FDO_DISTRIBUTION_VERSION} bash .gitlab-ci/debian-install.sh'
.os-debian:
variables:
BUILD_OS: debian
LLVM_VERSION: 15
FDO_DISTRIBUTION_VERSION: bookworm
FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} BUILD_ARCH=${BUILD_ARCH} KERNEL_IMAGE=${KERNEL_IMAGE} KERNEL_DEFCONFIG=${KERNEL_DEFCONFIG} LLVM_VERSION=${LLVM_VERSION} FDO_DISTRIBUTION_VERSION=${FDO_DISTRIBUTION_VERSION} bash .gitlab-ci/debian-install.sh'
.ci-rules:
rules:
- when: on_success
@ -108,12 +115,26 @@ check-commit:
KERNEL_IMAGE: "bzImage"
KERNEL_DEFCONFIG: "x86_64_defconfig"
.debian-x86_64:
extends:
- .os-debian
variables:
BUILD_ARCH: "x86-64"
KERNEL_IMAGE: "bzImage"
KERNEL_DEFCONFIG: "x86_64_defconfig"
.debian-lts-armv7:
extends:
- .os-debian-lts
variables:
BUILD_ARCH: "armv7"
.debian-armv7:
extends:
- .os-debian
variables:
BUILD_ARCH: "armv7"
.debian-lts-aarch64:
extends:
- .os-debian-lts
@ -123,6 +144,15 @@ check-commit:
KERNEL_DEFCONFIG: "defconfig"
QEMU_SMP: 8 # built-in QEmu limit
.debian-aarch64:
extends:
- .os-debian
variables:
BUILD_ARCH: "aarch64"
KERNEL_IMAGE: "Image"
KERNEL_DEFCONFIG: "defconfig"
QEMU_SMP: 8 # built-in QEmu limit
# Build our base container image, which contains the core distribution, the
# toolchain, and all our build dependencies. This will be reused in the build
# stage.
@ -134,6 +164,14 @@ x86_64-debian-lts-container_prep:
timeout: 30m
stage: "Base container"
x86_64-debian-container_prep:
extends:
- .ci-rules
- .debian-x86_64
- .fdo.container-build@debian
timeout: 30m
stage: "Base container"
armv7-debian-lts-container_prep:
extends:
- .ci-rules
@ -142,7 +180,19 @@ armv7-debian-lts-container_prep:
tags:
- aarch64
variables:
FDO_BASE_IMAGE: "arm32v7/debian-lts:$FDO_DISTRIBUTION_VERSION"
FDO_BASE_IMAGE: "arm32v7/debian:$FDO_DISTRIBUTION_VERSION"
timeout: 30m
stage: "Base container"
armv7-debian-container_prep:
extends:
- .ci-rules
- .debian-armv7
- .fdo.container-build@debian
tags:
- aarch64
variables:
FDO_BASE_IMAGE: "arm32v7/debian:$FDO_DISTRIBUTION_VERSION"
timeout: 30m
stage: "Base container"
@ -156,6 +206,16 @@ aarch64-debian-lts-container_prep:
timeout: 30m
stage: "Base container"
aarch64-debian-container_prep:
extends:
- .ci-rules
- .debian-aarch64
- .fdo.container-build@debian
tags:
- aarch64
timeout: 30m
stage: "Base container"
# Core templates for all of our build steps. These are reused by all build jobs
# through the `extends` keyword.
.build-env:
@ -232,6 +292,15 @@ aarch64-debian-lts-container_prep:
- job: x86_64-debian-lts-container_prep
artifacts: false
.build-env-debian-x86_64:
extends:
- .debian-x86_64
- .fdo.suffixed-image@debian
- .build-env
needs:
- job: x86_64-debian-container_prep
artifacts: false
.build-env-debian-lts-armv7:
tags:
- aarch64
@ -243,6 +312,17 @@ aarch64-debian-lts-container_prep:
- job: armv7-debian-lts-container_prep
artifacts: false
.build-env-debian-armv7:
tags:
- aarch64
extends:
- .debian-armv7
- .fdo.suffixed-image@debian
- .build-env
needs:
- job: armv7-debian-container_prep
artifacts: false
.build-env-debian-lts-aarch64:
tags:
- aarch64
@ -254,6 +334,17 @@ aarch64-debian-lts-container_prep:
- job: aarch64-debian-lts-container_prep
artifacts: false
.build-env-debian-aarch64:
tags:
- aarch64
extends:
- .debian-aarch64
- .fdo.suffixed-image@debian
- .build-env
needs:
- job: aarch64-debian-container_prep
artifacts: false
.test-env-debian-lts-x86_64:
tags:
- kvm
@ -264,6 +355,16 @@ aarch64-debian-lts-container_prep:
- job: x86_64-debian-lts-container_prep
artifacts: false
.test-env-debian-x86_64:
tags:
- kvm
extends:
- .build-env-debian-x86_64
- .build-and-test
needs:
- job: x86_64-debian-container_prep
artifacts: false
.test-env-debian-lts-aarch64:
tags:
- kvm-aarch64
@ -274,6 +375,16 @@ aarch64-debian-lts-container_prep:
- job: aarch64-debian-lts-container_prep
artifacts: false
.test-env-debian-aarch64:
tags:
- kvm-aarch64
extends:
- .build-env-debian-aarch64
- .build-and-test
needs:
- job: aarch64-debian-container_prep
artifacts: false
# Full build, used for testing under KVM.
.build-options-full:
stage: "Full build and test"
@ -295,6 +406,11 @@ x86_64-debian-lts-full-build:
extends:
- .test-env-debian-lts-x86_64
- .build-options-full
x86_64-debian-full-build:
extends:
- .test-env-debian-x86_64
- .build-options-full
artifacts:
reports:
coverage_report:
@ -306,18 +422,35 @@ aarch64-debian-lts-full-build:
- .test-env-debian-lts-aarch64
- .build-options-full
aarch64-debian-full-build:
extends:
- .test-env-debian-aarch64
- .build-options-full
x86_64-clang-debian-lts-full-build:
extends:
- .test-env-debian-lts-x86_64
- .build-with-clang
- .build-options-full
x86_64-clang-debian-full-build:
extends:
- .test-env-debian-x86_64
- .build-with-clang
- .build-options-full
aarch64-clang-debian-lts-full-build:
extends:
- .test-env-debian-lts-aarch64
- .build-with-clang
- .build-options-full
aarch64-clang-debian-full-build:
extends:
- .test-env-debian-aarch64
- .build-with-clang
- .build-options-full
# Docs should be invariant on all architectures, so we only do it on Debian
# x86-64.
docs-build:
@ -327,7 +460,7 @@ docs-build:
-Dwerror=true
-Ddoc=true
extends:
- .build-env-debian-lts-x86_64
- .build-env-debian-x86_64
- .build-no-test
# Building without gl-renderer, to make sure this keeps working.
@ -347,12 +480,23 @@ x86_64-debian-lts-no-gl-build:
- .test-env-debian-lts-x86_64
- .build-options-no-gl
x86_64-debian-no-gl-build:
extends:
- .test-env-debian-x86_64
- .build-options-no-gl
armv7-debian-lts-no-gl-build:
extends:
- .build-env-debian-lts-armv7
- .build-no-test
- .build-options-no-gl
armv7-debian-no-gl-build:
extends:
- .build-env-debian-armv7
- .build-no-test
- .build-options-no-gl
armv7-clang-debian-lts-no-gl-build:
extends:
- .build-env-debian-lts-armv7
@ -360,11 +504,23 @@ armv7-clang-debian-lts-no-gl-build:
- .build-no-test
- .build-options-no-gl
armv7-clang-debian-no-gl-build:
extends:
- .build-env-debian-armv7
- .build-with-clang
- .build-no-test
- .build-options-no-gl
aarch64-debian-lts-no-gl-build:
extends:
- .test-env-debian-lts-aarch64
- .build-options-no-gl
aarch64-debian-no-gl-build:
extends:
- .test-env-debian-aarch64
- .build-options-no-gl
# Expose docs and coverage reports, so we can show users any changes to these
# inside their merge requests, letting us check them before merge.
#
@ -375,18 +531,18 @@ aarch64-debian-lts-no-gl-build:
docs-and-coverage:
extends:
- .ci-rules
- .debian-lts-x86_64
- .debian-x86_64
- .fdo.suffixed-image@debian
stage: pages
needs:
- job: docs-build
artifacts: true
- job: x86_64-debian-lts-full-build
- job: x86_64-debian-full-build
artifacts: true
timeout: 5m
script:
- mv prefix-weston-docs-build/share/doc/weston Documentation
- mv build-weston-x86_64-debian-lts-full-build/meson-logs/coveragereport Test_Coverage
- mv build-weston-x86_64-debian-full-build/meson-logs/coveragereport Test_Coverage
- rm Test_Coverage/gcov.css
- cp doc/style/lcov-style.css Test_Coverage/gcov.css
- cp doc/style/*.png Test_Coverage/
@ -404,7 +560,7 @@ docs-and-coverage:
# the upstream repo.
pages:
extends:
- .debian-lts-x86_64
- .debian-x86_64
- .fdo.suffixed-image@debian
stage: pages
timeout: 5m