Release: cross-compile Linux aarch64 binary for Docker/OrbStack
macOS runners can cross-compile to Linux via messense/macos-cross-toolchains,
avoiding the need for a separate Linux runner job.
Assisted-by: Claude Opus 4.6 via pi
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 33c9a57..53354a5 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -28,13 +28,23 @@ jobs:
SHORT_SHA=$(git rev-parse --short HEAD)
echo "version=${CALVER}+${SHORT_SHA}" >> $GITHUB_OUTPUT
- - name: Build
+ - name: Build macOS
env:
RANGER_VERSION: ${{ steps.version.outputs.version }}
run: |
cargo build --release
tar -czf ranger-aarch64-apple-darwin.tar.gz -C target/release ranger
+ - name: Build Linux (for Docker/OrbStack)
+ env:
+ RANGER_VERSION: ${{ steps.version.outputs.version }}
+ run: |
+ rustup target add aarch64-unknown-linux-gnu
+ brew install messense/macos-cross-toolchains/aarch64-unknown-linux-gnu
+ export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-unknown-linux-gnu-gcc
+ cargo build --release --target aarch64-unknown-linux-gnu
+ tar -czf ranger-aarch64-unknown-linux-gnu.tar.gz -C target/aarch64-unknown-linux-gnu/release ranger
+
- name: Publish
run: |
VERSION="${{ steps.version.outputs.version }}"
@@ -44,6 +54,7 @@ jobs:
gh release create "v${VERSION}" \
--title "v${VERSION}" \
--generate-notes \
- ranger-aarch64-apple-darwin.tar.gz
+ ranger-aarch64-apple-darwin.tar.gz \
+ ranger-aarch64-unknown-linux-gnu.tar.gz
env:
GH_TOKEN: ${{ github.token }}