Repository navigation
Conversation
docsite-test, docsite-data, docsite-browser, test-ui, test-node, the test join, registry-contract, build-storybook, size-base, typecheck, build-sandbox and test-build each run the test-scope step first and skip their work, reporting success, when nothing in their scope changed, instead of waiting on check-scope. Required contexts are unchanged (spec:AST-030 FR7). - The action reports whether it decided. docsite-test validates spec records when its own scope is spec-only or undecided, so a failed lookup can never pass the required check unvalidated (FR4). - The test join requires the release bump's own validation on a release-branch pull request, and every owner's success otherwise.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
AI review status for this pull request.
|
There was a problem hiding this comment.
Changes requested. Moving the docsite, test and build owners onto their own scope step works as described, but dropping check-scope from the test join removes the only required-check reaction to a failed check-scope, which still gates check-components and the accessibility and visual audits.
- Keep the
testjoin failing whencheck-scopedid not succeed, with its removed test, until part 4 movescheck-componentsoffcheck-scope. - Pin the join's
release_bump == 'true'step condition and itsRELEASE_BUMP/RELEASE_BUMP_RESULTenv in the routing tests, and keep assertingpr-rtl's spec-only condition.
[Automated review]
| process.exitCode = 1; | ||
| } | ||
|
|
||
| if (process.env.CHECK_SCOPE_RESULT !== 'success') { |
There was a problem hiding this comment.
This check was the only required-context reaction to a failed check-scope. check-scope still gates check-components (ci.yml:569-571), so when it fails, pr-a11y and the visual audits skip and only the non-required pr-rtl fails, while test, build and docsite-test now pass. Keep check-scope in the join's needs and this check, with its test, until check-components moves off check-scope (AST-030 FR4).
| if: steps.scope.outputs.spec_only != 'true' || steps.scope.outputs.release_bump == 'true' | ||
|
|
||
| - name: Require expected test-owner outcomes | ||
| if: steps.scope.outputs.spec_only != 'true' || steps.scope.outputs.release_bump == 'true' |
There was a problem hiding this comment.
This release_bump == 'true' alternative is what makes test fail a release bump whose release-bump job failed, but deleting it here and at line 1034 leaves every routing test green (AST-030 FR9). Assert both conditions and the RELEASE_BUMP/RELEASE_BUMP_RESULT env in the “preserves the historical joins” test.
| 'build-storybook', | ||
| 'pr-rtl', | ||
| ]; | ||
| const unrelatedJobs = ['test-ui', 'test-node', 'test', 'build-storybook']; |
There was a problem hiding this comment.
Dropping pr-rtl here removes the only assertion of its spec-only skip: deleting needs.check-scope.outputs.spec_only != 'true' from its condition (ci.yml:2717) fails this test on the base and nothing on this head (AST-030 FR9). Keep asserting that clause for the jobs still on check-scope.
check-scope still gates check-components, the heavy lanes and release-check, so the required join keeps failing when it does not succeed; part 4 removes the gate with check-scope itself. The routing tests pin the join's release-bump condition and env, and the heavy lanes' check-scope spec-only condition.
There was a problem hiding this comment.
Changes requested. Moving the docsite, test and build owners onto their own scope step works as described, and the test join keeps failing on a failed check-scope. One new fail-closed edge is untested: the routing test at spec-owner-workflow.test.mjs:201 reads the setup step, so dropping || steps.scope.outputs.decided != 'true' from docsite-test's Validate spec records step (ci.yml:426) leaves the whole .github/scripts suite green (AST-030 FR9). Assert that step's own if directly.
[Automated review]
| // could not decide, so an undecided lane never skips validation. | ||
| expect(docsiteJob.slice(setup, validate)).toContain( | ||
| "if: needs.check-scope.outputs.spec_only == 'true'", | ||
| "if: (steps.scope.outputs.spec_only == 'true' || steps.scope.outputs.decided != 'true')", |
There was a problem hiding this comment.
This slice ends where - name: Validate spec records begins, so it only sees the setup step's condition (ci.yml:423). Dropping || steps.scope.outputs.decided != 'true' from the validation step itself (ci.yml:426) leaves the whole .github/scripts suite green, which AST-030 FR9 rules out. Assert that step's own if, for example by slicing from validate to the end of the job or by parsing the workflow and comparing the step's if exactly.
Dropping the undecided clause from the Validate spec records step now fails the suite (spec:AST-030 FR9).
There was a problem hiding this comment.
Approval recommended from the automated review: the docsite, test and build owners now decide their own scope while test, build and docsite-test keep reporting, and removing any new fail-closed edge, including docsite-test's spec validation when its own lookup cannot decide, fails a routing test. One optional cleanup: the three-line comment above registry-contract that describes what the job proves was deleted although it is unrelated to the scope change; consider restoring it.
[Automated review]
| # Public registry contract. Generation proves schema, dependency, route-lock, | ||
| # alias, and release-gating invariants; the final step drives every canonical | ||
| # item through the exact pinned ShadCN client and compiles every written source. |
There was a problem hiding this comment.
This comment says what registry-contract's generation and pinned ShadCN client steps prove, and removing it is unrelated to moving the job onto its own scope step. Consider keeping it above the job.
Who this helps
Everyone opening a pull request: the docsite, test and build jobs start right away instead of waiting about a minute for
check-scope. Each one still skips its work when nothing in its scope changed.What changes
check-scope: docsite-test, docsite-data, docsite-browser, test-ui, test-node, thetestjoin, registry-contract, build-storybook, size-base, typecheck, build-sandbox and test-build.test-scopestep first and skips its work, reporting success, when nothing in its scope changed.docsite-testvalidates spec records when its own scope is spec-only or undecided. A failed lookup can't pass the required check unvalidated (FR4).testjoin requires the release bump's own validation on a release-branch PR, and every owner's success otherwise.check-scopestays for now, still feeding release-bump, the heavy lanes and release-check, until part 4.Part 3 of 4 of the CI scope consolidation. Stacked on #8917.
Line count
+489 / −264, net +225.
Verification
vitest run --project node .github/scripts internal/shadcn-registry internal/lab-readiness: all pass.docsite-test's own validation step readsdecided.