name: ci
on:
  pull_request:
  push:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  ci:
    runs-on: ubuntu-22.04
    permissions:
        id-token: write
        contents: read
    steps:
    - uses: actions/checkout@main
    - uses: DeterminateSystems/nix-installer-action@main
    - uses: DeterminateSystems/magic-nix-cache-action@main
    - name: Set up nix dev env
      run: nix develop --command echo 0
    - name: Run `cargo build`
      run: nix develop --ignore-environment --command cargo build
    - name: Run `cargo clippy`
      run: nix develop --ignore-environment --command cargo clippy --all-targets -- -D warnings
    - name: Run `cargo test`
      run: nix develop --command cargo test
    - name: Run `cargo fmt`
      run: nix develop --ignore-environment --command cargo fmt --check
    - name: Run `nix fmt`
      run: nix fmt -- --check .