template cd.yml deploys without a manifest: ship the .deploy-enabled gate in the template (doodle#3, spatial-agent-app) #16

Open
opened 2026-10-10 08:54:41 +00:00 by mathias · 0 comments
Owner

Evidence: two repos generated from this template fail identically on every push to main at "Deploy via GitOps" > "Update image tag in infra repo": sed: can't read k3s/apps/<name>/deployment.yaml: No such file or directory.

  • mathias/doodle: fixed in 32acff8, 006c108, 3a95cc9 (issue #3, #15).
  • mathias/spatial-agent-app: fixed in 54e1db6 (tag v0.0.1); red since the first substituted commit (2026-10-06).

Cause: the template's cd.yml build and deploy jobs run unconditionally on push to main, but a new repo has no infra manifest (mathias/infra k3s/apps//), so deploy cannot succeed, and build pushes images for nothing.

Proposed: ship in the template (a) scripts/deploy-enabled.sh, (b) the guard deploy step + deploy_enabled output, (c) needs.guard.outputs.deploy_enabled == 'true' in build.if and deploy.if, (d) scripts/tests/deploy-enabled_test.sh and scripts/tests/cd-wiring_test.sh wired into task check. Do not ship the marker. Generated repos then stay green with build/deploy skipped until someone creates the infra manifest and commits .deploy-enabled. Make the new-project flow mention this step. Port from doodle (read-only reference: those three commits); make sure the template's own is-template guard and substitution still pass.


Created via git-mcp on behalf of @mathias

Evidence: two repos generated from this template fail identically on every push to main at "Deploy via GitOps" > "Update image tag in infra repo": `sed: can't read k3s/apps/<name>/deployment.yaml: No such file or directory`. - mathias/doodle: fixed in 32acff8, 006c108, 3a95cc9 (issue #3, #15). - mathias/spatial-agent-app: fixed in 54e1db6 (tag v0.0.1); red since the first substituted commit (2026-10-06). Cause: the template's cd.yml build and deploy jobs run unconditionally on push to main, but a new repo has no infra manifest (mathias/infra k3s/apps/<name>/), so deploy cannot succeed, and build pushes images for nothing. Proposed: ship in the template (a) scripts/deploy-enabled.sh, (b) the guard `deploy` step + `deploy_enabled` output, (c) `needs.guard.outputs.deploy_enabled == 'true'` in build.if and deploy.if, (d) scripts/tests/deploy-enabled_test.sh and scripts/tests/cd-wiring_test.sh wired into `task check`. Do not ship the marker. Generated repos then stay green with build/deploy skipped until someone creates the infra manifest and commits .deploy-enabled. Make the new-project flow mention this step. Port from doodle (read-only reference: those three commits); make sure the template's own is-template guard and substitution still pass. --- _Created via git-mcp on behalf of @mathias_
Sign in to join this conversation.