name: Documentation Building

on:
  release:
    types: [published]
  push:
    branches:
      - main

jobs:
  docs:
    permissions:
      contents: write
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      - uses: actions/setup-python@v6
        with:
          python-version: "3.13"

      - name: Install uv
        uses: astral-sh/setup-uv@v7
        with:
          version: "0.5.4"
          enable-cache: true

      - name: Install dependencies
        run: uv sync --all-extras

      - name: Fetch gh pages
        run: git fetch origin gh-pages --depth=1

      - name: Build release docs
        run: uv run python tools/build_docs.py docs-build
        if: github.event_name == 'release'

      - name: Build dev docs
        run: uv run python tools/build_docs.py docs-build
        if: github.event_name == 'push'

      - name: Deploy
        uses: JamesIves/github-pages-deploy-action@v4
        with:
          folder: docs-build
