| 66 | 66 | | } from "./deploy/image.mjs"; |
| 67 | 67 | | import { decide, git, planJson, pool, table } from "./deploy/plan.mjs"; |
| 68 | 68 | | import { reportDeployment } from "./deploy/report.mjs"; |
| 69 | | − | import { ROOT, byStage, codeStages, findWranglerConfigs, npmCiArgs, npmWorkspace, pick, problems, resolvedStack, waves } from "./deploy/stack.mjs"; |
| 69 | + | import { ROOT, byStage, codeStages, containersRollout, findWranglerConfigs, npmCiArgs, npmWorkspace, pick, problems, resolvedStack, waves } from "./deploy/stack.mjs"; |
| 70 | 70 | | import { withDeployWindow } from "./deploy/status-window.mjs"; |
| 71 | 71 | | |
| 72 | 72 | | const USAGE = "usage: node scripts/deploy.mjs plan|deploy|build|migrate|manifest|doctor|install|build-base|image [--all] [--only a,b] [--skip a,b] [--force] [--rollback] [--concurrency N] [--stage S] [--json]"; |
| ⋯ |
| 361 | 361 | | // Wrangler is given the image by reference, so it builds nothing. |
| 362 | 362 | | const image = await runnerImage(unit, { dryRun, docker, rebuildImage, rebuildBase }, out); |
| 363 | 363 | | args.push("--config", writeDeployConfig(unit, image.ref)); |
| 364 | | − | // Nothing the image is built from changed: the running sandboxes |
| 365 | | − | // keep going, and new ones start from the same image. |
| 366 | | − | if (!rebuildImage && !rebuildBase && !decision.image) args.push("--containers-rollout", "none"); |
| 364 | + | args.push("--containers-rollout", containersRollout(unit, decision, { rebuildImage, rebuildBase })); |
| 367 | 365 | | result.note = image.note; |
| 368 | 366 | | } |
| 369 | 367 | | // Tried again after a wait when Cloudflare, not what is deployed, is |