Hi
We’re in the process of migrating from “classic” publishing to using EAS Update.
What we used to do was to get our CI to publish our latest candidate code to the “staging” release-channel and then when we were happy with it, point our “default” release-channel (which was in fact production) at the exact same published code. We did it with the command
publish:set --release-channel default --publish-id xxxxxx
The great thing about this is that we knew we were publishing exactly the same code, and because we published a specific publish-id, if we then published new updates to staging, it wouldn’t affect production.
I’m trying to recreate the same thing again with EAS Update. This is where I’ve got to:
- When we merge into our “develop” branch, we execute
yarn eas update --branch develop --message "${GIT_COMMIT_MSG}"
- We promote this by creating a
release/yyyy
branch which Jenkins automatically builds and then execute the following two commands:
yarn eas update --branch "${GIT_BRANCH}" --message "${GIT_COMMIT_MSG}"
yarn eas channel:edit staging --branch "${GIT_BRANCH}"
i.e., we create a new branch matching the git release branch
- When we want to release to production we point the production channel at the branch above.
yarn eas channel:edit production --branch "${GIT_BRANCH}"
This should work, BUT, if we then create a new update in that branch (e.g. because we found a bug and we want to try out a fix in staging), the new update will be published to staging and production! Because the whole branch has been associated with both channels, not just the individual update.
Have I understood right? Any suggestions on how else to achieve what we want?
Thanks!!