name: Run Nix Flake Checks

on:
  workflow_call:
  workflow_dispatch:
    inputs:
      lockFile:
        description: 'flake.lock file'
        type: string

jobs:
  checks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: ./.github/actions/clean-disk
        with:
          purge-packages: false

      - uses: DeterminateSystems/nix-installer-action@main
        with:
          extra-conf: |
            accept-flake-config = true
      - uses: DeterminateSystems/magic-nix-cache-action@v8

      - uses: cachix/cachix-action@v15
        with:
          name: daylin
          authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"

      - name: write lock file
        if: "${{ inputs.lockFile != '' }}"
        run: |
          echo '${{ inputs.lockFile }}' > flake.lock
          git diff

      - name: Build
        run: |
          set -euo pipefail
          cachix watch-exec daylin -- nix build '.#checks.x86_64-linux.makePackages'