Add GNU/Hurd CI
We (GNU Hurd) would like to set up CI for glib, GTK (and related projects?) to be regularly built and tested on GNU/Hurd.
It is perhaps worth mentioning that GNU/Hurd is not some entirely different operating system, it is the same GNU system as in GNU/Linux, but with the Hurd instead of Linux. So most things that are not Linux-specific are exactly the same as on GNU/Linux.
The existing tests on Linux (both GNU and Alpine) seem to be using Docker images/containers. This naturally cannot be used for the Hurd, since Hurd is a different kernel than Linux
@zamaudio has generously volunteered to host a GitLab CI runner; this runner is already being used on Debian Salsa (example job). I don't have the resources to host a runner myself, I'm only here to broker things & help set things up.
Other than negotiating, two things need to be done:
- Connecting Damien's runner to this GitLab instance
- Adding a Hurd job to the CI script
Here's a quickly hacked together (mostly copied from the debian-stable-x86_64
job) script to try:
Patch
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bd10823a2..3d522f042 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -178,6 +178,38 @@ debian-stable-x86_64:
- "_build/glib/glibconfig.h"
- "_build/meson-logs"
+hurd-i386:
+ extends:
+ # Not a Linux system, but close enough
+ - .build-linux
+ - .only-default
+ stage: build
+ tags:
+ - hurd-i386
+ needs: []
+ script:
+ - meson setup ${MESON_COMMON_OPTIONS}
+ --werror
+ --default-library=both
+ --prefix=$HOME/glib-installed
+ --localstatedir=/var
+ --libdir=lib
+ _build
+ - meson compile -C _build
+ - .gitlab-ci/run-tests.sh
+ artifacts:
+ reports:
+ junit:
+ - _build/meson-logs/testlog.junit.xml
+ - _build/meson-logs/testlog-*.junit.xml
+ name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
+ when: always
+ expire_in: 1 week
+ paths:
+ - "_build/config.h"
+ - "_build/glib/glibconfig.h"
+ - "_build/meson-logs"
+
installed-tests:
extends:
- .build-linux
-
Should this have allow_failure: true
set? -
How many jobs (per day?) would this typically produce? How many can Damien's runner handle? -
How long will these jobs run, and will that be acceptable for glib? -
The runner is i386-gnu, but perhaps we'll also want to add a x86_64-gnu runner soon? -
Which projects should have a GNU/Hurd CI? Just GLib and GTK?