name: Rust
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
semver-checks:
runs-on: macos-15
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-rust-semver
cancel-in-progress: true
steps:
- name: Checkout
uses: actions/checkout@v6
rustfmt:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-rust-rustfmt
cancel-in-progress: true
steps:
- name: Checkout
uses: actions/checkout@v6
- name: rustfmt checks
run: cargo fmt --check
clippy:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-rust-clippy
cancel-in-progress: true
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Clippy checks
run: cargo clippy --all-targets -- -D warnings
build:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-rust-build
cancel-in-progress: true
steps:
- uses: actions/checkout@v6
- uses: taiki-e/install-action@nextest
- uses: taiki-e/install-action@just
- name: Build
run: cargo build --verbose
- name: Run tests
run: just test