feat(ci): enforce runtime-validation image separation #69
Reference in New Issue
Block a user
Delete Branch "feature/issue-59-runtime-validation-separation"
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
Implements issue #59 by enforcing a hard boundary between CI validation tooling and deployable runtime images.
This PR:
What Changed
CI workflow enforcement
Updated
.gitea/workflows/docker-build-main.yamlto:Dockerfile.backend,Dockerfile.frontend, scripts, backend/frontend directories).scripts/check-dockerfile-boundaries.sh.Dockerfile.backend,Dockerfile.frontend --target production).scripts/verify-deployable-image-purity.shagainst both images before publishing CICD image.Updated
.gitea/workflows/cicd-checks.yamlto add:dockerfile-boundary-checkjob.New enforcement scripts
Added
scripts/check-dockerfile-boundaries.sh:cicd-base,CICD_BASE_IMAGE,Dockerfile.cicd*, etc.).python:3.14-slimnginx:alpineAdded
scripts/verify-deployable-image-purity.sh:pip showpackage metadata checks for disallowed CI/dev packages.apk/dpkgwhen available) for disallowed runtime leaks.node_modules,.venv,site-packages,dist-packagesin sensitive paths).Documentation updates
Updated
docs/DEVELOPMENT.md:Updated
docs/CICD_MULTI_STAGE_BUILD.md:Updated
docs/DEPLOYABLE_RUNTIME_CONTRACT.md:Acceptance Criteria Mapping
Deployable backend/frontend image paths do not require CI-only tool installation
scripts/check-dockerfile-boundaries.shscripts/verify-deployable-image-purity.shdocker-build-main.yamlpre-publish gatesChecks and tests execute in dedicated validation environment(s)
cicd-checks.yamlboundary-check job running in CICD validation imageWorkflow docs identify runtime vs validation concerns
docs/DEVELOPMENT.mddocs/CICD_MULTI_STAGE_BUILD.mddocs/DEPLOYABLE_RUNTIME_CONTRACT.mdScope / Non-Goals
Included:
Not included:
Notes for Reviewers
docker-build-main.yamlbefore CICD image publish.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.