CodeIssuesPull RequestsActionsSecurityInsights
✨ AI
More
Settings

feat(ci): typecheck + 4,253 tests run on every push, and a CI merge gate enforces them #5473

Merged⚡ AI-generatedXSccantynz wants to mergefeat/ci-test-gatemainopened 23d ago
ccantynzcommented 23d ago

The platform ran workflows and enforced none of them: a PR could be red and the merge button neither knew nor cared. The 4,600-test suite only ever ran on the dev machine — a seatbelt in the trunk.

The workflow (.gluecron/workflows/ci.yml, every branch): bun install --frozen-lockfile (0.8s warm) → bunx tsc --noEmit (35s) → scripts/ci-tests.sh (4,253 tests, 24s). Total ~1 minute per push. The runner has no DATABASE_URL or AI keys by design — CI can never touch production data. scripts/ci-test-excludes.txt carries the 21 runner-env-sensitive files (subprocess-spawning + env-sensitive classes), each with its reason and a re-inclusion path; the list was built empirically from runs #2–#3, which took the failure count 60 → 1 → 0.

The gate (checkCiWorkflows in gate.ts, wired into runAllGateChecks): latest run per workflow for the PR's head sha. Red fails the gate; queued/running blocks ("merge when green"); no runs skips (repos without CI merge as before); stale >30 min degrades honestly; the boot-sweep retry pattern is honored because only the newest run per workflow counts. DB failure degrades to skipped — a lookup error never blocks a merge.

Run history of this branch is the proof: #1 exposed the log-cap problem, #2 surfaced the 60 real environment failures, #3 narrowed to 1, #4 is green.

🤖 Generated with Claude Code

ccantynzAI Reviewcommented 23d ago

AI Triage

(no summary)

Priority: medium Risk area: mixed

Suggested labels: (no label suggestions) Suggested reviewers: (no reviewer suggestions)

Suggestions only — nothing has been applied. The PR author stays in control.

gluecron[bot]🤖 botAI Reviewcommented 23d ago

AI review unavailable

The platform's AI balance is exhausted, so AI generation is temporarily unavailable. Nothing was lost. You can queue this as a repair for the internal agent from the repository's Health page, or try again once the balance is restored. The PR is otherwise unchanged.

Cross-repo impact

See what breaks downstream if this PR merges.

Analyze →
⮌ Merged

This pull request was merged into main.

c comment · e edit title · m merge · a approve · r request changes · ? shortcuts