ci: Update to move most Debian builds to bookworm, leaving just one basic build on bullseye

This commit is contained in:
Rylie Pavlik 2024-03-21 10:34:42 -05:00 committed by Simon Zeni
parent f266914988
commit 8a4963f719
8 changed files with 139 additions and 46 deletions

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2018-2023 Collabora, Ltd. and the Monado contributors
# SPDX-FileCopyrightText: 2018-2024 Collabora, Ltd. and the Monado contributors
###############################################
# GENERATED - DO NOT EDIT
@ -126,11 +126,17 @@ win:container_prep:
# Variables for build and usage of Debian bookworm image
.monado.variables.debian:bookworm:
variables:
FDO_DISTRIBUTION_VERSION: "bookworm"
FDO_DISTRIBUTION_TAG: "2024-03-21.2"
# Variables for build and usage of Debian bullseye image
.monado.variables.debian:bullseye:
variables:
FDO_DISTRIBUTION_VERSION: "bullseye"
FDO_DISTRIBUTION_TAG: "2024-01-16"
FDO_DISTRIBUTION_TAG: "2024-03-21"
# Variables for build and usage of Debian bookworm-ndk image
.monado.variables.debian:bookworm-ndk:
@ -164,6 +170,18 @@ win:container_prep:
###
# Container prep jobs
# Make Debian bookworm image
debian:bookworm:container_prep:
stage: container_prep
extends:
- .container-rules
- .monado.variables.debian:bookworm
- .fdo.container-build@debian # from ci-templates
variables:
FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates clang-format cmake codespell curl debhelper devscripts doxygen dput-ng gettext-base git glslang-tools graphviz 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 pipx pkg-config python3 python3-click python3-pip unzip wayland-protocols wget'
FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/i386_and_proclamation_container_prep.sh'
# Make Debian bullseye image
debian:bullseye:container_prep:
stage: container_prep
@ -173,8 +191,7 @@ debian:bullseye:container_prep:
- .fdo.container-build@debian # from ci-templates
variables:
FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates clang-format cmake codespell curl debhelper devscripts doxygen dput-ng gettext-base git glslang-tools graphviz 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 python3-click python3-pip unzip wget'
FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/i386_and_proclamation_container_prep.sh'
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 Debian bookworm-ndk image
debian:bookworm-ndk:container_prep:
@ -197,7 +214,7 @@ ubuntu:focal:container_prep:
- .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 wget'
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 jammy image
ubuntu:jammy:container_prep:
@ -208,7 +225,7 @@ ubuntu:jammy:container_prep:
- .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 reprepro unzip wget'
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 reprepro unzip wayland-protocols wget'
# Make Arch image
arch:container_prep:
@ -237,6 +254,14 @@ alpine:container_prep:
###
# Container usage base jobs
# Base for using Debian bookworm image
.monado.image.debian:bookworm:
extends:
- .monado.variables.debian:bookworm
- .fdo.distribution-image@debian # from ci-templates
- .build-rules
# Base for using Debian bullseye image
.monado.image.debian:bullseye:
extends:
@ -289,7 +314,7 @@ alpine:container_prep:
# Style check job
format-and-spellcheck:
extends:
- .monado.image.debian:bullseye
- .monado.image.debian:bookworm
stage: build
script:
@ -316,7 +341,7 @@ debian:cmake:
stage: build
extends:
- .monado.packaging.conditions
- .monado.image.debian:bullseye
- .monado.image.debian:bookworm
before_script:
- pushd doc/changes
- proclamation build vNEXT
@ -334,7 +359,7 @@ debian:cmake:
debian:cmake-no-opencv:
stage: build
extends:
- .monado.image.debian:bullseye
- .monado.image.debian:bookworm
script:
- .gitlab-ci/prebuild.sh
@ -344,7 +369,7 @@ debian:cmake-no-opencv:
debian:cmake-no-sdl2:
stage: build
extends:
- .monado.image.debian:bullseye
- .monado.image.debian:bookworm
script:
- .gitlab-ci/prebuild.sh
@ -354,7 +379,7 @@ debian:cmake-no-sdl2:
debian:cmake-no-service:
stage: build
extends:
- .monado.image.debian:bullseye
- .monado.image.debian:bookworm
script:
- .gitlab-ci/prebuild.sh
@ -364,13 +389,23 @@ debian:cmake-no-service:
debian:cmake:32bit:
stage: build
extends:
- .monado.image.debian:bullseye
- .monado.image.debian:bookworm
script:
- .gitlab-ci/prebuild.sh
- .gitlab-ci/ci-cmake-build.sh -DCMAKE_TOOLCHAIN_FILE=.gitlab-ci/i386.cmake -DXRT_HAVE_OPENCV=OFF
- cd build && ctest --output-on-failure
debian:bullseye:cmake:
stage: build
extends:
- .monado.image.debian:bullseye
script:
- .gitlab-ci/prebuild.sh
- .gitlab-ci/ci-cmake-build.sh
- cd build && ctest --output-on-failure
ndk:armeabi-v7a:
stage: build
extends:
@ -566,6 +601,33 @@ windows:
debian:bookworm:package:
extends:
- .monado.image.debian:bookworm
- .monado.packaging.conditions
variables:
GIT_STRATEGY: clone
DEBFULLNAME: "Monado CI"
DEBEMAIL: "rylie.pavlik@collabora.com"
DISTRO: debian
CODENAME: bookworm
DEB_VERSION_SUFFIX: bpo12
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
debian:bullseye:package:
extends:
- .monado.image.debian:bullseye
@ -654,6 +716,7 @@ reprepro:package:
- .monado.packaging.conditions
needs:
- debian:bookworm:package
- debian:bullseye:package
- ubuntu:focal:package
- ubuntu:jammy:package

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2018-2023 Collabora, Ltd. and the Monado contributors
# SPDX-FileCopyrightText: 2018-2024, Collabora, Ltd. and the Monado contributors
# Please run the following from the repo root after modifying this file:
# make -f .gitlab-ci/ci-scripts.mk
@ -15,41 +15,42 @@ fdo_ci_templates_sha: 185ede0e9b9b1924b92306ab8b882a6294e92613
unzip:
cmake:
ninja-build:
libeigen3-dev:
curl:
patch:
python3:
pkg-config:
ca-certificates:
glslang-tools:
libeigen3-dev:
libgl1-mesa-dev:
libglvnd-dev:
libudev-dev:
libusb-1.0-0-dev:
libvulkan-dev:
libx11-dev:
libx11-xcb-dev:
libxxf86vm-dev:
libxrandr-dev:
libxcb-randr0-dev:
libvulkan-dev:
glslang-tools:
libglvnd-dev:
libgl1-mesa-dev:
ca-certificates:
libusb-1.0-0-dev:
libudev-dev:
libxrandr-dev:
libxxf86vm-dev:
wayland-protocols:
# These are optional packages, that we're building against to ensure we build as much code as possible
libhidapi-dev:
libwayland-dev:
libuvc-dev:
libopencv-dev:
libv4l-dev:
libcjson-dev:
libsdl2-dev:
libegl1-mesa-dev:
libdbus-1-dev:
libgstreamer1.0-dev:
libgstreamer-plugins-base1.0-dev:
libsystemd-dev:
libbsd-dev:
libbluetooth-dev:
libbsd-dev:
libcjson-dev:
libdbus-1-dev:
libegl1-mesa-dev:
libgstreamer-plugins-base1.0-dev:
libgstreamer1.0-dev:
libhidapi-dev:
libopencv-dev:
libsdl2-dev:
libsystemd-dev:
libuvc-dev:
libv4l-dev:
libwayland-dev:
# Only used for building packages
devscripts:
debhelper:
devscripts:
dput-ng:
gettext-base:
pandoc:
@ -69,15 +70,16 @@ distributions:
- name: debian
images:
# This image does some extra work.
- codename: bullseye
- codename: bookworm
script: i386_and_proclamation_container_prep.sh
tag: "2024-01-16"
deb_version_suffix: bpo11
tag: "2024-03-21.2"
deb_version_suffix: bpo12
packages:
<<: *default_debian_packages
codespell:
doxygen:
graphviz:
pipx:
python3-pip:
python3-click:
clang-format:
@ -111,6 +113,15 @@ distributions:
# OpenCV doesn't play nicely with us in multi-arch.
XRT_HAVE_OPENCV: "OFF"
- codename: bullseye
tag: "2024-03-21"
deb_version_suffix: bpo11
packages:
<<: *default_debian_packages
build_jobs:
- name: "debian:bullseye:cmake"
# This one is pretty minimal, compared to the others.
# Though, we now install the android SDK in it...
- codename: bookworm-ndk

View file

@ -1,3 +1,11 @@
Origin: monado.freedesktop.org
Description: Monado CI apt repository
Codename: bookworm
Architectures: amd64 i386 source
Components: main
Tracking: minimal
SignWith: ${MONADO_GPG_FINGERPRINT}
Origin: monado.freedesktop.org
Description: Monado CI apt repository
Codename: bullseye

View file

@ -1,5 +1,5 @@
#!/bin/bash
# Copyright 2018-2022, Collabora, Ltd. and the Monado contributors
# Copyright 2018-2024, Collabora, Ltd. and the Monado contributors
# SPDX-License-Identifier: BSL-1.0
(
@ -9,4 +9,5 @@
bash ./install-ci-fairy.sh
)
python3 -m pip install proclamation cmakelang
# Getting the path set up right for pipx in CI is a hassle.
python3 -m pip install --break-system-packages proclamation cmakelang

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2018-2022 Collabora, Ltd. and the Monado contributors
# SPDX-FileCopyrightText: 2018-2024 Collabora, Ltd. and the Monado contributors
###############################################
# GENERATED - DO NOT EDIT #
@ -30,6 +30,16 @@ echo "---------------------"
# For each distro, sign the changes file and add it to the repo.
# bookworm
if [ -f "incoming/bookworm.distro" ]; then
VERSION=$(cat incoming/bookworm.distro)
echo "Signing and processing bookworm: ${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 bookworm "incoming/monado_${VERSION}_amd64.changes"
else
echo "Skipping bookworm - no artifact found"
fi
# bullseye
if [ -f "incoming/bullseye.distro" ]; then
VERSION=$(cat incoming/bullseye.distro)

View file

@ -1,5 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2018-2023 Collabora, Ltd. and the Monado contributors
# SPDX-FileCopyrightText: 2018-2024 Collabora, Ltd. and the Monado contributors
{# ignore the warning, this is actually the template to edit. #}
###############################################

View file

@ -1,5 +1,5 @@
{#
Copyright 2020-2022, Collabora, Ltd.
Copyright 2020-2024, Collabora, Ltd.
SPDX-License-Identifier: BSL-1.0
#}

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2018-2022 Collabora, Ltd. and the Monado contributors
# SPDX-FileCopyrightText: 2018-2024 Collabora, Ltd. and the Monado contributors
{# ignore the warning, this is actually the template to edit. #}
###############################################