Repository navigation
ci: run every document-contract suite on the focused path - #2010
Conversation
✅ Deploy Preview for endusers ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
1bc247c
ℹ️ Sentinel notice — informational; author is trusted (owner), merge is not blockedHive flagged this PR (author @mrbobbytables, head
Hive did not add the |
9039a56
ℹ️ Sentinel notice — informational; author is trusted (owner), merge is not blockedHive flagged this PR (author @mrbobbytables, head
Hive did not add the |
|
Confirmed the merge conflict against current main: it is exactly one hunk in Both names are used in the merged file, so the resolution is the union: import { existsSync, readFileSync } from 'node:fs';One observation while checking: no Actions workflows have run on the current head (9039a56) — only the Netlify and DCO commit checks — so the rebase will also produce the first real CI signal for this branch. 🐝 Hive Agent: — hive: agent=scanner backend=copilot model=kimi-k3 copilot=1.0.88 |
There was a problem hiding this comment.
Read the workflow step and the pinning test against the tree at head 9039a56, and ran the change locally: the 18-suite focused command passes (159 tests, 0 failures) and tests/content-only-ci-workflow.test.mjs passes, including the existsSync check over every listed path — all 15 added suite files exist. The token parsing in the test (replaceAll('\\\n', ' ') then slice(2)) correctly strips the line continuations and the node --test prefix of the run: | block, so the existence check sees clean paths. Looks correct to me.
One mechanical item before this can merge: the branch now conflicts with main because #2004 landed first, exactly as the PR body predicted. The conflict is a single import line in tests/content-only-ci-workflow.test.mjs:2 — main has import { readFileSync } from 'node:fs';, this branch has import { existsSync } from 'node:fs';. The resolution is to keep both: import { existsSync, readFileSync } from 'node:fs';. I verified via git merge-tree that this is the only conflicted hunk.
@mrbobbytables — a rebase with that one-line merge is all this needs.
— hive: agent=reviewer backend=copilot model=claude-fable-5 copilot=1.0.88
|
No description provided. |
The focused validation path from ADR 0011 ran only three unit suites, so a document-only PR could merge with an ADR missing from adr/README.md, a broken relative link in README.md, a blog post with malformed front matter or a docs page pointing at a missing static asset. Extend the "Check content contracts" step to every unit suite that reads an authored document and pin the list in the workflow test so a suite cannot drop out silently. tests/audit-gate.test.mjs also reads SECURITY.md but spends about 40s driving npm audit subprocesses; it stays on the full path. Fixes cncf#2002 Refs cncf#2003 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: mrbobbytables <mrbobbytables@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: mrbobbytables <mrbobbytables@users.noreply.github.com>
9039a56 to
8305903
Compare
8305903
ℹ️ Sentinel notice — informational; author is trusted (owner), merge is not blockedHive flagged this PR (author @mrbobbytables, head
Hive did not add the |
Remit: a document-only PR can currently merge with an ADR missing from
adr/README.md, a broken relative link inREADME.md, malformed blog front matter, or a docs page referencing a missing static asset, because the ADR 0011 focused path ran only three unit suites.What changed
.github/workflows/ci.yml: the "Check content contracts" step now runs every unit suite that reads an authored document (docs/,blog/,adr/or a root document): the original three plusadr-contract,architectures-sidebar-contract,blog-frontmatter,community-people-data,content-security-contract,contributing-e2e-setup,contributing-just-build-parity,dev-environment,docs-threshold-parity,e2e-docs-threshold-parity,enduser-directory-copy,governance-hygiene-parity,root-docs-links,sitemap-exclusionsandstatic-assets. The 18 suites run in about half a second locally (159 tests).tests/content-only-ci-workflow.test.mjs: pins the step so the core suites cannot drop out and every listed path exists.Deliberate exclusions
tests/audit-gate.test.mjsreadsSECURITY.mdbut spends ~40s drivingnpm auditsubprocesses; it stays on the full path (noted in a workflow comment).tests/skills-manifest.test.mjsreads.agents/skills/, which the classifier never treats as document-only, so it is not applicable to the focused path.tests/events-page.test.mjsreadsdocs/events/index.md, which is a data-backed document excluded from the focused path.Validation
node --test tests/content-only-ci-workflow.test.mjs tests/ci-*.test.mjs tests/workflow-scripts.test.mjs tests/workflow-loader.test.mjs: 185 pass.npm run check:format,npm run check:duplication(YAML clones unchanged at 37/37), ESLint and cspell on the touched files: clean.Note: this will need a trivial import-line rebase against #2004, whichever lands second.
Fixes #2002
Refs #2003 (the workflow half; #2004 carries the CONTRIBUTING half)