name: CI
on:
push:
branches:
- main
tags:
- "*"
pull_request:
branches:
- main
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: true
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.86
- uses: Swatinem/rust-cache@v2
- name: cargo build
run: cargo build
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
lfs: true
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.86
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- name: cargo fmt
run: cargo fmt --all -- --check
- name: cargo clippy
run: cargo clippy -- -D warnings
- name: cargo test
run: cargo test
cargo-deny:
strategy:
fail-fast: false
name: cargo-deny
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v1
with:
rust-version: "1.86.0"
log-level: error
command: check
publish-check:
name: Publish Check
runs-on: ubuntu-22.04
steps:
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.86
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- run: cargo fetch
- name: cargo publish
run: cargo publish --dry-run
typos:
name: Typos
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: crate-ci/typos@master
cargo-machete:
runs-on: ubuntu-latest
steps:
- uses: dtolnay/rust-toolchain@master
with:
toolchain: 1.86
- uses: Swatinem/rust-cache@v2
- uses: actions/checkout@v4
- name: Machete
uses: bnjbvr/cargo-machete@main