Add "link tree" element, using directive linktree
#396
This file contains hidden or 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: Tests | |
| on: | |
| pull_request: | |
| push: | |
| branches: [ main ] | |
| # Allow job to be triggered manually. | |
| workflow_dispatch: | |
| # Cancel in-progress jobs when pushing to the same branch. | |
| concurrency: | |
| cancel-in-progress: true | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| jobs: | |
| tests: | |
| runs-on: "ubuntu-latest" | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [ | |
| "3.9", | |
| "3.14", | |
| ] | |
| docutils-version: [ | |
| "0.21.*", | |
| ] | |
| sphinx-version: [ | |
| "5.*", | |
| "6.*", | |
| "7.*", | |
| "8.*", | |
| "9.*", | |
| ] | |
| exclude: | |
| # Don't validate Sphinx 8 and 9 on Python 3.9. It is not supported. | |
| - python-version: "3.9" | |
| docutils-version: "0.21.*" | |
| sphinx-version: "8.*" | |
| - python-version: "3.9" | |
| docutils-version: "0.21.*" | |
| sphinx-version: "9.*" | |
| include: | |
| # Validate docutils 0.19, 0.20, and 0.22. | |
| - python-version: "3.14" | |
| docutils-version: "0.19.*" | |
| sphinx-version: "9.*" | |
| - python-version: "3.14" | |
| docutils-version: "0.20.*" | |
| sphinx-version: "9.*" | |
| - python-version: "3.14" | |
| docutils-version: "0.22.*" | |
| sphinx-version: "9.*" | |
| env: | |
| PYTHON: ${{ matrix.python-version }} | |
| SPHINX: ${{ matrix.sphinx-version }} | |
| UV_SYSTEM_PYTHON: true | |
| name: > | |
| Sphinx ${{ matrix.sphinx-version }} | |
| docutils ${{ matrix.docutils-version }} | |
| Python ${{ matrix.python-version }} | |
| steps: | |
| - name: Acquire sources | |
| uses: actions/checkout@v6 | |
| with: | |
| # Fetch tags, because `versioningit` needs them. | |
| # https://github.com/actions/checkout/issues/1471 | |
| fetch-tags: true | |
| fetch-depth: 0 | |
| filter: tree:0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| cache-dependency-glob: | | |
| pyproject.toml | |
| cache-suffix: ${{ matrix.python-version }} | |
| enable-cache: true | |
| version: "latest" | |
| - name: Set up project | |
| run: | | |
| # Install package in editable mode. | |
| uv pip install --editable='.[develop,docs,test]' | |
| # Install specific Sphinx and docutils versions, according to test matrix slots. | |
| uv pip install 'sphinx==${{ matrix.sphinx-version }}' | |
| uv pip install 'docutils==${{ matrix.docutils-version }}' | |
| uv pip install 'types-docutils==${{ matrix.docutils-version }}' | |
| - name: Sphinx and docutils versions | |
| run: | | |
| sphinx-build --version | |
| docutils --version | |
| - name: Run linter and software tests | |
| run: | | |
| poe check | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| with: | |
| files: ./coverage.xml | |
| flags: unittests | |
| env_vars: PYTHON,SPHINX | |
| name: codecov-umbrella | |
| fail_ci_if_error: true |