name: Docs
on: [push, pull_request, workflow_dispatch]

concurrency:
  group: ${{ github.ref }}
  cancel-in-progress: true

jobs:
  build:
    name: Build docs
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5

      - name: Install uv
        run: curl -LsSf https://astral.sh/uv/install.sh | sh

      - name: Copy README.md to docs/index.md
        run: cp README.md docs/index.md

      - name: Build site
        run: |
          uv run --only-group docs mkdocs build

  deploy:
    if: github.event_name == 'push' && contains(fromJson('["refs/heads/dev"]'), github.ref)
    needs: build
    name: Deploy docs
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5

      - name: Install uv
        run: curl -LsSf https://astral.sh/uv/install.sh | sh

      - name: Copy README.md to docs/index.md
        run: cp README.md docs/index.md

      - name: Deploy site
        run: |
          uv run --only-group docs mkdocs gh-deploy --force
