name: docs on: push: paths: ["docs/**", "src/**", "pyproject.toml", ".github/workflows/docs.yml"] pull_request: paths: ["docs/**", "src/**", "pyproject.toml", ".github/workflows/docs.yml"] permissions: contents: read jobs: docs: # 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 strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - name: Set up Python uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: python-version: "3.14" pip-version: "25.3" pip-install: -e .[d] --group docs - name: Build documentation run: sphinx-build -a -b html -W --keep-going docs/ docs/_build