Release: add Linux aarch64 binary and DotSlash artifact
Uses cross-rs to build aarch64-unknown-linux-gnu from the macOS runner.
A separate dotslash job runs facebook/dotslash-publish-release to generate
the DotSlash file from the release artifacts.
Assisted-by: Claude Opus 4.6 via pi
diff --git a/.github/workflows/dotslash-config.json b/.github/workflows/dotslash-config.json
new file mode 100644
index 0000000..7ea6882
--- /dev/null
+++ b/.github/workflows/dotslash-config.json
@@ -0,0 +1,18 @@
+{
+ "outputs": {
+ "ranger": {
+ "platforms": {
+ "macos-aarch64": {
+ "regex": "^ranger-aarch64-apple-darwin",
+ "format": "tar.gz",
+ "path": "ranger"
+ },
+ "linux-aarch64": {
+ "regex": "^ranger-aarch64-unknown-linux-gnu",
+ "format": "tar.gz",
+ "path": "ranger"
+ }
+ }
+ }
+ }
+}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 53354a5..5c1306b 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -29,20 +29,14 @@ jobs:
echo "version=${CALVER}+${SHORT_SHA}" >> $GITHUB_OUTPUT
- 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 }}
+ - name: Build Linux
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
+ cargo install cross --git https://github.com/cross-rs/cross
+ cross 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
@@ -58,3 +52,15 @@ jobs:
ranger-aarch64-unknown-linux-gnu.tar.gz
env:
GH_TOKEN: ${{ github.token }}
+
+ dotslash:
+ needs: build
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: facebook/dotslash-publish-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ config: .github/workflows/dotslash-config.json
+ tag: v${{ needs.build.outputs.version }}