Skip to content

Add linux-musl release and CI targets - #107

Merged
bug-ops merged 2 commits into
mainfrom
feat/linux-musl-targets
Aug 12, 2026
Merged

Add linux-musl release and CI targets#107
bug-ops merged 2 commits into
mainfrom
feat/linux-musl-targets

Conversation

@bug-ops

@bug-ops bug-ops commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add x86_64-unknown-linux-musl and aarch64-unknown-linux-musl to the release build matrix (via cross, same pattern as the existing aarch64-unknown-linux-gnu target), covering musl-based Linux distributions (e.g. Alpine) alongside the existing glibc, macOS, and Windows targets
  • Add matching build-only cross-compile checks for both musl targets to CI, following the existing windows-latest / aarch64-pc-windows-msvc pattern (build check only, no test run under emulation)
  • Add Cross.toml installing cmake as a pre-build step for both musl targets, needed by aws-lc-sys (rustls's default crypto provider, pulled in transitively via reqwest/hyper-rustls) — not guaranteed to be preinstalled in the default cross-rs musl Docker images
  • Update README.md platform table and the release notes template in release.yml to list the new musl archives
  • No native-tls/openssl-sys in the dependency tree (workspace uses rustls via reqwest's default backend), and no other C-linked crates were found in Cargo.lock, so musl cross-compilation should be a clean addition

Test plan

  • cargo +nightly fmt --all -- --check
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo nextest run --workspace --all-features --no-fail-fast (1329 passed)
  • fy lint on both modified workflow files (0 errors)
  • Actual cross build --target x86_64-unknown-linux-musl / aarch64-unknown-linux-musl has not been run locally (no Docker daemon available in this session) — verify via the new CI job on this PR before merging

Adds x86_64-unknown-linux-musl and aarch64-unknown-linux-musl to the
release binary matrix (built via cross, same pattern as the existing
aarch64-gnu target) and matching build-only cross-compile checks in
CI, so musl-based Linux distributions (e.g. Alpine) are covered
alongside the existing glibc, macOS, and Windows targets.

A Cross.toml pre-build step installs cmake for both musl targets,
needed by aws-lc-sys (rustls's default crypto provider, pulled in
transitively via reqwest/hyper-rustls).
@github-actions github-actions Bot added documentation Improvements or additions to documentation needs-review Needs review ci CI/CD workflows size: M 50-200 lines changed labels Aug 12, 2026
@bug-ops
bug-ops enabled auto-merge (squash) August 12, 2026 19:09
@bug-ops
bug-ops disabled auto-merge August 12, 2026 19:10
release-check ran on every push/PR against main and develop (inherited
from the workflow-level triggers via needs: [test]), duplicating work
already covered by the test/coverage/msrv jobs on every branch and PR.
Restrict it to push events on main only, since its purpose is to
mirror what the release workflow will build once code lands there.
@bug-ops
bug-ops enabled auto-merge (squash) August 12, 2026 19:14
@bug-ops
bug-ops merged commit 50c9ca1 into main Aug 12, 2026
19 checks passed
@bug-ops
bug-ops deleted the feat/linux-musl-targets branch August 12, 2026 19:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD workflows documentation Improvements or additions to documentation needs-review Needs review size: M 50-200 lines changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant