name: Documentation

on: [push, pull_request]

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

jobs:
    build:
        name: Build documentation
        # We want to run on external PRs, but not on our own internal PRs as they'll be run
        # by the push to the branch. Without this if check, checks are duplicated since
        # internal PRs match both the push and pull_request events.
        if:
          github.event_name == 'push' || github.event.pull_request.head.repo.full_name !=
          github.repository

        runs-on: ubuntu-latest

        defaults:
          run:
            shell: bash -l {0}

        steps:
          - uses: actions/checkout@v4
          - uses: conda-incubator/setup-miniconda@v3
            with:
              python-version: 3.12
              miniforge-variant: Miniforge3
              miniforge-version: latest
              auto-update-conda: true

          - name: install and check pandoc
            run: |
              conda install pandoc -c conda-forge
              pandoc --help
              pandoc --version

          - name: Install dependencies
            run: pip install nox

          - name: Build documentation
            run: nox -s docs-build