Skip to content

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

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

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

Conversation

@gwdp
Copy link
Copy Markdown
Contributor

@gwdp gwdp commented May 12, 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 (passing embeddedUpdateId), uploads the bundle
  • Calls uploadEmbeddedUpdate with embeddedUpdateId, channel name, runtimeVersion, and platform — server resolves the asset from the UUID directly, no channel FK lookup needed
  • 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 — 19 tests pass
  • yarn tsc && yarn lint pass (4 GQL lint errors pre-existing; embedded update schema not yet merged to eas-cli)

@github-actions
Copy link
Copy Markdown

✅ Thank you for adding the changelog entry!

Copy link
Copy Markdown
Contributor Author

gwdp commented May 12, 2026

@linear
Copy link
Copy Markdown

linear Bot commented May 12, 2026

ENG-21033

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