From d95bdc8113dea42561c446a2134f19b24de81afc Mon Sep 17 00:00:00 2001 From: Jackson Bopp Date: Sat, 5 Sep 2026 03:26:39 -0400 Subject: [PATCH] ci: add a musl (Alpine) build job Add a job that builds and tests mctp inside an Alpine Linux container, to catch musl portability issues in CI before they surface during the meta-openembedded bump process (#126). Modeled on the existing no-libsystemd job: Alpine doesn't have libsystemd, so the same meson dependency check that already gates the dbus-based tests keeps this job to the plain test-mctp suite, matching what it can actually exercise without dbus. Verified locally in an alpine:latest container: configure, build, and test all pass (7/7 subtests in test-mctp), with libsystemd and libcap correctly reported as not found. Signed-off-by: Jackson Bopp --- .github/workflows/pr.yml | 29 +++++++++++++++++++++++++++++ CHANGELOG.md | 3 +++ 2 files changed, 32 insertions(+) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 873aafa8..9b4e4c50 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -71,3 +71,32 @@ jobs: with: name: no-libsystemd-meson-testlog path: build/meson-logs/testlog.txt + + musl: + runs-on: ubuntu-latest + container: alpine:latest + steps: + - name: Install system build dependencies + run: > + apk add --no-cache + build-base linux-headers meson ninja git py3-pip + + - uses: actions/checkout@v4 + + - name: Install python dependencies for mctp tests + run: pip install --break-system-packages -r tests/requirements.txt + + - name: Configure mctp build + run: meson setup build + + - name: Build mctp + run: meson compile -C build + + - name: Test mctp + run: meson test -C build --verbose + + - uses: actions/upload-artifact@v4 + if: always() + with: + name: musl-meson-testlog + path: build/meson-logs/testlog.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index cc2adc2d..90513a75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). To support this, the minimum meson version has been bumped to 0.60, previously 0.59. +3. CI now includes a musl (Alpine Linux) build, to catch portability issues + before they affect the meta-openembedded bump process. + ### Fixes 1. In v2.6. we lost the peer initial MTU sematics, which gave us a safe minimum