U5 — the gate everything else has to pass

continuous_integration.yaml: six blocking checks, then a separate
publish per environment so a Vite build never gets tagged for the
wrong one, then a call into last commit's deploy workflow. Along the
way: the lint list had drifted (two problems not in the requirement,
one already fixed), and the Umami-origin gate needed a variable pair
of its own since the backend's side of that comparison lives on the
host, not in CI. Pinned the two vulnerable packages while at it.
This commit is contained in:
2026-07-28 16:07:03 +02:00
parent bd2a963498
commit 9f4ae475e7
12 changed files with 691 additions and 36 deletions
@@ -1104,3 +1104,47 @@ by Infrastructure Design. U5 carries REF-U3-01's Umami origin gate plus FR-21 an
**Context**: CONSTRUCTION — Round 3 — U6 Code Generation Part 2 complete, presenting completion message
---
## Code Generation — U6 Deploy Workflow (Approved)
**Timestamp**: 2026-07-28T00:45:00Z
**User Input**: "Continue to Next Stage"
**AI Response**: "U6 Code Generation approved. Committed as two commits: 9a77eec (Infrastructure Design) and bd2a963 (Code Generation — deploy-scp.yaml). Updated aidlc-state.md. Proceeding to Code Generation planning for U5 CI Workflow & Quality Gates."
**Context**: CONSTRUCTION — Round 3 — U6 fully complete; entering U5 Code Generation
---
## Code Generation Plan — U5 CI Workflow & Quality Gates (Planning + partial execution)
**Timestamp**: 2026-07-28T01:10:00Z
**User Input**: "(implicit — continuing after U6 approval)"
**AI Response**: "Investigated FR-21 (lint) and FR-22 (vulnerable packages) directly, since resolving them required live toolchain output rather than design work: fixed the current pnpm lint state (5 errors + 1 warning from FR-21's list, plus 2 additional problems found by drift — badge.tsx and a previously-hidden SetStatusDialog effect the React Compiler plugin could not reach until the watch() incompatibility was fixed), and pinned Microsoft.OpenApi (2.11.0) and System.Security.Cryptography.Xml (10.0.10) via live NuGet advisory lookups, closing OPEN-03. Verified: 372 backend tests, 237 frontend tests, tsc clean, frontend build clean, 0 vulnerable packages solution-wide. Created u5-ci-workflow-code-generation-plan.md documenting both completed steps plus the pending step (the CI workflow YAML itself), including a new mechanism decision (REF-U5-01): the REF-U3-01 gate cannot read the live host env var per D-16, so it is implemented against a parallel pair of Gitea variables that must be kept in sync with the host manually. Presenting for approval before writing continuous_integration.yaml."
**Context**: CONSTRUCTION — Round 3 — U5 Code Generation Part 1, prerequisite fixes done and verified; awaiting approval for the CI workflow YAML itself
---
## Code Generation Plan — U5 (Approved)
**Timestamp**: 2026-07-28T01:15:00Z
**User Input**: "Approve Plan"
**AI Response**: "Proceeding to generate continuous_integration.yaml."
**Context**: CONSTRUCTION — Round 3 — U5 Code Generation Part 2 starting
---
## Code Generation — U5 CI Workflow & Quality Gates (Complete)
**Timestamp**: 2026-07-28T01:40:00Z
**User Input**: "(implicit — plan approved, generation executed)"
**AI Response**: "Generated .gitea/workflows/continuous_integration.yaml (12 jobs). Discovered and resolved REF-U5-01 during generation: the REF-U3-01 gate's design assumed the CI job could read the backend's live SecurityHeaders:AllowedScriptOrigins, but per D-16 that's a host env var invisible to the runner — resolved with a parallel Gitea variable pair that must be kept in sync with the host manually, carried to Operations. Clarified the artifact model: frontend-build is a standalone PR gate; the real per-environment artifacts come from dotnet publish, which triggers the embedded admin SPA build via the existing MSBuild target. Validated YAML (12 jobs, deploy-production confirmed unreachable without workflow_dispatch+flag). Re-confirmed full verification: 372 backend tests, 237 frontend tests, tsc clean, frontend build clean, lint clean, 0 vulnerable packages. Documented in construction/u5-ci-workflow/code/generation-summary.md."
**Context**: CONSTRUCTION — Round 3 — U5 Code Generation complete, presenting completion message
---