Skip to content

Conversation

@krystofwoldrich
Copy link

@krystofwoldrich krystofwoldrich commented Aug 28, 2025

Why

EAS Currently supports native deployments only for EAS Builds.

How

This PR relies on Expo CLI changes which deploys API routes for the update during export, same as export:embed deploys them for native builds.

eas update sets __EXPO_GENERATED_CONFIG_PATH which expo export writes the generated config into. The deployed URL in this case. This TMP file is created to avoid breaking computed fingerprint. This ensures the new update with will be compatible with the native build or prev update.

This PR also passes it's binary using envs to Expo CLI to ensure the executed deploy command uses the same EAS CLI as the update.

Test Plan

Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction.

# .env
EXPO_UNSTABLE_DEPLOY_SERVER=true
eas update

Example output

➜ easd update --channel production --message "test27"
[expo-cli] env: load .env
[expo-cli] env: export EXPO_UNSTABLE_DEPLOY_SERVER
[expo-cli] React Compiler enabled
[expo-cli] Starting Metro Bundler
[expo-cli] λ Bundled 750ms node_modules/expo-router/build/static/getServerManifest.js (999 modules)
[expo-cli] λ Bundled 5ms app/hello+api.ts (1 module)
[expo-cli] › Files (1):
[expo-cli] _expo/routes.json (247 B)
[expo-cli]
[expo-cli] › API routes (1):
[expo-cli] /hello (3.65 kB) (source map (5.46 kB))
[expo-cli]
[expo-cli] Deploying server to link with client
[expo-cli] EAS Hosting is still in preview and subject to changes.
[expo-cli] > Project export: server
[expo-cli] - Preparing project
[expo-cli] - Creating deployment
[expo-cli] ✔ Created deployment
[expo-cli] Server dashboard: https://expo.dev/projects/xxxxxxxx
[expo-cli] Server deployed to: https://expo-vsupdates--xxxxxxxx.expo.app
[expo-cli] iOS node_modules/expo-router/entry.js ░░░░░░░░░░░░░░░░  0.0% (0/1)
[expo-cli] Android node_modules/expo-router/entry.js ░░░░░░░░░░░░░░░░  0.0% (0/1)
[expo-cli] iOS node_modules/expo-router/entry.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ 99.9% (1281/1281)
[expo-cli] Android node_modules/expo-router/entry.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ 99.9% (1294/1294)
[expo-cli] Android Bundled 5038ms node_modules/expo-router/entry.js (1294 modules)
[expo-cli] iOS node_modules/expo-router/entry.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ 99.9% (1281/1281)
[expo-cli] iOS Bundled 7793ms node_modules/expo-router/entry.js (1281 modules)
[expo-cli] Creating asset map
[expo-cli]
[expo-cli] › Assets (36):
[expo-cli] node_modules/expo-router/assets/unmatched.png (4.75 kB)
[expo-cli]
[expo-cli] › android bundles (2):
[expo-cli] _expo/static/js/android/entry-2f1724c2101da188ea611fe10295ff10.hbc (2.21 MB)
[expo-cli] _expo/static/js/android/entry-2f1724c2101da188ea611fe10295ff10.hbc.map (7.36 MB)
[expo-cli]
[expo-cli] › ios bundles (2):
[expo-cli] _expo/static/js/ios/entry-c198586c91d2746e4392264528b56a8c.hbc (2.15 MB)
[expo-cli] _expo/static/js/ios/entry-c198586c91d2746e4392264528b56a8c.hbc.map (7.32 MB)
[expo-cli]
[expo-cli] › Files (4):
[expo-cli] _expo/routes.json (247 B)
[expo-cli] assetmap.json (12.4 kB)
[expo-cli] metadata.json (4.08 kB)
[expo-cli] server-deployment.json (59 B)
[expo-cli]
[expo-cli] › API routes (1):
[expo-cli] /hello (3.65 kB) (source map (5.46 kB))
[expo-cli]
[expo-cli] Exported: dist
✔ Exported bundle(s)
ℹ Set origin to https://expo-vsupdates--xxxxxxxx.expo.app
✔ Uploaded assetmap.json
✔ Uploaded 2 app bundles
✔ Uploading assets skipped - no new assets found
ℹ 31 iOS assets, 32 Android assets (maximum: 2000 total per update). Learn more about asset limits
✔ Computed project fingerprints
✔ Published!

Branch             production
Runtime version    1.0.0
Platform           android, ios
Update group ID    xxxxxxxx
Android update ID  xxxxxxxx
iOS update ID      v
Message            test27
Commit             xxxxxxxx
EAS Dashboard      https://expo.dev/xxxxxxxx

@github-actions
Copy link

github-actions bot commented Aug 28, 2025

Size Change: +924 B (0%)

Total Size: 53.6 MB

Filename Size Change
./packages/eas-cli/dist/eas-linux-x64.tar.gz 53.6 MB +924 B (0%)

compressed-size-action

@codecov
Copy link

codecov bot commented Aug 28, 2025

Codecov Report

❌ Patch coverage is 90.90909% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 51.91%. Comparing base (f643631) to head (d18fdd8).

Files with missing lines Patch % Lines
packages/eas-cli/src/project/publish.ts 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3155      +/-   ##
==========================================
+ Coverage   51.89%   51.91%   +0.02%     
==========================================
  Files         616      616              
  Lines       24849    24859      +10     
  Branches     5216     5216              
==========================================
+ Hits        12894    12903       +9     
- Misses      10883    10884       +1     
  Partials     1072     1072              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@krystofwoldrich krystofwoldrich force-pushed the @krystofwoldrich/update-command-reload-config-after-assets-upload branch from a026293 to d18fdd8 Compare September 3, 2025 14:12
@github-actions
Copy link

github-actions bot commented Sep 4, 2025

✅ Thank you for adding the changelog entry!

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants