name: Checks
on: [ pull_request, push ]
jobs:
fmt:
name: cargo-fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- run: cargo fmt --all -- --check
prettier:
name: prettier
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v6
with:
run_install: false
- uses: actions/setup-node@v6
with:
node-version: "20"
cache: "pnpm"
- run: pnpm install
- run: pnpm run format:check
clippy:
name: cargo-clippy (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: awalsh128/cache-apt-pkgs-action@latest
if: matrix.os == 'ubuntu-latest'
with:
packages: libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf llvm-dev clang cmake grcov
version: "1.0"
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- run: cargo clippy --all-targets --all-features -- -D warnings -D clippy::unwrap_used
clippy-mobile:
name: cargo-clippy (${{ matrix.target }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- target: aarch64-linux-android
os: ubuntu-latest
- target: aarch64-apple-ios
os: macos-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- run: cargo clippy --lib --target ${{ matrix.target }} --all-features -- -D warnings -D clippy::unwrap_used
spellcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: streetsidesoftware/cspell-action@v8
with:
files: "**/*.{rs,md}"
deny:
name: cargo-deny
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: EmbarkStudios/cargo-deny-action@v2
semver:
name: cargo-semver
runs-on: ubuntu-latest
steps:
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf llvm-dev clang cmake grcov
version: "1.0"
- uses: actions/checkout@v6
- uses: obi1kenobi/cargo-semver-checks-action@v2