# promote

\[code-push commands prerequisites] needs to be met in order to execute this command

## Description

* Promote a CodePush release to a different deployment name and/or native application versions.

## Syntax

`ern code-push promote`

**Options**

`--sourceDescriptor <descriptor>`

* Specify the native application version from which to promote a release in the form of a *complete native application descriptor*.
* The release to be promoted will be the latest non disabled release of this native application version.
* **Default** The command will list all released native applications versions stored in the Cauldron and will prompt to select a target native application version from the list.

`--targetDescriptors <descriptors..>`

* Specify one or more target native application version to promote the release to, in the form of a *complete native application descriptor* list (separated by spaces).
* The target descriptor can be the same as the source descriptor if the promotion is just changing the deployment name (for example promoting a release from Staging to Production for the same native application version).

`--targetSemVerDescriptor <descriptor>`

* A native descriptor using a semantic version string for its version. The promotion will target all native application versions matching the semver.

If no `targetDescriptors` nor a `targetSemVerDescriptor` is specified, the command will list all released native application versions stored in the Cauldron and will display a prompt to select one or more target native application version(s) for the promotion.

`--sourceDeploymentName`

* The deployment name of the release to promote (Staging for example).
* **Default** The command will prompt to input the deployment name, or display a list of deployment names stored in the Cauldron, to choose from.

`--targetDeploymentName`

* The deployment name to promote the release to (Production for example).
* **Default** The command will prompt to input the deployment name, or display a list of deployment names stored in the Cauldron, to choose from.

`--targetBinaryVersion/-t <targetBinaryVersion>`

* Semver expression that specifies the binary app version this release is targeting
* If omitted, the release will target the exact version of the descriptor
* If versionModifier is specified in the codePush config , exact version of the descriptor is appended to versionModifier
* For using `targetBinaryVersion` option users must target only 1 descriptor
* For using `targetBinaryVersion` option users cannot use semVerDescriptor

`--mandatory/-m`

* Specify that the promoted release is mandatory (will be immediately downloaded and installed).
* **Default**  false

`--rollout/-r <percentage>`

* Specify the percentage of users who will have access to this release.
* **Default**  100

`--skipConfirmation/-s`

* Skip confirmation prompts
* **Default** false

`--force/-f`

* Bypass all compatibility checks and force OTA update through CodePush. **USE AT YOUR OWN RISK**
* **Default** false

`--label/-l`

* Promote the release matching this specific label.&#x20;
* **Default** The latest release matching sourceDescriptor/sourceDeploymentName pair will be promoted.

`--description/--des`

* Description of the changes made to the app with this release. If omitted, the description from the release being promoted will be used.
* **Default** Empty string

## Related commands

[code-push release](https://native.electrode.io/v0.28/cli-commands/code-push/release) | Issue a CodePush release \[code-push patch] | Patch a release

\[code-push patch]: ./patch.md
