-
Notifications
You must be signed in to change notification settings - Fork 174
Open
Labels
choreLinting, formatting, dependency hygiene, or project maintenance choresLinting, formatting, dependency hygiene, or project maintenance chorescicdIssue with CI/CD process (GitHub Actions, scaffolding)Issue with CI/CD process (GitHub Actions, scaffolding)devopsDevOps activities (containers, automation, deployment, makefiles, etc)DevOps activities (containers, automation, deployment, makefiles, etc)good first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is neededtriageIssues / Features awaiting triageIssues / Features awaiting triage
Milestone
Description
π§ Chore Summary
Set up automated documentation generation in GitHub Actions to build docs, generate architecture diagrams, and deploy to GitHub Pages using MkDocs on every push to main branch.
π§± Area Affected
- GitHub Actions / CI Pipelines
- Build system or
Makefile
- Docs or spellcheck
- Containerization (Docker/Podman)
βοΈ Context / Rationale
Currently, documentation generation is a manual process requiring developers to:
- Run
make docs
locally to generate handsdown documentation - Run
make images
to create architecture diagrams - Manually commit and push documentation updates
This creates several problems:
- Documentation drift - docs get out of sync with code changes
- Developer friction - extra manual steps slow down development
- Inconsistency - different environments may generate different outputs
- Barriers to contribution - contributors need local tooling setup
Automating this process will:
- Ensure docs are always up-to-date with latest code
- Remove manual burden from developers
- Provide consistent, reproducible documentation builds
- Enable automatic deployment to GitHub Pages
- Integrate with existing MkDocs configuration
π¦ Related Make Targets
make docs
- generate documentation with handsdown + images + sbommake images
- generate architecture diagrams (code2flow, snakefood, pyreverse)make sbom
- generate software bill of materialsmake install
- may need updates for CI dependencies (e.g.graphviz
)
π Acceptance Criteria
- Create
.github/workflows/docs.yml
workflow file - Workflow triggers on push to
main
branch and manual dispatch - Install all required dependencies (graphviz, code2flow, handsdown, etc.)
- Include unit test report
make test
in generated documentation - Run existing
make docs
target to generate documentation - Set up MkDocs integration and configuration
- Deploy generated docs to GitHub Pages
- Handle git authentication for committing back to repo
- Add appropriate caching for dependencies and build artifacts
- Workflow runs successfully without manual intervention
- Generated docs are accessible via GitHub Pages
- Include status badge in README for docs build status
π§© Additional Notes
Required GitHub Actions workflow structure:
name: π Generate Documentation
on:
push:
branches: [ main ]
paths:
- 'mcpgateway/**'
- 'docs/**'
- 'README.md'
- 'mkdocs.yml'
workflow_dispatch:
jobs:
docs:
runs-on: ubuntu-latest
permissions:
contents: write
pages: write
id-token: write
Dependencies to install in CI:
- Python environment with project dependencies
graphviz
system package for dot/SVG generationcode2flow
for code flow diagramssnakefood3
for dependency graphspylint
for pyreverse UML generationhandsdown
for API documentationmkdocs
+mkdocs-material
for site generation
Key workflow steps:
- Checkout code with full history
- Set up Python + install dependencies
- Install system packages (graphviz)
- Run
make docs
to generate all documentation - Configure git for automated commits
- Commit any changes back to repo
- Deploy to GitHub Pages using official actions
Configuration needs:
- Update
mkdocs.yml
to point to generated docs location - Ensure
.gitignore
doesn't exclude generated documentation - Set up GitHub Pages to deploy from workflow
- Configure branch protection to allow workflow commits
Performance considerations:
- Cache Python dependencies and system packages
- Only regenerate docs when relevant files change
- Consider using artifacts to store intermediate build outputs
Metadata
Metadata
Assignees
Labels
choreLinting, formatting, dependency hygiene, or project maintenance choresLinting, formatting, dependency hygiene, or project maintenance chorescicdIssue with CI/CD process (GitHub Actions, scaffolding)Issue with CI/CD process (GitHub Actions, scaffolding)devopsDevOps activities (containers, automation, deployment, makefiles, etc)DevOps activities (containers, automation, deployment, makefiles, etc)good first issueGood for newcomersGood for newcomershelp wantedExtra attention is neededExtra attention is neededtriageIssues / Features awaiting triageIssues / Features awaiting triage