name: Test
on:
workflow_call:
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -D warnings
jobs:
test:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: Linux
os: ubuntu-latest
script: cargo test --verbose
- name: macOS
os: macos-latest
script: bash scripts/test_macos.sh
- name: iOS (build only)
os: macos-latest
targets: aarch64-apple-ios,x86_64-apple-ios
script: |
cargo build --target aarch64-apple-ios
cargo build --target x86_64-apple-ios
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.targets }}
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.name }}
- run: ${{ matrix.script }}
test-wasm:
name: WASM
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
targets: wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2
- run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- run: bash scripts/test_wasm.sh
test-android:
name: Android
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
targets: x86_64-linux-android
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"
- uses: android-actions/setup-android@v3
- uses: Swatinem/rust-cache@v2
- name: Install NDK
run: |
sdkmanager --install "ndk;26.1.10909125"
echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/26.1.10909125" >> $GITHUB_ENV
- name: Run tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 31
arch: x86_64
script: TARGET_ARCH=x86_64-linux-android bash scripts/test_android.sh