You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci(workflows): enforce generated-artifact drift checks in CI, not just locally (#3254)
* ci(workflows): enforce the 3 generated-artifact drift checks that only ran locally
selfhost:env-reference:check, command-reference:check, and
docs:drift-check are part of the local `npm run test:ci` aggregate
script, but none of the three were ever wired into .github/workflows/ci.yml's
validate-code job -- only the local convenience script enforced them, so a
merged PR that changed src/selfhost/ai.ts, src/github/commands.ts, or a
GITTENSORY_REVIEW_*/gate-mode field could (and did, twice in one day)
silently leave the corresponding generated reference/docs page stale with
zero CI signal, discovered only when someone happened to run the full
local script.
Gated on the same `backend` path filter as the neighboring db-schema-drift
and cf-typegen drift checks, since all three read src/**/scripts/** source.
* ci(workflows): also gate the drift checks on UI-side changes
The review on this PR correctly flagged that gating the three new
drift checks on `backend` alone misses the case where the UI-side
artifact they validate (the generated reference file, or a docs page)
is edited directly without any backend source change -- selfhost-env-
reference.ts, command-reference.ts, and the docs pages docs:drift-check
cross-checks all live under apps/gittensory-ui/**. Add `|| needs.changes.outputs.ui == 'true'`
to all three conditions so a UI-only edit that desyncs one of them from
its source of truth still fails CI.
* test(ci): cover the 3 new generated-artifact drift-check workflow steps
Mirrors ci-cf-typegen-check.test.ts's own assertion shape for the same
class of drift guard: asserts each check's npm script exists and is
wired into test:ci, that ci.yml's validate-code job runs a step for it
with the exact command, and that all three share the same backend-or-ui
gating condition (the review on this PR flagged the missing test
coverage for a workflow-only change; this closes that gap the way the
repo's existing precedent for exactly this kind of change already does).
* chore(selfhost): regenerate env-reference after rebase (again)
Third time today this drifted from an unrelated src/selfhost/ai.ts
change landing on main between rebases -- exactly the recurring gap
this PR's new CI step closes going forward.
0 commit comments