on: push
name: CI
jobs:
fmt:
permissions:
contents: write
name: Formatter check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
components: rustfmt
- run: cargo fmt --all -- --check
clippy:
name: Clippy check
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-14, windows-latest]
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: clippy
- uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: cache-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}
restore-keys: |
cache-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }}
cache-${{ runner.os }}-cargo
- name: Install dependencies
if: runner.os == 'Linux'
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
- run: cargo clippy --all-features --all-targets -- -D warnings
clippy_wasm32:
name: Clippy check (wasm32)
runs-on: ubuntu-latest
env:
RUSTFLAGS: --cfg=web_sys_unstable_apis
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: clippy
targets: wasm32-unknown-unknown
- uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: cache-wasm32-cargo-${{ hashFiles('**/Cargo.toml') }}
restore-keys: |
cache-wasm32-cargo-${{ hashFiles('**/Cargo.toml') }}
cache-wasm32-cargo
- run: cargo clippy --all-features --target=wasm32-unknown-unknown --all-targets -- -D warnings