TASK: Split CI tooling environment from deployable runtime images #59
Notifications
Due Date
No due date set.
Blocks
#66 EPIC: Separate deployable runtime images from CI validation environments
DarkHelm.org/plex-playlist
Reference: DarkHelm.org/plex-playlist#59
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Introduce or refactor CI validation environments so lint, typecheck, test, and browser tooling are separated from deployable runtime images.
Problem
Deployable artifacts should not carry CI-only dependencies. Validation environments should own test and check tooling.
Scope
Out of Scope
Acceptance Criteria
Dependencies
Issue: Define and lock minimal deployable backend/frontend image requirements.
Definition of Done
Validation tooling and runtime artifacts are structurally separated in build and workflow paths.
Split CI tooling environment from deployable runtime imagesto TASK: Split CI tooling environment from deployable runtime imagesPlan: Split CI Tooling from Deployable Runtime Images
Summary
This plan delivers issue #59 by making validation tooling ownership explicit in CI image/workflow paths while keeping deployable backend/frontend runtime paths independent from CI-only tooling layers.
Plan Of Action
Phase 1: Baseline and boundary mapping
Build a tooling inventory from Dockerfile.cicd-base, Dockerfile.cicd, Dockerfile.backend, Dockerfile.frontend, cicd-checks workflow, and cicd-tests workflow.
Classify each tool as runtime-required vs validation-only using runtime contract and ADR003.
Record current coupling points where workflows rely on implicit tool availability instead of explicit validation-environment ownership.
Phase 2: Validation environment ownership refactor
Update CI image layering in Dockerfile.cicd-base and Dockerfile.cicd so lint/typecheck/test tooling is clearly owned by validation image paths.
Update workflows to run checks/tests in dedicated validation environment(s), with explicit job-level usage in cicd-checks workflow and cicd-tests workflow.
Preserve deployable image path independence in Dockerfile.backend and Dockerfile.frontend, avoiding CI-only installation requirements there.
Phase 3: Enforcement and regression guards
Add CI guards (scripts + workflow hooks) to fail on CI-only tooling leakage into deployable artifacts; wire into docker-build-main workflow.
Add Dockerfile/workflow boundary checks under scripts so future changes cannot silently re-couple runtime and validation concerns.
Keep checks scoped to issue requirements (no staging wiring or security-policy redesign).
Phase 4: Documentation and handoff
Update boundary ownership documentation in CICD multi-stage doc and development doc.
Cross-link runtime constraints from runtime contract and decision rationale from ADR003.
Add reviewer checklist describing where runtime concerns live vs where validation concerns live.
Verification Plan
Validation jobs proof
Confirm lint, typecheck, and tests run in dedicated validation environment(s) via updated CI workflows.
Confirm workflow logs show validation image/tooling usage and not deployable runtime paths.
Deployable runtime purity proof
Build backend/frontend deployable images from Dockerfile.backend and Dockerfile.frontend.
Verify deployable build paths do not require CI-only tool installation and remain runtime-focused.
Documentation proof
Verify docs explicitly identify runtime-vs-validation ownership and link to the controlling files/workflows.
Acceptance Criteria Mapping
Deployable backend/frontend image paths do not require CI-only tooling installation
Satisfied by preserving/guarding runtime-only paths in Dockerfile.backend and Dockerfile.frontend, plus CI leakage checks in workflows/scripts.
Checks/tests execute in dedicated validation environment(s)
Satisfied by explicit validation image usage in cicd-checks workflow and cicd-tests workflow.
Workflow docs identify runtime vs validation concerns
Satisfied by updates in CICD multi-stage doc, development doc, and references to runtime contract.
Scope Boundaries
Included
CI/runtime structural separation, workflow consumption changes, enforcement checks, and docs updates tied to issue #59.
Excluded
Full staging deployment wiring.
Security policy redesign.