feat: build relases on gh-actions & support linux arm64 (#2629) #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build & Test | |
on: | |
push: | |
branches: ["*"] | |
env: | |
# Cross-compilation for aarch64 requires a different linker | |
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc | |
permissions: | |
contents: read | |
jobs: | |
Tests: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- x86_64-unknown-linux-gnu | |
- aarch64-unknown-linux-gnu | |
- x86_64-pc-windows-msvc | |
- x86_64-apple-darwin | |
- aarch64-apple-darwin | |
rustup_toolchain: [stable] | |
include: | |
- os: windows-2022 | |
target: x86_64-pc-windows-msvc | |
- os: ubuntu-20.04 | |
target: x86_64-unknown-linux-gnu | |
- os: ubuntu-20.04 | |
target: aarch64-unknown-linux-gnu | |
- os: macos-13 | |
target: x86_64-apple-darwin | |
- os: macos-14 | |
target: aarch64-apple-darwin | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ matrix.rustup_toolchain }} | |
- name: Install Rust crosscompile tools | |
if: ${{ contains(matrix.target, 'aarch64-unknown-linux-gnu') }} | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y make g++ libssl-dev gcc-aarch64-linux-gnu | |
rustup target add aarch64-unknown-linux-gnu | |
- name: Cargo build (Native TLS) | |
run: | | |
cargo build --all --no-default-features --features=native-tls | |
cargo clean | |
- name: Cargo build (Rust TLS) | |
run: cargo build --all | |
- name: Cargo test | |
run: cargo test --all | |
- name: Cargo fmt | |
run: cargo fmt --check |