on:
pull_request:
workflow_call:
name: Test Suite
jobs:
ci:
name: Continuous Integration
env:
CARGO_INCREMENTAL: 0
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- name: Cache dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }}
- name: Build
run: cargo build
- name: Test
run: cargo test
- name: Check fmt
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy -- -D warnings
wasm:
needs: ci
name: Test WASM library
env:
CARGO_INCREMENTAL: 0
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup wasm-pack
run: cargo install wasm-pack
- uses: browser-actions/setup-firefox@latest
- name: Cache dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }}
- name: Test WASM library
run: wasm-pack test --headless --firefox -- --test web