Skip to content

Commit

Permalink
more platforms
Browse files Browse the repository at this point in the history
* aarch64-unknown-linux-gnu
* aarch64-linux-android
  • Loading branch information
x100111010 committed Dec 29, 2024
1 parent 62dfea2 commit 2106775
Showing 1 changed file with 62 additions and 12 deletions.
74 changes: 62 additions & 12 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,36 @@
name: Build and upload assets
on:
release:
types: [published]
types: [ published ]

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, ubuntu-latest, windows-latest, macos-latest]
name: Building on ${{ matrix.os }}
include:
- os: ubuntu-latest
TARGET: linux-gnu/amd64
- os: ubuntu-20.04
TARGET: linux-musl/amd64
- os: ubuntu-latest
TARGET: linux-gnu/aarch64
- os: ubuntu-latest
TARGET: android/aarch64
- os: windows-latest
TARGET: windows-msvc/amd64
- os: macos-latest
TARGET: macos/amd64
- os: macos-latest
TARGET: macos/aarch64
name: Build on ${{ matrix.TARGET }}
steps:

- name: Checkout sources
uses: actions/checkout@v4

- name: Install toolchain
id: rust-toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}

- name: Install protoc
uses: taiki-e/install-action@v2
Expand All @@ -31,8 +41,9 @@ jobs:
run: mkdir bin

- name: Build on Linux GNU
if: matrix.os == 'ubuntu-20.04'
if: matrix.TARGET == 'linux-gnu/amd64'
run: |
rustup target add x86_64-unknown-linux-gnu
cargo build --target=x86_64-unknown-linux-gnu --release
archive="bin/spectre-miner-${{ github.event.release.tag_name }}-linux-gnu-amd64.zip"
asset_name="spectre-miner-${{ github.event.release.tag_name }}-linux-gnu-amd64"
Expand Down Expand Up @@ -62,7 +73,7 @@ jobs:
rm ./bin/${asset_name}
- name: Build on Linux musl
if: matrix.os == 'ubuntu-latest'
if: matrix.TARGET == 'linux-musl/amd64'
run: |
sudo apt-get install -y musl-tools
rustup target add x86_64-unknown-linux-musl
Expand All @@ -74,10 +85,48 @@ jobs:
zip -r "${archive}" ./bin/${asset_name}
rm ./bin/${asset_name}
- name: Build on Linux for linux-gnu/aarch64
if: matrix.TARGET == 'linux-gnu/aarch64'
env:
TARGET_CC: aarch64-linux-gnu-gcc
TARGET_CXX: aarch64-linux-gnu-g++
RUSTFLAGS: -C linker=aarch64-linux-gnu-gcc
run: |
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
rustup target add aarch64-unknown-linux-gnu
cargo build --target=aarch64-unknown-linux-gnu --release
archive="bin/spectre-miner-${{ github.event.release.tag_name }}-linux-gnu-arm64.zip"
asset_name="spectre-miner-${{ github.event.release.tag_name }}-linux-gnu-arm64"
mv ./target/aarch64-unknown-linux-gnu/release/spectre-miner ./bin/${asset_name}
zip -r "${archive}" ./bin/${asset_name}
rm ./bin/${asset_name}
- name: Build for Android ARM64
if: matrix.TARGET == 'android/aarch64'
env:
TARGET_CC: aarch64-linux-android21-clang
TARGET_CXX: aarch64-linux-android21-clang++
RUSTFLAGS: -C linker=aarch64-linux-android21-clang
run: |
curl -sSL https://dl.google.com/android/repository/android-ndk-r27c-linux.zip -o android-ndk.zip
unzip android-ndk.zip -d $HOME
export ANDROID_NDK_HOME=$HOME/android-ndk-r27c
export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
rustup target add aarch64-linux-android
cargo build --target=aarch64-linux-android --release
archive="bin/spectre-miner-${{ github.event.release.tag_name }}-android-arm64.zip"
asset_name="spectre-miner-${{ github.event.release.tag_name }}-android-arm64"
mv ./target/aarch64-linux-android/release/spectre-miner ./bin/${asset_name}
zip -r "${archive}" ./bin/${asset_name}
rm ./bin/${asset_name}
- name: Build on Windows
if: matrix.os == 'windows-latest'
if: matrix.TARGET == 'windows-msvc/amd64'
shell: bash
run: |
rustup target add x86_64-pc-windows-msvc
cargo build --target=x86_64-pc-windows-msvc --release
archive="bin/spectre-miner-${{ github.event.release.tag_name }}-win64-amd64.zip"
asset_name="spectre-miner-${{ github.event.release.tag_name }}-win64-amd64.exe"
Expand All @@ -86,7 +135,7 @@ jobs:
rm ./bin/${asset_name}
- name: Build on MacOS for x86_64
if: matrix.os == 'macos-latest'
if: matrix.TARGET == 'macos/amd64'
run: |
rustup target add x86_64-apple-darwin
cargo build --target=x86_64-apple-darwin --release
Expand All @@ -97,8 +146,9 @@ jobs:
rm ./bin/${asset_name}
- name: Build on MacOS for M1/2
if: matrix.os == 'macos-latest'
if: matrix.TARGET == 'macos/aarch64'
run: |
rustup target add aarch64-apple-darwin
cargo build --target=aarch64-apple-darwin --release
archive="bin/spectre-miner-${{ github.event.release.tag_name }}-osx-aarch64.zip"
asset_name="spectre-miner-${{ github.event.release.tag_name }}-osx-aarch64"
Expand Down

0 comments on commit 2106775

Please sign in to comment.