Skip to content

Commit 58716bc

Browse files
authored
Merge pull request #7067 from JSONbored/ci/enforce-drift-checks-in-ci
ci(workflows): enforce 4 drift checks in CI that only ran locally
2 parents c23060e + 528b92b commit 58716bc

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ jobs:
6666
- '.github/workflows/**'
6767
- 'wrangler.jsonc'
6868
- 'worker-configuration.d.ts'
69+
- '.loopover.yml'
6970
observability:
7071
- 'grafana/dashboards/**'
7172
- 'prometheus/rules/**'
@@ -269,6 +270,16 @@ jobs:
269270
- name: Selfhost env-reference drift check
270271
if: ${{ github.event_name == 'push' || needs.changes.outputs.backend == 'true' || needs.changes.outputs.ui == 'true' }}
271272
run: npm run selfhost:env-reference:check
273+
# Miner/AMS twin of the selfhost check above -- same generated-artifact-drift class, same
274+
# local-only-until-now gap (an `env.SOMETHING` read added under packages/loopover-miner/**
275+
# with no CI signal that packages/loopover-miner/docs/env-reference.md and
276+
# apps/loopover-ui/src/lib/ams-env-reference.ts had gone stale). Confirmed harmful live: this
277+
# exact gap let a stale env-reference block an unrelated MCP npm release, since the release
278+
# workflow was the only place this check ever ran. Gated on `ui` too, same reason as its sibling:
279+
# the generated UI-side file lives under apps/loopover-ui/**.
280+
- name: Miner env-reference drift check
281+
if: ${{ github.event_name == 'push' || needs.changes.outputs.miner == 'true' || needs.changes.outputs.ui == 'true' }}
282+
run: npm run miner:env-reference:check
272283
# Same generated-artifact-drift class, extracted from src/github/commands.ts's command catalogs (#3046).
273284
# Also local-only until now; same backend-or-ui gating rationale as the step above.
274285
- name: Command reference drift check
@@ -282,6 +293,27 @@ jobs:
282293
- name: Docs drift check
283294
if: ${{ github.event_name == 'push' || needs.changes.outputs.backend == 'true' || needs.changes.outputs.ui == 'true' }}
284295
run: npm run docs:drift-check
296+
# Cross-checks the bundled fallback YAML in src/config/loopover-repo-focus-manifest.ts against the
297+
# real root .loopover.yml -- see the script's own header comment. Same local-only-until-now gap as
298+
# the drift checks above: nothing in this workflow previously ran it, so the two could silently
299+
# diverge with zero CI signal. .loopover.yml itself is now part of the `backend` path filter above
300+
# specifically so an edit to ONLY that file still re-triggers this job.
301+
- name: Manifest drift check
302+
if: ${{ github.event_name == 'push' || needs.changes.outputs.backend == 'true' }}
303+
run: npm run manifest:drift-check
304+
# Mechanical drift tripwire for the hand-duplicated src/{review,settings,signals} <-> loopover-engine
305+
# twin files, plus a version-skew check on the installed @loopover/engine (#4260). Same
306+
# local-only-until-now gap as the drift checks above.
307+
- name: Engine-parity drift check
308+
if: ${{ github.event_name == 'push' || needs.changes.outputs.backend == 'true' || needs.changes.outputs.engine == 'true' }}
309+
run: npm run engine-parity:drift-check
310+
# Guards against the "gittensory" branding creeping back into runtime source after the LoopOver
311+
# rebrand -- see the script's own header comment (#6786 is the concrete incident this was written
312+
# for). Scoped broadly (src/** plus every workspace package's bin/lib/src/scripts dirs), so it's
313+
# gated broadly to match; same local-only-until-now gap as the drift checks above.
314+
- name: Branding drift check
315+
if: ${{ github.event_name == 'push' || needs.changes.outputs.backend == 'true' || needs.changes.outputs.mcp == 'true' || needs.changes.outputs.engine == 'true' || needs.changes.outputs.miner == 'true' || needs.changes.outputs.ui == 'true' }}
316+
run: npm run branding-drift:check
285317
- name: Validate observability configs
286318
if: ${{ github.event_name == 'push' || needs.changes.outputs.backend == 'true' || needs.changes.outputs.observability == 'true' }}
287319
env:

0 commit comments

Comments
 (0)