Skip to main content

Promoting Updates

Copy a release from one deployment to another (e.g., Staging → Production):

npx turbopush promote <appSlug> <sourceDeploymentName> <destDeploymentName>
[--description <description>]
[--label <label>]
[--disabled <disabled>]
[--mandatory]
[--noDuplicateReleaseError]
[--rollout <rolloutPercentage>]
[--targetBinaryVersion <targetBinaryVersion>]

Why Promote?

  1. Faster — No need to reassemble release assets
  2. Safer — Exact same code you tested gets deployed

Recommended workflow: Release to Staging → Test → Promote to Production

Example

# Promote to production for all binary versions
npx turbopush promote myapp-ios Staging Production -t "*"

Parameters

ParameterRequiredDefaultDescription
appSlugYes-The app slug
sourceDeploymentNameYes-Source deployment (e.g., Staging)
destDeploymentNameYes-Destination deployment (e.g., Production)
--label, -lNolatestSpecific release to promote
--description, --desNoinheritedChange log
--disabled, -xNoinheritedPrevent downloads
--mandatory, -mNoinheritedForce update
--rollout, -rNo100% of users (not inherited, must be explicit)
--targetBinaryVersion, -tNoinheritedCompatible binary versions
--noDuplicateReleaseErrorNofalseWarn instead of error on duplicate

Optional parameters override values from the source release. If omitted, values are inherited.