▍ humdrum codex / custard v0.3.0
license AGPL-3.0

docs: deploy & release CLI usage

933eefaae5d2d9e7a6728d84458ff7c3129b7dc4
humdrum <me@humdrum.me> · 2026-06-18 08:25

parent fa2e271e

docs: deploy & release CLI usage

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

1 files changed

README.md +26 −0
@@ -145,4 +145,30 @@ The tag (must be semver `vX.Y.Z`) fires the webhook → custard verifies the HMAC signature,
 archives the tag, writes the tarball, and pushes an updated formula to the tap. `scripts/brew-release.sh`
 remains as a manual fallback.
 
+## Deploy & release CLI
+
+The same `custard` binary is also a local client for shipping (the droplet runs `custard serve`;
+your laptop runs the verbs). It never pushes git — you keep committing/pushing however you like;
+it owns *deploy + release*. Configure check/deploy commands per repo in `.custard.yaml`:
+
+```yaml
+ci:
+  - go vet ./...
+  - go test ./...
+deploy:
+  preview: vercel deploy              # any command that prints a URL (vercel/netlify/fly/rsync…)
+  promote: vercel promote {{url}}     # {{url}} = the preview; defaults to vercel promote
+```
+
+```bash
+custard check               # run ci on the working tree (fast inner loop)
+custard preview             # export HEAD, run ci, deploy a preview → URL
+custard promote             # promote the last preview → production
+custard release v0.2.0      # run ci, tag + push → tap auto-publishes
+```
+
+Deploys **build from the committed HEAD** (uncommitted edits are never deployed) and require HEAD
+pushed. `preview`/`promote` report signed status back to the forge (`~/.custardrc` or
+`CUSTARD_URL`/`CUSTARD_TOKEN`), which badges commits **✓ in production / 👁 preview / ⚠ unverified**.
+
 See `PLAN.md` for the phased build plan.