You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(ci): split ci.yml into ci.yml + deploy.yml
Separates concerns so badges reflect reality:
- ci.yml (name: CI) — runs on PR + push to main, plus repository_dispatch
for contract updates. One job (check): type check, tests + coverage,
build, contract schema validation.
- deploy.yml (name: CD) — triggered via workflow_run after CI succeeds on
main. Builds, applies D1 migrations, deploys via wrangler-action, runs
the health check + smoke test + post-deploy contract round-trip.
README now shows two badges (CI + CD); previously one ambiguous "CI / Deploy"
workflow had a single badge that didn't tell the reader whether the issue
was a failed test or a failed deploy.
Also addresses post-merge review findings on #7:
- api-reference.md List Configs example: drop user_id, custom_script,
dotfiles_repo, forked_from, created_at — getUserConfigs does not SELECT
them (see src/lib/server/db/configs.ts:80).
- api-reference.md Get Current User: add avatar_url back — getCurrentUser
selects it (src/lib/server/auth.ts:58,70).
- api-reference.md install endpoint auth note: replace the vague
"browser-friendly auth flow" mention with the actual behavior
(404 on the page route for non-owners; no interactive prompt).
HARNESS.md: point the post-deploy rows at deploy.yml; clarify the
push-to-main → workflow_run → deploy chain in the "not in the harness"
section.
required-checks.txt is unchanged: `check` and `validate-commits` still
exist as job names in ci.yml and conventional-commits.yml.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Push to `main` runs CI (type check + tests + build) and, on success, auto-deploys to [openboot.dev](https://openboot.dev). PRs run CI only. The deploy job lives in `.github/workflows/ci.yml`; see[docs/HARNESS.md](./docs/HARNESS.md) for the full pipeline.
45
+
Push to `main` runs CI (`ci.yml`: type check + tests + build + contract validation). On success, CD (`deploy.yml`) fires via `workflow_run` and ships to [openboot.dev](https://openboot.dev) (D1 migrations + wrangler deploy + health check + smoke test). PRs run CI only. See[docs/HARNESS.md](./docs/HARNESS.md) for the full pipeline.
`packages` and `snapshot` are returned as parsed JSON (not strings).
69
+
`packages` and `snapshot` are returned as parsed JSON (not strings). For the full row (including `custom_script`, `dotfiles_repo`, etc.), use `GET /api/configs/:slug`.
75
70
76
71
### Get Config (Dashboard)
77
72
@@ -289,7 +284,7 @@ Get the shell install script for a config. The CLI's `install.sh` curls this URL
289
284
GET /:username/:slug/install
290
285
```
291
286
292
-
**Auth required:** Only for `private` configs. Send a Bearer token belonging to the owner; otherwise the endpoint returns `403 Config is private` as plain text. (The browser-friendly auth flow for private configs is served via the curl-detection path at `/:username/:slug`, not here.)
287
+
**Auth required:** Only for `private` configs. Send a Bearer token belonging to the owner; otherwise the endpoint returns `403 Config is private` as plain text. (The page route `/:username/:slug` returns 404 for non-owners of a private config — there is no interactive auth prompt.)
0 commit comments