name: Rust
on: [push, pull_request]
permissions:
contents: read
jobs:
check:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
features: ["", "--no-default-features"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- run: cargo fmt --check
- run: cargo clippy --locked --all-targets ${{ matrix.features }} -- -D warnings
- run: cargo test --locked ${{ matrix.features }}
- if: matrix.os == 'ubuntu-latest' && matrix.features == ''
run: cargo package --locked
- if: matrix.os == 'ubuntu-latest' && matrix.features == ''
run: cargo fmt --manifest-path tools/gen-framework/Cargo.toml -- --check
- if: matrix.os == 'ubuntu-latest' && matrix.features == ''
run: cargo check --manifest-path tools/gen-framework/Cargo.toml
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@1.88.0
- run: cargo check --locked --all-targets
android:
runs-on: ubuntu-latest
env:
APK_RS_REQUIRE_ORACLES: "1"
steps:
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable
- uses: actions/setup-java@v6
with:
distribution: temurin
java-version: "21"
- uses: android-actions/setup-android@v4
with:
cmdline-tools-version: "12266719"
packages: "build-tools;36.0.0 platforms;android-35"
- run: >-
env AAPT2="$ANDROID_HOME/build-tools/36.0.0/aapt2"
APKSIGNER="$ANDROID_HOME/build-tools/36.0.0/apksigner"
ANDROID_JAR="$ANDROID_HOME/platforms/android-35/android.jar"
cargo test --locked