@@ -24,7 +24,7 @@ modal_release:
2424
2525Allowed values:
2626
27- - ` new_app_target`: `frontier`, `current`, or `none`
27+ - ` new_app_target`: `frontier`, `current`, `both`, or `none`
2828- `promote_existing_frontier` : ` true` or `false`
2929- `cleanup_target` : ` none` , `retired`, `frontier`, or `current`
3030
@@ -50,6 +50,20 @@ apps in the retired history are stopped after the manifest is updated. Use
5050`cleanup_target : none` only when the user explicitly asks to preserve retired
5151worker apps after release.
5252
53+ Use this release shape when the newly built worker must become both `current`
54+ and `frontier` in a single release :
55+
56+ ` ` ` yaml
57+ modal_release:
58+ new_app_target: both
59+ promote_existing_frontier: false
60+ cleanup_target: retired
61+ ` ` `
62+
63+ This deploys one new worker app, writes the same app reference into both
64+ ` current` and `frontier`, and moves the previous active workers into the
65+ manifest's `retired` history.
66+
5367Do not use PR labels, branch names, model-specific tags, or title prefixes to
5468control Modal release behavior. The PR body YAML block is the source of truth.
5569The PR-body YAML block is the only automatic signal that a deployment should
0 commit comments