ci: expand platform coverage (ARM Linux, Alpine, Win2025/ARM, macOS 26) - #2416
Open
ronaldtse wants to merge 5 commits into
Open
ci: expand platform coverage (ARM Linux, Alpine, Win2025/ARM, macOS 26)#2416ronaldtse wants to merge 5 commits into
ronaldtse wants to merge 5 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2416 +/- ##
==========================================
- Coverage 85.36% 85.36% -0.01%
==========================================
Files 126 126
Lines 22861 22866 +5
==========================================
+ Hits 19516 19520 +4
- Misses 3345 3346 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Adds the GitHub-hosted runner families that rnp's CI was missing, and
removes the macos-14 + openssl@1.1 leg that is no longer supportable
(macOS 14 is deprecated; brew openssl@1.1 formula is deprecated;
OpenSSL 1.1.1 itself went EOL Sept 2024 — its coverage is preserved
via Linux containers in centos-and-fedora.yml RHEL 8 and debian.yml
Debian 11).
Platform additions:
* ubuntu.yml: pin to ubuntu-24.04 (instead of ubuntu-latest, to
control timing of the next bump). Add ubuntu-24.04-arm native
runner for both Botan and OpenSSL backends — ARM Linux is a
growing Thunderbird audience.
* macos.yml: add macos-26 and macos-26-intel. Drop macos-14.
* windows-native.yml: parameterise the runner (was hardcoded
windows-2022). Add windows-2025 (GA) and windows-11-arm (preview,
continue-on-error so it doesn't gate the build).
* alpine.yml: new workflow. Alpine 3.21 (stable) + edge, with musl
libc. Both gcc and clang (clang only on stable). Both Botan and
OpenSSL backends.
Removals:
* macos-14 leg with openssl@1.1 (deprecated runner + EOL crypto).
* "Configure openssl 1.1 backend" step in macos.yml (no longer used).
Coverage notes:
* OpenSSL 1.1.1 is still tested via:
- centos-and-fedora.yml: RHEL 8 ubi + OpenSSL
- debian.yml: debian-11-amd64 + openssl
* ubuntu-22.04 stays for one leg (Oldest still-supported LTS).
* Alpine edge is included but matrix excludes the moving-target
clang+edge combination to keep runner time sane.
Out of scope (follow-up):
* Reducing the Botan version matrix (4 versions → 2) in
centos-and-fedora.yml. Separate concern.
* Reusable workflow_call extraction for the duplicated setup
boilerplate. Larger architectural refactor.
…nd maintainers
Adds the missing Ubuntu 22.04 LTS × Botan leg to ubuntu.yml. The 22.04
LTS runner was already in the matrix but only for OpenSSL. Botan 2.19.1
(shipped by 22.04) is an older 2.x than Ubuntu 24.04 LTS's 2.19.3 —
worth exercising to catch any 2.x compat issues that 2.19.3 might mask.
Also adds two documentation files that have been missing:
* MAINTAINERS.md — top-level file listing who maintains rnp packaging
in each downstream distribution / platform. GitHub auto-surfaces
this in the repo sidebar. Includes consultation policy: open issue,
ping maintainers, allow 2 weeks before proceeding. Distros without
a known maintainer are marked "please PR to add".
* docs/supported-platforms.adoc — user-facing doc listing which OS ×
distro × arch × crypto-backend combinations rnp is known to work
on, derived from CI coverage and downstream reports. Includes
Fedora, Debian, Ubuntu, RHEL/CentOS, openSUSE, Alpine, macOS,
Windows, FreeBSD, hardware architectures, and build option
summary table. Links from README.
Both are linked from README.adoc.
The Ubuntu 22.04 × Botan addition closes a gap surfaced in the
TODO.rnp-roadmap/23-ci-matrix-cleanup.md version-span review.
clang-format 11.0.0 has a pointer-alignment false positive that flags rnp.cpp, fficli.cpp, rnpkeys.cpp and ffi-enc.cpp even though they are clean under 11.0.1. Move the CI to 11.0.1 (the version the tree is actually formatted to) and fix the single real issue it surfaces, in backend_version.cpp.
- bump stable leg 3.21 -> 3.23 (current latest stable) - botan-dev -> botan3-dev: 3.21 still ships Botan 2 as botan-dev, but 3.23 and edge only ship Botan 3 as botan3-dev, so edge failed with 'botan-dev (no such package)' - install python3 explicitly: cli_tests.py -ls runs at configure time and python3 was only pulled transitively (gone on edge), causing 'Failed to retrieve test suite list for cli_tests' Verified in alpine:edge: apk add ok, cli_tests -ls exits 0, cmake configure completes.
ronaldtse
force-pushed
the
ci-expand-platforms
branch
from
August 9, 2026 23:15
fa4f2b3 to
2c3fb4b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Expands rnp's CI platform coverage to match the full set of GitHub-hosted runners, and drops deprecated runners/legs.
Platform additions
ubuntu.ymlubuntu-24.04-arm(Botan + OpenSSL); pinsubuntu-24.04explicitly instead ofubuntu-latestmacos.ymlmacos-26,macos-26-intelwindows-native.ymlwindows-2025(GA);windows-11-arm(preview,continue-on-error)alpine.yml(new)Removals (deprecated)
macos-14runner — deprecated.openssl@1.1brew formula on macOS — deprecated; OpenSSL 1.1.1 itself went EOL Sept 2024.macos.yml(no longer used by any leg).Coverage preservation
OpenSSL 1.1.1 testing is NOT lost — it migrates from macOS to Linux containers:
centos-and-fedora.ymlRHEL 8 ubi + OpenSSL (covers RPM-based)debian.ymlDebian 11 + openssl (covers dpkg-based)Both are already in the matrix; no new leg needed.
Why these platforms
All of these are critical audiences for rnp:
Test plan
Out of scope (follow-up PRs)
centos-and-fedora.yml: drop Fedora 39 (covered by 40), drop Botan 3.1.1/3.3.0 (keep 3.6.0 + head).workflow_callextraction for the duplicated setup boilerplate across workflows.