CI: Add Alpine Linux 3.23 runner to the pipeline (#18087)

Add an Alpine Linux 3.23 runner to the CI chain to run OpenZFS builds
and tests against musl libc.

Currently, zfs_send_sparse is killed after 10 minutes on Alpine, causing
cascading EBUSY failures in the test suite. With zfs_send_sparse
disabled, the ZFS test suite reaches a pass rate of 94.62%.

This commit introduces the required Alpine-specific setup and a small
set of shell and cloud-init compatibility fixes that also apply to
existing Linux runners.

The Alpine runner is not enabled by default and is not executed for new
pull requests.

Sponsored-by: ERNW Research GmbH - https://ernw-research.de/

Signed-off-by: Alexander Moch <amoch@ernw.de>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de>
This commit is contained in:
Alexander Moch
2025-12-30 17:29:48 +00:00
committed by GitHub
parent e72f3054e3
commit b9b84445ea
9 changed files with 121 additions and 20 deletions
@@ -79,7 +79,8 @@ function do_test
imgfile=$1
log_note "Running test on $imgfile"
log_must losetup -f $imgfile
DEV=$(losetup --associated $imgfile | grep -Eo '^/dev/loop[0-9]+')
# Alpine Linux loop devices appear as `/dev/loop/N` instead of `/dev/loopN`.
DEV=$(losetup --associated $imgfile | grep -Eo '^/dev/loop/?[0-9]+')
log_must mkfs.xfs $DEV
mkdir $TEST_BASE_DIR/mnt
log_must mount $DEV $TEST_BASE_DIR/mnt