-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: Automated Expo PR Builds #340
base: main
Are you sure you want to change the base?
Conversation
"developmentClient": true, | ||
"distribution": "internal", | ||
"channel": $expo_channel, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One thought I had was, if we remove the channel here will we be able to use the statically defined config instead of dynamically creating a new entry?
The reason we are adding this entry is so that there will be a unique build for this PR that does not affect other PR's. However since this one is built on the fly in order to test it the user will have to:
Register their device, and update the cert to and then rebuild.
- eas device:create
- eas credentials ---> review_pr-#
- re build
What this does
This PR adds dynamic expo builds for PR's
When a PR is made we first run expo update to publish an expo-go version of the app, we do this first because expo-go updates are quick fast and this allows us to continue with our iterative process.
We then do two things, expo-build AND another expo-update. We do both because we know that expo-update does an OTA for the expo-build app in this way we can continually test that the two together are still working. Again, we do this separately so that we do not slow down the dev process, considering that expo-build is much slower.
In order to build the review app we also make a temporary change to the eas.json config, here we create a new entry in the config that dynamically creates a new channel with our PR number and a build profile for that build number. The reason we do not use the statically defined profile is that our builds are also tied to to channels, that means when we run this command we would be updating any other review app out there.
Checklist
How to test
Add user steps to achieve desired functionality for this feature.