Skip to content
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

Open
wants to merge 68 commits into
base: main
Choose a base branch
from

Conversation

paribaker
Copy link
Contributor

@paribaker paribaker commented Aug 15, 2024

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

  • Todo 1
  • Todo 2
  • Todo 3

How to test

Add user steps to achieve desired functionality for this feature.

@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 16:31 Inactive
@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 16:33 Inactive
@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 16:42 Inactive
@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 16:50 Inactive
@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 17:33 Inactive
@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 18:12 Inactive
@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 18:27 Inactive
@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 18:43 Inactive
@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 21:34 Inactive
@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 22:26 Inactive
@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 22:43 Inactive
@paribaker paribaker temporarily deployed to tn-spa-bootstrapper-pr-340 August 15, 2024 23:09 Inactive
"developmentClient": true,
"distribution": "internal",
"channel": $expo_channel,
Copy link
Contributor Author

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.

  1. eas device:create
  2. eas credentials ---> review_pr-#
  3. re build

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants