Skip to content
Outer
Esc
↑↓navigate↵open⌘Jpreview
On this page

Follow the deploy pipeline

Move commits through queue, build, gate, migrations, and celld deploy.

Move through each pipeline step

  1. Queue behind the host’s single build semaphore (sized at half the CPUs); there is no per-owner or per-plan priority.
  2. Check out the commit into the app’s work directory with checkout --force clean -ffdx -e node_modules.
  3. Run bun install (with --frozen-lockfile when a lockfile is present), skipped on matching package.json/bun.lock hashes; each step times out after 120 s.
  4. Run bun run build; wrangler validation rejects unknown config keys by name (full list: Accepted config keys).
  5. Pass the moderation gate; nothing uploads before it passes.
  6. Apply D1 migrations scoped by key: before upload when a live version exists, otherwise upload, wake, then migrate.
  7. Deploy with celld, then poll fleet health; a failed step or health check keeps the previous version serving.
  8. Expect wiped worktrees: sleep, failed builds, and deletes remove everything except node_modules.

Watch a deploy to its terminal state

  1. Watch commit move from queued through terminal states.
  2. Set OUTER_TOOL_WAIT_S (default 50 s) as the status wait; past it expect building and poll with deploy_status wait: true.
  3. Read outcomes as success, failed (step plus error plus ≤8 KiB tail), or blocked (gate findings).

For the person-side walkthrough, see How deploys work.

Was this page helpful?