feat(1d): G3 — custom install-steps hook + graceful-generic (DG5) + DG3 N/A-skip demo
tests/custom-html-tiny/install_steps.sh seeds content into the volume pre-deploy. Proof: install FAILS without the hook (404, graceful-generic), PASSES with it. Same run shows backup/restore=skip (custom-html-tiny non-backup-capable) — DG3 N/A-skip. deploy-count=1. recipe_meta shortens timeouts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -177,3 +177,24 @@ Two more real bugs fixed en route (both via live runs): `_app_container` now bou
|
||||
container to reappear (backup-bot cycles it); the custom-html backup/restore overlay reads the marker
|
||||
via `exec_in_app` (volume-direct), not http (which raced the serving layer post-backup, served '').
|
||||
Re-claiming G1 (DG2+DG3) and claiming G2 (DG4+DG4.1).
|
||||
|
||||
## 2026-05-28 — G3 GREEN (DG5 hook + graceful-generic) + DG3 N/A-skip run-demo
|
||||
|
||||
Custom install-steps hook = `tests/<recipe>/install_steps.sh` (or repo-local `tests/install_steps.sh`),
|
||||
run by deploy_app AFTER `abra app new`+env, BEFORE `abra app deploy`, env CCCI_APP_DOMAIN/CCCI_RECIPE/
|
||||
CCCI_APP_ENV. Proof on **custom-html-tiny** (static-web-server serving an empty `content` volume → 404
|
||||
zero-config; non-backup-capable), final code on cc-ci:
|
||||
```
|
||||
RUN A: hook ABSENT -> deploy/readiness failed: ... not healthy over HTTPS / (last status 404)
|
||||
deploy-count=1 install : fail # graceful-generic: needs a step, fails, reported
|
||||
RUN B: hook PRESENT -> install-steps hook (cc-ci): .../tests/custom-html-tiny/install_steps.sh
|
||||
install : pass upgrade : pass # hook seeded index.html -> serves 200
|
||||
backup : skip restore : skip # non-backup-capable -> N/A (DG3 N/A run-demo)
|
||||
deploy-count = 1
|
||||
```
|
||||
So DG5 is proven BOTH ways on the SAME recipe (fail-without / pass-with), and the SAME run demonstrates
|
||||
DG3's N/A-skip half (backup/restore cleanly skipped, not failed, on a serving non-backup recipe). The
|
||||
hook writes index.html straight to the swarm volume's mountpoint (no container/image pull → no Docker
|
||||
Hub rate-limit risk); deploy-count stays 1 (the pre-created volume is not a deploy). recipe_meta for
|
||||
custom-html-tiny shortens timeouts (fast static app). lint PASS (shellcheck+shfmt+ruff+yamllint).
|
||||
Claiming G3.
|
||||
|
||||
Reference in New Issue
Block a user