[3.12] Docs: Normalize Argument Clinic How-To section capitalization (GH-106788) #42296
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Docs | |
on: | |
workflow_dispatch: | |
#push: | |
# branches: | |
# - 'main' | |
# - '3.12' | |
# - '3.11' | |
# - '3.10' | |
# - '3.9' | |
# - '3.8' | |
# - '3.7' | |
# paths: | |
# - 'Doc/**' | |
pull_request: | |
branches: | |
- 'main' | |
- '3.12' | |
- '3.11' | |
- '3.10' | |
- '3.9' | |
- '3.8' | |
- '3.7' | |
paths: | |
- 'Doc/**' | |
- 'Misc/**' | |
- '.github/workflows/doc.yml' | |
permissions: | |
contents: read | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
build_doc: | |
name: 'Docs' | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Register Sphinx problem matcher | |
run: echo "::add-matcher::.github/problem-matchers/sphinx.json" | |
- name: 'Set up Python' | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3' | |
cache: 'pip' | |
cache-dependency-path: 'Doc/requirements.txt' | |
- name: 'Install build dependencies' | |
run: make -C Doc/ venv | |
- name: 'Build HTML documentation' | |
run: make -C Doc/ SPHINXOPTS="-q" SPHINXERRORHANDLING="-W --keep-going" html | |
# Add pull request annotations for Sphinx nitpicks (missing references) | |
- name: 'Get list of changed files' | |
if: github.event_name == 'pull_request' | |
id: changed_files | |
uses: Ana06/[email protected] | |
with: | |
filter: "Doc/**" | |
- name: 'Build changed files in nit-picky mode' | |
if: github.event_name == 'pull_request' | |
continue-on-error: true | |
run: | | |
# Mark files the pull request modified | |
touch ${{ steps.changed_files.outputs.added_modified }} | |
# Build docs with the '-n' (nit-picky) option; convert warnings to annotations | |
make -C Doc/ PYTHON=../python SPHINXOPTS="-q -n --keep-going" html 2>&1 | | |
python Doc/tools/warnings-to-gh-actions.py | |
# Ensure some files always pass Sphinx nit-picky mode (no missing references) | |
- name: 'Build known-good files in nit-picky mode' | |
run: | | |
# Mark files that must pass nit-picky | |
python Doc/tools/touch-clean-files.py | |
# Build docs with the '-n' (nit-picky) option, convert warnings to errors (-W) | |
make -C Doc/ PYTHON=../python SPHINXOPTS="-q -n -W --keep-going" html 2>&1 | |
# This build doesn't use problem matchers or check annotations | |
build_doc_oldest_supported_sphinx: | |
name: 'Docs (Oldest Sphinx)' | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: 'Set up Python' | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' # known to work with Sphinx 3.2 | |
cache: 'pip' | |
cache-dependency-path: 'Doc/requirements-oldest-sphinx.txt' | |
- name: 'Install build dependencies' | |
run: make -C Doc/ venv REQUIREMENTS="requirements-oldest-sphinx.txt" | |
- name: 'Build HTML documentation' | |
run: make -C Doc/ SPHINXOPTS="-q" SPHINXERRORHANDLING="-W --keep-going" html | |
# Run "doctest" on HEAD as new syntax doesn't exist in the latest stable release | |
doctest: | |
name: 'Doctest' | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Register Sphinx problem matcher | |
run: echo "::add-matcher::.github/problem-matchers/sphinx.json" | |
- uses: actions/cache@v3 | |
with: | |
path: ~/.cache/pip | |
key: ubuntu-doc-${{ hashFiles('Doc/requirements.txt') }} | |
restore-keys: | | |
ubuntu-doc- | |
- name: 'Install Dependencies' | |
run: sudo ./.github/workflows/posix-deps-apt.sh && sudo apt-get install wamerican | |
- name: 'Configure CPython' | |
run: ./configure --with-pydebug | |
- name: 'Build CPython' | |
run: make -j4 | |
- name: 'Install build dependencies' | |
run: make -C Doc/ PYTHON=../python venv | |
# Use "xvfb-run" since some doctest tests open GUI windows | |
- name: 'Run documentation doctest' | |
run: xvfb-run make -C Doc/ PYTHON=../python SPHINXERRORHANDLING="-W --keep-going" doctest |