simplify logic for pull request OTAs

This commit is contained in:
Hailey
2025-07-24 23:32:59 -07:00
parent c6b578fe91
commit 424ea74e1c
3 changed files with 25 additions and 61 deletions
@@ -171,8 +171,6 @@ jobs:
Your requested OTA deployment was successful! You may now apply it by pressing the link below.
[Apply OTA update](bluesky://intent/apply-ota?channel=pull-request-${{ github.event.issue.number }})
[Here is some music to listen to while you wait...](https://www.youtube.com/watch?v=VBlFHuCzPgY)
---
*Generated by [PR labeler](https://github.com/expo/expo/actions/workflows/pr-labeler.yml) 🤖*
+1 -2
View File
@@ -26,8 +26,7 @@ module.exports = function (_config) {
...(IS_DEV || IS_TESTFLIGHT ? [] : []),
]
const UPDATES_ENABLED =
IS_TESTFLIGHT !== undefined || IS_PRODUCTION !== undefined
const UPDATES_ENABLED = IS_TESTFLIGHT || IS_PRODUCTION
const USE_SENTRY = Boolean(process.env.SENTRY_AUTH_TOKEN)
+24 -57
View File
@@ -45,7 +45,6 @@ async function updateTestflight() {
const res = await checkForUpdateAsync()
if (res.isAvailable) {
await fetchUpdateAsync()
Alert.alert(
'Update Available',
'A new version of the app is available. Relaunch now?',
@@ -70,66 +69,35 @@ export function useApplyPullRequestOTAUpdate() {
const {currentlyRunning} = useUpdates()
const [pending, setPending] = React.useState(false)
const currentChannel = currentlyRunning?.channel
const isCurrentlyRunningPullRequestDeployment =
currentChannel?.startsWith('pull-request')
const tryApplyUpdate = async (channel: string) => {
setPending(true)
if (currentChannel === channel) {
const res = await checkForUpdateAsync()
if (res.isAvailable) {
logger.debug('Attempting to fetch update...')
await fetchUpdateAsync()
Alert.alert(
'Deployment Available',
`A new deployment of ${channel} is availalble. Relaunch now?`,
[
{
text: 'No',
style: 'cancel',
await setExtraParamsPullRequest(channel)
const res = await checkForUpdateAsync()
if (res.isAvailable) {
await fetchUpdateAsync()
Alert.alert(
'Deployment Available',
`A deployment of ${channel} is availalble. Applying this deployment may result in a bricked installation, in which case you will need to reinstall the app and may lose local data. Are you sure you want to proceed?`,
[
{
text: 'No',
style: 'cancel',
},
{
text: 'Relaunch',
style: 'default',
onPress: async () => {
await reloadAsync()
},
{
text: 'Relaunch',
style: 'default',
onPress: async () => {
await reloadAsync()
},
},
],
)
} else {
Alert.alert(
'No Deployment Available',
`No new deployments of ${channel} are currently available for your current native build.`,
)
}
},
],
)
} else {
setExtraParamsPullRequest(channel)
const res = await checkForUpdateAsync()
if (res.isAvailable) {
Alert.alert(
'Deployment Available',
`A deployment of ${channel} is availalble. Applying this deployment may result in a bricked installation, in which case you will need to reinstall the app and may lose local data. Are you sure you want to proceed?`,
[
{
text: 'No',
style: 'cancel',
},
{
text: 'Relaunch',
style: 'default',
onPress: async () => {
await reloadAsync()
},
},
],
)
} else {
Alert.alert(
'No Deployment Available',
`No new deployments of ${channel} are currently available for your current native build.`,
)
}
Alert.alert(
'No Deployment Available',
`No new deployments of ${channel} are currently available for your current native build.`,
)
}
setPending(false)
}
@@ -146,7 +114,6 @@ export function useApplyPullRequestOTAUpdate() {
tryApplyUpdate,
revertToEmbedded,
currentChannel,
isCurrentlyRunningPullRequestDeployment,
pending,
}
}