Rollouts
Edit this page
Learn how to incrementally deploy updates to your users by using a rollout mechanism.
A rollout allows you to roll out a change to a portion of your users to catch bugs or other issues before releasing that change to all your users.
EAS provides per-update and branch-based rollout mechanisms depending on your use case.
Per-update rollouts
This rollout mechanism allows you to specify a percentage of users that should receive a new update when you publish it, and then increase that percentage gradually afterwards.
Starting a rollout
To start an update-based rollout, add the --rollout-percentage
flag to your normal eas update
command:
-
eas update --rollout-percentage=10
In this example, when published, the update will only be available to 10% of your end users.
Progressing a rollout
To edit the percentage of an update-based rollout:
-
eas update:edit
You will be guided through the process of selecting the update to edit and asked for the new percentage.
Ending a rollout
When ending an update-based rollout, you have two options:
- Roll out fully: To accomplish this end state, progress the rollout as detailed above and set the percentage to 100.
- Revert: To accomplish this end state, republish the previous update by using the
eas update:republish
command.
Working with rollouts
- Only one update can be rolled out on a branch at one time.
- When a rollout is in progress, it must be ended using one of the options above before a new update (with the same runtime version) can be published. This prevents accidentally clobbering the rollout.
- To see the state of the rollout, use the
eas update:list
oreas update:view
commands.
Branch-based rollouts
This rollout mechanism allows you to incrementally roll out a set of updates on a new branch to a percentage of end users and leave the remaining percentage of users on the current branch.
Starting a rollout
To start a branch-based rollout, run the following EAS CLI command:
-
eas channel:rollout
In the terminal, an interactive guide will assist you in selecting a channel, choosing a branch for the rollout, and setting the percentage of users for the rollout. To increase or decrease the rollout amount, run the command again and choose the Edit
option to adjust the rollout percentage.
Ending a rollout
Two methods are available to end a rollout when you choose the End
option in the interactive guide:
- Republish and revert: Use this option when you are confident with the state of the new branch. This will republish the latest update from the new branch to the old branch, and all users will be pointed to the old branch.
- Revert: Choose to disregard the updates on the new branch and return users to the old branch.
Working with rollouts
- Only one branch can be rolled out on a channel at a single time.
- To see the state of the rollout, use the
eas channel:rollout
command. - When a rollout is in progress, you can publish updates to both rolled out and current branches by running
eas update --branch [branch]
, for example. eas update --channel [channel]
cannot be used when a rollout is in progress since it cannot know which branch in the rollout to associate the update with.