[eas-cli] Remove client side project setup on expo go command#3657
Draft
[eas-cli] Remove client side project setup on expo go command#3657
Conversation
The `go` command previously created a full local project in /tmp (app.json, eas.json, package.json, npm install, git init) to satisfy credentials setup and workflow upload. This was unnecessary because: - Credential setup (SetUpBuildCredentials, SetUpAscApiKey, SetUpPushKey) operates entirely through GraphQL/Apple APIs and never reads from disk - CredentialsContext only needs an in-memory ExpoConfig and projectId - The workflow can generate its own project independently Now the command: - Constructs ExpoConfig in-memory instead of writing/reading app.json - Passes a no-op VcsClient since credential actions don't use it - No longer runs npm install or git init - Creates minimal temp files only for the workflow upload tarball - No longer changes process.cwd() or preserves/cleans up project dirs
SetUpBuildCredentials can trigger interactive prompts (e.g. certificate revocation selection when Apple's cert limit is hit). Wrapping it in withSuppressedOutputAsync hid these prompts, causing an invisible prompt that led to an infinite retry loop.
Universe's V2 mutation now synthesizes the project files server-side from per-SDK targets, so the CLI no longer needs to write project files to disk, tarball them, or upload them to GCS. go.ts shrinks to: build the in-memory ExpoConfig for credentials setup, run setupCredentialsAsync (unchanged — Apple auth stays interactive), dispatch V2 with appId + ascAppId. Removed: tar, uuid, fs-extra, path, getTmpDirectory, file synthesis, GCS upload helpers, EXPO_GO_APP_VERSION, EXPO_GO_BUILD_NUMBER (the server now owns those per-SDK). Kept: setupCredentialsAsync (Apple auth + ASC API key + push key are all interactive), ensureEasProjectAsync, monitorWorkflowJobsAsync. WorkflowRunMutation: createExpoGoRepackWorkflowRunV2Async client. graphql/template-strings is eslint-disabled until staging codegen picks up the new ExpoGoRepackInput type. Net: ~120 LOC removed, ~30 added in go.ts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Send full semver matching EXPO_GO_SDK_VERSION so the API targets the intended SDK without relying on server defaults. Remove redundant comments around the Expo Go workflow path.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #3657 +/- ##
==========================================
+ Coverage 55.49% 56.41% +0.92%
==========================================
Files 857 881 +24
Lines 36832 38024 +1192
Branches 7684 7912 +228
==========================================
+ Hits 20435 21446 +1011
- Misses 14965 16480 +1515
+ Partials 1432 98 -1334 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Remove buildExpoConfig in favor of a short stub inside setupCredentialsAsync (slug, bundle id, project id) so we do not duplicate server app.json shape. Document V2 workflow dispatch and sdkVersion behavior under PR #3657.
Replace special chars with hyphens (not empty string) to match server's defaultBundleId. Fix workflow job name lookups: 'Re-sign Expo Go' and 'Upload to TestFlight' to match the YAML.
…t retry on stale hash
|
✅ Thank you for adding the changelog entry! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why:
Remove local project setup and npm install from
eas go, enable multiple Expo Go SDK versions server-side, and reduce surface area in the CLI.How:
expoGoRepackPreflightto get server-synthesized project files per SDK versioncreateExpoGoRepackWorkflowRunwith bucket keys + optionalsdkVersion--sdk-versionflag to select the Expo Go SDK version (defaults to latest)Test Plan:
yarn typecheckandyarn lintpassEXPO_LOCAL=1 yarn eas goBase: #3514
x-ref: https://github.com/expo/universe/pull/27053 (blocked by)