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