From 18083fb05bc771664e76c80b344d490d307d4aff Mon Sep 17 00:00:00 2001 From: utzcoz Date: Sat, 11 May 2024 23:22:12 +0800 Subject: [PATCH] ci: Add CI for Ubuntu 24.04 Signed-off-by: utzcoz --- .gitlab-ci.yml | 63 ++++++++++++++++++++++++++++++++++++++++ .gitlab-ci/config.yml | 10 +++++++ .gitlab-ci/distributions | 8 +++++ .gitlab-ci/reprepro.sh | 10 +++++++ 4 files changed, 91 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f92f0ff39..f4551706f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -157,6 +157,12 @@ win:container_prep: FDO_DISTRIBUTION_VERSION: "22.04" FDO_DISTRIBUTION_TAG: "2024-04-16" +# Variables for build and usage of Ubuntu noble image +.monado.variables.ubuntu:noble: + variables: + FDO_DISTRIBUTION_VERSION: "24.04" + FDO_DISTRIBUTION_TAG: "2024-05-11" + # Variables for build and usage of Arch image .monado.variables.arch: variables: @@ -227,6 +233,17 @@ ubuntu:jammy:container_prep: variables: FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 unzip wayland-protocols wget' +# Make Ubuntu noble image +ubuntu:noble:container_prep: + stage: container_prep + extends: + - .container-rules + - .monado.variables.ubuntu:noble + - .fdo.container-build@ubuntu # from ci-templates + + variables: + FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libbluetooth-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 unzip wayland-protocols wget' + # Make Arch image arch:container_prep: stage: container_prep @@ -294,6 +311,14 @@ alpine:container_prep: - .build-rules +# Base for using Ubuntu noble image +.monado.image.ubuntu:noble: + extends: + - .monado.variables.ubuntu:noble + - .fdo.distribution-image@ubuntu # from ci-templates + - .build-rules + + # Base for using Arch image .monado.image.arch: extends: @@ -556,6 +581,16 @@ ubuntu:jammy:cmake: - .gitlab-ci/ci-cmake-build.sh - cd build && ctest --output-on-failure +ubuntu:noble:cmake: + stage: build + extends: + - .monado.image.ubuntu:noble + script: + + - .gitlab-ci/prebuild.sh + - .gitlab-ci/ci-cmake-build.sh + - cd build && ctest --output-on-failure + arch:cmake: stage: build extends: @@ -709,6 +744,33 @@ ubuntu:jammy:package: - "incoming/" expire_in: 2 days +ubuntu:noble:package: + extends: + - .monado.image.ubuntu:noble + - .monado.packaging.conditions + variables: + GIT_STRATEGY: clone + DEBFULLNAME: "Monado CI" + DEBEMAIL: "rylie.pavlik@collabora.com" + DISTRO: ubuntu + CODENAME: noble + DEB_VERSION_SUFFIX: ubuntu2404 + stage: package + before_script: + - git config --global user.name Monado CI + - git config --global user.email rylie.pavlik@collabora.com + script: + - .gitlab-ci/prebuild.sh + # Prep the source tree + - git clean -dfx + # Call this script to build binary and source packages. + # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints. + - .gitlab-ci/build-and-submit-package.sh + artifacts: + paths: + - "incoming/" + expire_in: 2 days + reprepro:package: stage: reprepro extends: @@ -720,6 +782,7 @@ reprepro:package: - debian:bullseye:package - ubuntu:focal:package - ubuntu:jammy:package + - ubuntu:noble:package script: - bash .gitlab-ci/reprepro.sh artifacts: diff --git a/.gitlab-ci/config.yml b/.gitlab-ci/config.yml index c3591090c..cdca1b8b9 100644 --- a/.gitlab-ci/config.yml +++ b/.gitlab-ci/config.yml @@ -205,6 +205,16 @@ distributions: - name: "ubuntu:jammy:cmake" cmake_defines: + - codename: noble + distro_version: "24.04" + tag: "2024-05-11" + deb_version_suffix: ubuntu2404 + packages: + <<: *default_debian_packages + build_jobs: + - name: "ubuntu:noble:cmake" + cmake_defines: + - name: arch images: - tag: "2024-01-16" diff --git a/.gitlab-ci/distributions b/.gitlab-ci/distributions index 7452ff0a8..28feb48ec 100644 --- a/.gitlab-ci/distributions +++ b/.gitlab-ci/distributions @@ -30,3 +30,11 @@ Components: main Tracking: minimal SignWith: ${MONADO_GPG_FINGERPRINT} +Origin: monado.freedesktop.org +Description: Monado CI apt repository +Codename: noble +Architectures: amd64 i386 source +Components: main +Tracking: minimal +SignWith: ${MONADO_GPG_FINGERPRINT} + diff --git a/.gitlab-ci/reprepro.sh b/.gitlab-ci/reprepro.sh index c0f695820..f417fd48a 100755 --- a/.gitlab-ci/reprepro.sh +++ b/.gitlab-ci/reprepro.sh @@ -69,3 +69,13 @@ if [ -f "incoming/jammy.distro" ]; then else echo "Skipping jammy - no artifact found" fi + +# noble +if [ -f "incoming/noble.distro" ]; then + VERSION=$(cat incoming/noble.distro) + echo "Signing and processing noble: ${VERSION}" + debsign -k "${MONADO_GPG_FINGERPRINT}" -p "gpg --batch --no-tty --yes --pinentry-mode loopback --passphrase ${MONADO_GPG_PASSPHRASE}" "incoming/monado_${VERSION}_amd64.changes" + reprepro -V --ignore=wrongdistribution -b repo include noble "incoming/monado_${VERSION}_amd64.changes" +else + echo "Skipping noble - no artifact found" +fi