From 06ef0ee1ec04306e5706e6a32f7e9df76828081e Mon Sep 17 00:00:00 2001 From: Miles Johnson Date: Sun, 10 Dec 2023 16:32:47 -0800 Subject: [PATCH] Add linux arm64 support. --- .github/workflows/nightly.yml | 10 +++++++++- .github/workflows/release.yml | 9 ++++++--- CHANGELOG.md | 6 ++++++ Cargo.toml | 8 +++++++- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index a5d741997..7de3e61f4 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -9,7 +9,7 @@ on: schedule: - cron: "0 0 * * *" # Uncomment to test in PRs (its safe) - # pull_request: + pull_request: permissions: contents: write @@ -21,6 +21,14 @@ jobs: fail-fast: false matrix: include: + - target: aarch64-unknown-linux-gnu + host: buildjet-4vcpu-ubuntu-2204-arm + ext: "" + + - target: aarch64-unknown-linux-musl + host: buildjet-4vcpu-ubuntu-2204-arm + ext: "" + - target: x86_64-unknown-linux-gnu host: ubuntu-20.04 ext: "" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 95f1eb31c..1bc4eb035 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -59,7 +59,10 @@ jobs: with: submodules: recursive - name: Install cargo-dist - run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.5.0/cargo-dist-installer.sh | sh" + # we specify bash to get pipefail; it guards against the `curl` command + # failing. otherwise `sh` won't catch that `curl` returned non-0 + shell: bash + run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.6.0-prerelease.2/cargo-dist-installer.sh | sh" # sure would be cool if github gave us proper conditionals... # so here's a doubly-nested ternary-via-truthiness to try to provide the best possible # functionality based on whether this is a pull_request, and whether it's from a fork. @@ -156,7 +159,7 @@ jobs: with: submodules: recursive - name: Install cargo-dist - run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.5.0/cargo-dist-installer.sh | sh" + run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.6.0-prerelease.2/cargo-dist-installer.sh | sh" # Get all the local artifacts for the global tasks to use (for e.g. checksums) - name: Fetch local artifacts uses: actions/download-artifact@v3 @@ -200,7 +203,7 @@ jobs: with: submodules: recursive - name: Install cargo-dist - run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.5.0/cargo-dist-installer.sh | sh" + run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.6.0-prerelease.2/cargo-dist-installer.sh | sh" # Fetch artifacts from scratch-storage - name: Fetch artifacts uses: actions/download-artifact@v3 diff --git a/CHANGELOG.md b/CHANGELOG.md index e01e43c25..9d356c54a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,12 @@ - [Rust](https://github.com/moonrepo/rust-plugin/blob/master/CHANGELOG.md) - [TOML schema](https://github.com/moonrepo/schema-plugin/blob/master/CHANGELOG.md) +## Unreleased + +#### 🚀 Updates + +- Added Linux arm64 gnu and musl support (`aarch64-unknown-linux-gnu` and `aarch64-unknown-linux-musl`). + ## 0.24.2 #### 🚀 Updates diff --git a/Cargo.toml b/Cargo.toml index f196669cd..51e31aef6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,14 +43,16 @@ tracing = "0.1.40" # Config for 'cargo dist' [workspace.metadata.dist] # The preferred cargo-dist version to use in CI (Cargo.toml SemVer syntax) -cargo-dist-version = "0.5.0" +cargo-dist-version = "0.6.0-prerelease.2" # CI backends to support ci = ["github"] # Target platforms to build apps for (Rust target-triple syntax) targets = [ + "aarch64-unknown-linux-gnu", "x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "x86_64-apple-darwin", + "aarch64-unknown-linux-musl", "x86_64-unknown-linux-musl", "x86_64-pc-windows-msvc", ] @@ -63,6 +65,10 @@ pr-run-mode = "plan" # Skip checking whether the specified configuration files are up to date allow-dirty = ["ci"] +[workspace.metadata.dist.custom-github-runners] +aarch64-unknown-linux-gnu = "buildjet-4vcpu-ubuntu-2204-arm" +aarch64-unknown-linux-musl = "buildjet-4vcpu-ubuntu-2204-arm" + [profile.dist] inherits = "release" lto = "thin"