Repository navigation
ci: gate the Doc content — compile, render, and run every NodeType in the docs tree - #1483
Conversation
…der src/MeshWeaver.Documentation/Data The documentation tree ships 570 nodes including 11 runtime-compiled .cs sources and 4 NodeType configuration lambdas that no dotnet build ever touches (the csproj embeds Data/** and removes its .cs from compilation). Two of the four Doc NodeTypes (DataMesh/SocialMedia Post + Profile) had never been compiled by any build or test. New doc-gate job, cloned from plugin-gate minus the credential and fork guard: stages Data/ as a Doc package root (root synthesized — committing an index.json would ship a duplicate root node in the embedded partition), reuses shard 0's build artifact for the mw-plugin-test DLL, and runs the same install → compile → render → Tests-area pipeline the plugins repo CI uses, with .github/doc-gate.allow as the one-way known-debt ratchet (empty: the tree is fully green today — verified locally, 570 nodes, 4 types, ALL GREEN). collect-results now needs doc-gate and fails explicitly when it failed — needs: alone is not enough under if: always(). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a new CI gate to ensure documentation content under src/MeshWeaver.Documentation/Data is actually runtime-compiled, rendered, and (when present) executed as NodeType tests—closing the gap where Roslyn-compiled doc-node sources and configuration lambdas were previously invisible to dotnet build.
Changes:
- Introduces a
doc-gatejob that stages the docs tree as aDoc/package root and runsmw-plugin-testfrom shard 0’s build artifact to validate compile/render/(declared) tests. - Wires
doc-gateinto the requiredcollect-resultsjob so a failing doc gate makes the required check go red. - Adds an (currently empty)
.github/doc-gate.allowfile for the one-way “known debt” allowlist ratchet.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
.github/workflows/dotnet-test.yml |
Adds the doc-gate CI job and ensures its failure is propagated into the required “Consolidate test results” check. |
.github/doc-gate.allow |
Introduces the allowlist file used by the doc gate (starts empty). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Test Results (shard 0)723 tests 723 ✅ 10m 24s ⏱️ Results for commit 806d5f2. ♻️ This comment has been updated with latest results. |
Test Results (shard 3) 11 files 11 suites 6m 1s ⏱️ Results for commit 806d5f2. ♻️ This comment has been updated with latest results. |
Test Results (shard 5)1 920 tests 1 728 ✅ 6m 4s ⏱️ Results for commit 806d5f2. ♻️ This comment has been updated with latest results. |
Test Results (shard 4)1 930 tests 1 920 ✅ 8m 18s ⏱️ Results for commit 806d5f2. ♻️ This comment has been updated with latest results. |
Test Results (shard 1)1 404 tests 1 404 ✅ 7m 7s ⏱️ Results for commit 806d5f2. ♻️ This comment has been updated with latest results. |
Test Results (shard 2)2 601 tests 2 600 ✅ 8m 27s ⏱️ Results for commit 806d5f2. ♻️ This comment has been updated with latest results. |
Test Results 66 files 66 suites 46m 25s ⏱️ Results for commit 806d5f2. ♻️ This comment has been updated with latest results. |
Part of the modularization program: documentation stays in-repo, so its content must be CI-built and CI-run.
What: a new
doc-gatejob indotnet-test.yml(cloned fromplugin-gate, minus the secret and fork guard — the content under test is this repo's own). It stagessrc/MeshWeaver.Documentation/Dataas aDocpackage root and runsmw-plugin-testfrom shard 0's build artifact: GitSync-import into a fresh mesh → assertCompilationStatus.Okper NodeType → render the default area → executeTestsareas where declared..github/doc-gate.allowis the one-way debt ratchet (listed failures tolerated, new failures red, now-passing entries must be removed).Why: the docs tree ships 11 runtime-compiled
.csnode sources and 4 NodeType configuration lambdas invisible todotnet build;Doc/DataMesh/SocialMedia/{Post,Profile}had never been compiled by anything.Local verification (exact CI invocation):
Discovered 1 package(s)→[PASS] Doc (570 node(s), 4 type(s))→ALL GREEN, so the allow file starts empty. Tests reportskipped— no Doc NodeType declares aTestsarea yet; adding those is the follow-up, and the samples/Graph/Data extension of this gate is the next PR.Wall-clock:
needs: [build]like the shards, so it runs concurrently; local run completes in well under a minute plus artifact download.No What's New entry — CI-internal change with no user-visible effect.
🤖 Generated with Claude Code