Skip to content

[eas-cli] Add eas update:upload-embedded command#3699

Closed
gwdp wants to merge 2 commits into
mainfrom
gwdp/embedded-update-upload-cmd
Closed

[eas-cli] Add eas update:upload-embedded command#3699
gwdp wants to merge 2 commits into
mainfrom
gwdp/embedded-update-upload-cmd

Conversation

@gwdp
Copy link
Copy Markdown
Contributor

@gwdp gwdp commented May 8, 2026

Why

EAS Update bundle diffing can't generate patches against the JS bundle embedded in a native build, so the first OTA after install always downloads the full bundle. This command registers the embedded bundle with EAS Update so the diff worker can use it as a patch base.

Ref ENG-21033

How

  • New eas update:upload-embedded command with --platform, --bundle, --manifest, --channel, and optional --build-id / --json flags
  • Reads app.manifest to extract the embedded update UUID and validates it
  • Resolves runtimeVersion via the same helper eas update uses
  • Gets a presigned URL via getSignedEmbeddedUpdateAssetUploadSpecifications, uploads the bundle
  • Calls uploadEmbeddedUpdate with the storage key + manifest fields
  • Retries on EMBEDDED_UPDATE_ASSET_NOT_READY (GCS finalization race) with exponential backoff; exits immediately on EMBEDDED_UPDATE_CONFLICT

Test Plan

  • yarn jest src/commands/update/__tests__/upload-embedded.test.ts src/graphql/mutations/__tests__/EmbeddedUpdateMutation-test.ts — 31 tests pass
  • yarn tsc && yarn lint pass

@linear
Copy link
Copy Markdown

linear Bot commented May 8, 2026

ENG-21033

@gwdp gwdp force-pushed the gwdp/embedded-update-upload-cmd branch from 3c8e644 to 7a40d10 Compare May 8, 2026 16:36
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 8, 2026

✅ Thank you for adding the changelog entry!

@gwdp
Copy link
Copy Markdown
Contributor Author

gwdp commented May 12, 2026

Superseded by #3720 which has the corrected implementation (removed channelId lookup and launchAssetStorageKey, stacked with view-embedded and list-embedded).

@gwdp gwdp closed this May 12, 2026
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.

1 participant