name: use nix

on: push
env:
    DEV_SHELL_NAME: CI
jobs:
  build:
    runs-on: flakes-action
    steps:
      - uses: actions/checkout@v3
        name: Checkout

      - name: Restore and cache Nix store
        uses: https://github.com/nix-community/cache-nix-action@v5
        with:
          # restore and save a cache using this key
          primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix') }}
          # if there's no cache hit, restore a cache by this prefix
          restore-prefixes-first-match: nix-${{ runner.os }}-
          # collect garbage until Nix store size (in bytes) is at most this number
          # before trying to save a new cache
          gc-max-store-size-linux: 1073741824
      - name: Metadata
        run: |
          nix flake metadata
      - name: Statix
        run: |
          nix develop -c statix check
      - name: Flake check
        run: |
          nix flake check