name: Update docs

on:
  push:
    paths:
      - "modules/home-manager/**"
      - "modules/nixos/**"
  workflow_dispatch:

jobs:
  update-docs:
    runs-on: ubuntu-latest

    permissions:
      contents: write

    strategy:
      max-parallel: 1
      matrix:
        package: ["nixos", "home-manager"]

    # we only want this running on our repo, on the `main` branch
    if: github.repository == 'Stonks3141/ctp-nix' && github.ref_name == 'main'

    steps:
      - uses: actions/checkout@v4
      - uses: cachix/install-nix-action@v23

      - name: Get short revision
        id: rev
        run:
          echo "rev=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"

      - name: Build doc
        run: nix build .#${{ matrix.package }}-doc

      - name: Update doc
        run: cat result > docs/${{ matrix.package }}-options.md

      - name: Commit changes
        uses: EndBug/add-and-commit@v9
        with:
          default_author: github_actions
          message: "docs: update docs for ${{ steps.rev.outputs.rev }}"
