name: "Check Nix flake"
on:
    push:
        branches: ["main"]
    pull_request:
        branches: ["main"]
    merge_group:
jobs:
    health-check:
        name: "Perform Nix flake checks"
        runs-on: ${{ matrix.os }}
        strategy:
            matrix:
                os: [ubuntu-latest]
        steps:
            - uses: DeterminateSystems/nix-installer-action@main
            - name: Setup Attic cache
              uses: ryanccn/attic-action@v0
              with:
                endpoint: ${{ secrets.ATTIC_ENDPOINT }}
                cache: ${{ secrets.ATTIC_CACHE }}
                token: ${{ secrets.ATTIC_TOKEN }}
                skip-push: "true"
            - uses: actions/checkout@v4
            - run: nix flake check --accept-flake-config
            - run: nix ./utils/attic-push.bash
    build-checks:
        name: "Build nix outputs"
        runs-on: ${{ matrix.os }}
        strategy:
            matrix:
                os: [ubuntu-latest]
        steps:
            - uses: DeterminateSystems/nix-installer-action@main
            - name: Setup Attic cache
              uses: ryanccn/attic-action@v0
              with:
                endpoint: ${{ secrets.ATTIC_ENDPOINT }}
                cache: ${{ secrets.ATTIC_CACHE }}
                token: ${{ secrets.ATTIC_TOKEN }}
                skip-push: "true"
            - uses: actions/checkout@v4
            - name: Build all outputs
              run: nix run git+https://nayeonie.com/ahuston-0/flake-update-diff -- --build .
            - name: Push to Attic
              run: nix ./utils/attic-push.bash
              continue-on-error: true