Skip to content

feat(sphinx-autodoc-fastmcp): FastMCP tool docs extension #218

feat(sphinx-autodoc-fastmcp): FastMCP tool docs extension

feat(sphinx-autodoc-fastmcp): FastMCP tool docs extension #218

Workflow file for this run

name: ci
on:
push:
pull_request:
jobs:
qa:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Install workspace dependencies
run: uv sync --all-packages --all-extras --group dev
- name: Print Python versions
run: |
python -V
uv run python -V
uv run pytest --version
- name: Lint with ruff check
run: uv run ruff check .
- name: Format with ruff format
run: uv run ruff format . --check
- name: Type check with mypy
run: uv run mypy .
- name: Validate package runtime versions
if: matrix.python-version == '3.14'
run: uv run python scripts/ci/package_tools.py check-versions
- name: Test with pytest
if: matrix.python-version != '3.14'
run: uv run pytest
- name: Test with pytest and coverage
if: matrix.python-version == '3.14'
run: uv run pytest --cov=./ --cov-report=xml
- uses: codecov/codecov-action@v6
if: matrix.python-version == '3.14'
with:
token: ${{ secrets.CODECOV_TOKEN }}
docs:
runs-on: ubuntu-latest
needs: qa
steps:
- uses: actions/checkout@v6
- name: Set up Python 3.14
uses: actions/setup-python@v6
with:
python-version: "3.14"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Install workspace dependencies
run: uv sync --all-packages --all-extras --group dev
- name: Build documentation with warnings as errors
run: uv run sphinx-build -W -b dirhtml docs docs/_build/html
packages:
runs-on: ubuntu-latest
needs: qa
steps:
- uses: actions/checkout@v6
- name: Set up Python 3.14
uses: actions/setup-python@v6
with:
python-version: "3.14"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Install workspace dependencies
run: uv sync --all-packages --all-extras --group dev
- name: Validate package runtime versions
run: uv run python scripts/ci/package_tools.py check-versions
- name: Build all workspace packages
run: uv build --all-packages --out-dir dist --clear
- name: Validate distributions with twine
run: uvx twine check dist/*
- name: Upload package distributions
uses: actions/upload-artifact@v7
with:
name: dist
path: dist/
smoke:
runs-on: ubuntu-latest
needs: packages
strategy:
fail-fast: false
matrix:
target:
- root-install
- gp-sphinx
- sphinx-gptheme
- sphinx-fonts
- sphinx-argparse-neo
- sphinx-autodoc-docutils
- sphinx-autodoc-sphinx
- sphinx-autodoc-pytest-fixtures
- sphinx-autodoc-api-style
steps:
- uses: actions/checkout@v6
- name: Set up Python 3.14
uses: actions/setup-python@v6
with:
python-version: "3.14"
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
- name: Download package distributions
if: matrix.target != 'root-install'
uses: actions/download-artifact@v8
with:
name: dist
path: dist
- name: Smoke test root bootstrap install
if: matrix.target == 'root-install'
run: python scripts/ci/package_tools.py smoke root-install
- name: Smoke test built package artifact
if: matrix.target != 'root-install'
run: python scripts/ci/package_tools.py smoke "${{ matrix.target }}" --dist-dir dist