ci: consolidate workflows into single CI pipeline with job deps
CI / Assistant Split Regression (push) Failing after 5m21s
CI / Architecture Guardrails (push) Failing after 5m28s
CI / Unit Tests (push) Failing after 27s
CI / Typecheck (push) Failing after 8m39s
CI / Build (push) Has been skipped
CI / E2E Tests (push) Has been skipped
CI / Lint (push) Successful in 9m32s
CI / Release Images (push) Has been skipped
CI / Fresh-Linux Docker Deploy (push) Has been skipped

Collapses ci.yml, release-image.yml, and deploy-test.yml from three
parallel push-triggered workflows into one orchestrated pipeline:

- release-image.yml: converted to reusable workflow (workflow_call +
  workflow_dispatch). No longer triggers on push directly.
- deploy-test.yml: deleted, content inlined into ci.yml as the
  docker-deploy-test job with needs: [build].
- ci.yml: adds docker-deploy-test job and release-images job. The
  release-images job calls release-image.yml via uses: and is gated
  to push events on main, so PRs do not publish images.
- check-architecture-guardrails.mjs: updated to enforce the new
  reusable-workflow shape (workflow_call trigger, ci.yml chains
  release-image.yml, main-push gating).

One run per commit, clear Success/Failure status, no wasted image
builds when CI fails.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-12 14:54:05 +02:00
parent 002f44ea3d
commit 3391ae5ce6
4 changed files with 118 additions and 109 deletions
+10 -2
View File
@@ -663,8 +663,8 @@ export const rules = [
file: ".github/workflows/release-image.yml",
required: [
{
pattern: /push:\s*\n\s*branches:\s*\[main\]/,
message: "image releases must build automatically on pushes to main",
pattern: /workflow_call:/,
message: "release workflow must remain callable as a reusable workflow from ci.yml",
},
{
pattern: /workflow_dispatch:/,
@@ -708,6 +708,14 @@ export const rules = [
pattern: /run:\s+pnpm db:generate/,
message: "CI must route Prisma client generation through the workspace env/schema wrapper",
},
{
pattern: /uses:\s+\.\/\.github\/workflows\/release-image\.yml/,
message: "ci.yml must chain release-image.yml so image builds run after checks pass",
},
{
pattern: /github\.event_name == 'push' && github\.ref == 'refs\/heads\/main'/,
message: "release-images job must be gated to main-branch pushes to avoid PR image pushes",
},
],
forbidden: [
{