Skip to content

Add auto-generated documentation site for workflows and actions#81

Merged
ssestak merged 11 commits intomainfrom
feature/docs-site
Feb 20, 2026
Merged

Add auto-generated documentation site for workflows and actions#81
ssestak merged 11 commits intomainfrom
feature/docs-site

Conversation

@ssestak
Copy link
Contributor

@ssestak ssestak commented Feb 20, 2026

Summary

Adds a MkDocs Material documentation site that auto-generates markdown pages for all reusable workflows and composite actions. The site is deployed via GitHub Pages on every push to main.

Changes

  • Auto-discovery in config.py scans the filesystem instead of a hand-maintained registry — adding a new workflow or action requires zero config changes
  • YAML parsers extract inputs, secrets, outputs, permissions, and triggers
  • Jinja2 templates render workflow and action pages with usage snippets, cross-links, and deprecation banners
  • Enricher pipeline supports README embedding and optional AI summaries
  • deploy-docs.yml workflow builds and deploys on push to main or tags
  • Uses pip cache via actions/setup-python@v6 instead of a no-op mkdocs cache

Diagram

Doc generation pipeline
flowchart TD
    A[deploy-docs.yml] --> B[checkout\@v6]
    B --> C[<br>setup-python@v6<br/>pip cache]
    C --> D[generate-docs.py]
    D --> E[config.py<br/>auto-discover]
    E --> F[Parse YAMLs<br/>workflow + action]
    F --> G[Enrich<br/>README / AI]
    G --> H[Render Markdown<br/>Jinja2 templates]
    H --> I[mkdocs gh-deploy]
Loading
Auto-discovery logic
flowchart LR
    subgraph Workflows
        W1[workflows/*.yml] --> W2[Skip EXCLUDE]
        W2 --> W3[Match category prefix]
        W3 --> W4[Parse YAML name<br/>Derive runner<br/>Check workflow_call]
        W4 --> W5[Merge OVERRIDES]
        W5 --> WR[WORKFLOWS dict]
    end

    subgraph Actions
        A1[actions/*/action.yml] --> A2[Match category prefix]
        A2 --> A3[Parse YAML name<br/>Detect README]
        A3 --> A4[Merge OVERRIDES]
        A4 --> AR[ACTIONS dict]
    end
Loading

Šimon Šesták and others added 9 commits February 19, 2026 14:15
Build a GitHub Pages documentation site (MkDocs Material) that auto-generates
from workflow and action YAML metadata. Covers all 18 reusable workflows and
13 composite actions with usage snippets, input/secret/output tables, and
cross-links. Includes enricher plugin API for future AI-powered docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…es, and DRY violations

- Guard against yaml.safe_load returning None on empty files in both parsers
- Fix substring match bug in action cross-links (e.g. `build` matching `build-firebase`)
- Derive top-level index categories from CATEGORY_LABELS instead of hardcoded lists
- Extract duplicated _parse_inputs/_parse_outputs into shared types module

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Without a blank line separator, Markdown renders them as a single
paragraph on one line.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Generated markdown in docs/workflows/ and docs/actions/ can be
regenerated with `python scripts/generate-docs.py`. Hand-crafted
assets, stylesheets, and docs/index.md remain tracked.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Output files are now gitignored, so the warning is unnecessary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace hand-maintained WORKFLOWS and ACTIONS dicts with auto-discovery
functions that scan workflows/*.yml and actions/*/action.yml. Only
EXCLUDE, OVERRIDES, and CATEGORY_LABELS remain manually maintained.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The .cache directory is only used by mkdocs-material plugins (social
cards, blog, offline) which are not enabled. Use setup-python built-in
pip cache instead to speed up dependency installation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Detect companion markdown files (workflows/{key}.md) alongside workflow
YAMLs, matching the existing README detection for actions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace mkdocs gh-deploy with mike deploy to support multiple doc
versions. Tag pushes publish under the tag name with a "latest" alias,
while main-branch pushes publish under "main". The Material theme
version selector is enabled via extra.version.provider.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ssestak ssestak marked this pull request as ready for review February 20, 2026 14:09
@ssestak ssestak enabled auto-merge February 20, 2026 14:10
@ssestak ssestak merged commit 99f5afa into main Feb 20, 2026
2 checks passed
@ssestak ssestak deleted the feature/docs-site branch February 20, 2026 14:10
@jmarek41
Copy link
Member

😍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants