Skip to content

ci(release): publish linux-aarch64 artifacts#43

Closed
ark2042 wants to merge 1 commit into
Helvesec:mainfrom
ark2042:ci/release-linux-aarch64
Closed

ci(release): publish linux-aarch64 artifacts#43
ark2042 wants to merge 1 commit into
Helvesec:mainfrom
ark2042:ci/release-linux-aarch64

Conversation

@ark2042

@ark2042 ark2042 commented Jun 17, 2026

Copy link
Copy Markdown

Summary

The release workflow currently ships linux-x86_64, macos-x86_64, macos-aarch64 and windows-x86_64, but no linux-aarch64 artifact — even though the packaging scripts already know how to map aarch64-unknown-linux-gnu to arm64/aarch64 (deb_arch_for_target / rpm_arch_for_target). ARM Linux users (AWS Graviton, Ampere, Oracle Cloud ARM, Raspberry Pi, etc.) currently have to build from source.

This wires aarch64-linux into the release matrix:

  • New matrix entry aarch64-unknown-linux-gnu on the native ubuntu-22.04-arm runner (no cross-compilation, no QEMU).
  • GLIBC ceiling check now matches *-unknown-linux-gnuubuntu-22.04-arm ships glibc 2.35, the same baseline as the x86_64 runner, so the existing GLIBC_2.35 cap holds.
  • Install Linux package tooling and Create Linux distro packages now gate on runner.os == 'Linux' instead of the x86_64 target only, so arm64 gets the full set of artifacts.

Result: rmux-<ver>-linux-aarch64.tar.gz, rmux_<ver>_arm64.deb and rmux-<ver>-*.aarch64.rpm.

Test plan

Validated natively on an aarch64 Linux host (glibc 2.35):

  • cargo build --release (release profile) — clean build of rmux + workspace crates.
  • scripts/package-unix.sh --target aarch64-unknown-linux-gnurmux-0.6.1-linux-aarch64.tar.gz (correct platform label).
  • scripts/package-debian.sh --target aarch64-unknown-linux-gnu --skip-build --reuse-release-binaryrmux_0.6.1_arm64.deb (dpkg-deb -f … Architecture = arm64).
  • tmux-compat-linux-check.py --scope extended against the resulting binary vs system tmux: 30 passed, 0 findings.
  • .rpm not built locally (rpm tooling not installed on the test host); the script is already arch-aware and the CI installs rpm/createrepo-c.
  • CI run on ubuntu-22.04-arm (needs maintainer to dispatch the release workflow / approve Actions on the PR).

YAML validated with yaml.safe_load.

Add an aarch64-unknown-linux-gnu entry to the release build matrix using
the native ubuntu-22.04-arm runner (no cross-compilation), and extend the
Linux-only steps to cover both linux targets:

- GLIBC ceiling check now matches *-unknown-linux-gnu (ubuntu-22.04-arm
  ships glibc 2.35, same baseline as the x86_64 runner).
- "Install Linux package tooling" and "Create Linux distro packages" now
  gate on runner.os == 'Linux' instead of the x86_64 target only.

The packaging scripts already map aarch64-unknown-linux-gnu to arm64/aarch64
(deb_arch_for_target / rpm_arch_for_target), so this produces the full set
of linux-aarch64 artifacts: tar.gz, .deb (arm64) and .rpm (aarch64).

Verified natively on aarch64: cargo release build, tar.gz and arm64 .deb
packaging via the existing scripts.
@shideneyu

Copy link
Copy Markdown
Contributor

Thanks for adding the Linux aarch64 release path. RMUX 0.7.0 now ships Linux aarch64 release artifacts.

Release: https://github.com/Helvesec/rmux/releases/tag/v0.7.0

Closing this PR since the release workflow work is now on main.

@shideneyu shideneyu closed this Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants