73 lines
2.4 KiB
YAML
73 lines
2.4 KiB
YAML
name: Docs — Reference Drift Check
|
|
|
|
# Fails a PR if the committed /website/docs/reference/ output disagrees
|
|
# with what tools/generate_docs_reference.py would produce from the live
|
|
# Python tool/resource registry. Contributors should regenerate locally:
|
|
#
|
|
# cd Server && uv run python ../tools/generate_docs_reference.py
|
|
#
|
|
# or install the pre-commit hook to make this automatic:
|
|
#
|
|
# tools/install-hooks.sh
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [beta, main]
|
|
paths:
|
|
- Server/src/services/tools/**
|
|
- Server/src/services/resources/**
|
|
- Server/src/services/registry/**
|
|
- website/docs/reference/**
|
|
- tools/generate_docs_reference.py
|
|
- .github/workflows/docs-generate.yml
|
|
push:
|
|
branches: [beta]
|
|
paths:
|
|
- Server/src/services/tools/**
|
|
- Server/src/services/resources/**
|
|
- Server/src/services/registry/**
|
|
- website/docs/reference/**
|
|
- tools/generate_docs_reference.py
|
|
- .github/workflows/docs-generate.yml
|
|
workflow_dispatch: {}
|
|
|
|
jobs:
|
|
check:
|
|
name: Check docs reference is fresh
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v4
|
|
with:
|
|
version: latest
|
|
|
|
- name: Set up Python
|
|
run: uv python install 3.10
|
|
|
|
- name: Sync Server deps
|
|
working-directory: Server
|
|
run: uv sync
|
|
|
|
- name: Drift check
|
|
working-directory: Server
|
|
run: uv run python ../tools/generate_docs_reference.py --check
|
|
|
|
- name: Tool-count sanity
|
|
run: |
|
|
set -euo pipefail
|
|
# Match the decorator at start-of-line (skips imports and docstring mentions).
|
|
decorator_count=$(grep -rhE "^@mcp_for_unity_tool\(" Server/src/services/tools/ | wc -l | tr -d ' ')
|
|
# md_count excludes group landing pages (index.md) and the catalog root.
|
|
md_count=$(find website/docs/reference/tools -name '*.md' -not -name 'index.md' | wc -l | tr -d ' ')
|
|
echo "decorator_count=$decorator_count, md_count=$md_count"
|
|
if [[ "$decorator_count" != "$md_count" ]]; then
|
|
echo "Mismatch: $decorator_count @mcp_for_unity_tool decorators vs $md_count reference pages." >&2
|
|
echo "Run: cd Server && uv run python ../tools/generate_docs_reference.py" >&2
|
|
exit 1
|
|
fi
|