From 9e39175df58f62a111b060ee4eaf50e972279845 Mon Sep 17 00:00:00 2001 From: Martin Abente Lahaye Date: Mon, 24 Jun 2024 09:01:25 -0400 Subject: [PATCH] ci: Build and publish system extensions Use gnomeos-build-sysext CI/CD component to build a system extension out of mutter branches and MRs. Use the common script for installing dependencies, but keep a separate gnomeos script for exclusive dependencies. See https://discourse.gnome.org/t/towards-a-better-way-to-hack-and-test-your-system-components/21075 See https://gitlab.gnome.org/GNOME/gnome-build-meta/-/issues/837 Part-of: --- .gitlab-ci.yml | 9 +++++++++ .../install-gnomeos-sysext-dependencies.sh | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100755 .gitlab-ci/install-gnomeos-sysext-dependencies.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 20b4d58ff..02d11d3fb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,6 +3,15 @@ include: - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/34f4ade99434043f88e164933f570301fd18b125/templates/ci-fairy.yml' - project: 'Infrastructure/openshift-images/gnome-release-service' file: '/ci-templates/release-module.yml' + - component: gitlab.gnome.org/GNOME/citemplates/gnomeos-build-sysext@1.0.0-alpha + inputs: + meson-options: + -Dxwayland_initfd=enabled + -Dprofiler=true + +build-sysext: + before_script: + - .gitlab-ci/install-gnomeos-sysext-dependencies.sh $CI_PROJECT_DIR/extension stages: - review diff --git a/.gitlab-ci/install-gnomeos-sysext-dependencies.sh b/.gitlab-ci/install-gnomeos-sysext-dependencies.sh new file mode 100755 index 000000000..c3b537838 --- /dev/null +++ b/.gitlab-ci/install-gnomeos-sysext-dependencies.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +set -e + +SCRIPTS_DIR="$(dirname $0)" + +# Location for dependencies to be bundled with the extension +DESTDIR="$(realpath $1)" + +# GNOME OS specific setup arguments +LIBDIR="lib/$(gcc -print-multiarch)" + +# Install common dependencies +./$SCRIPTS_DIR/install-common-dependencies.sh --libdir=$LIBDIR --destdir=$DESTDIR + +# Install below missing dependencies that are exclusive to GNOME OS