name: Deploy Documentation

on:
  push:
    branches:
      - main
    tags:
      - 'v*'
  workflow_dispatch:

# Only allow one docs build at a time so that overlapping stale builds will get
# cancelled automatically.
concurrency:
  group: deploy_docs
  cancel-in-progress: true

jobs:
  build-and-deploy:
    name: Build & Deploy
    runs-on: ubuntu-latest

    permissions:
      contents: write  # so we can write to github pages without a token
      pages: write      # to deploy to Pages
      id-token: write   # to verify the deployment originates from an appropriate source

    steps:
    - name: Clone repo
      uses: actions/checkout@v4

    - uses: actions/setup-python@v5
      with:
        python-version: "3.10"

    - uses: tlambert03/setup-qt-libs@v1

    - name: Install Dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install "napari[all]"
        python -m pip install -e ".[docs]"

    - name: Build Docs
      uses: aganders3/headless-gui@v2
      with:
        run: make docs

    - name: Check file tree contents
      run: tree

    # At a minimum this job should upload artifacts using actions/upload-pages-artifact
    - name: Upload GitHub Pages artifact
      uses: actions/upload-pages-artifact@v3
      with:
        name: github-pages
        path: docs/_build

    - name: Deploy to GitHub Pages
      id: deployment
      uses: actions/deploy-pages@v4 # or specific "vX.X.X" version tag for this action
