From e35977f3a0e3af2cb947e988184cde7add6587eb Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Wed, 17 May 2023 13:43:20 +0100 Subject: [PATCH] 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 --- .gitlab-ci.yml | 170 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 163 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2097c4d21..0af5efd1d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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