---
name: Nix Lint

on: [pull_request]

jobs:
  check:
    runs-on: ubuntu-latest

    permissions:
      contents: write

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install Nix
        uses: cachix/install-nix-action@v26
        with:
          nix_path: nixpkgs=channel:nixos-unstable
      - uses: DeterminateSystems/magic-nix-cache-action@main

      - name: Install Nix Linting and Formatting Tools
        run: nix-env -i statix nixpkgs-fmt -f '<nixpkgs>'

      - name: Run Statix Lint
        run: statix fix

      - name: Run Nix Format
        run: nix fmt

      - name: Nix Flake Checker
        # You may pin to the exact commit or the version.
        # uses: DeterminateSystems/flake-checker-action@4b90f9fc724969ff153fe1803460917c84fe00a3
        uses: DeterminateSystems/flake-checker-action@v5

      - name: Commit
        uses: stefanzweifel/git-auto-commit-action@v5
        with:
          commit_message: Auto lint/format
