Skip to content

EAS Build Hooks#5666

Open
alwx wants to merge 8 commits intomainfrom
alwx/experiment/eas-build
Open

EAS Build Hooks#5666
alwx wants to merge 8 commits intomainfrom
alwx/experiment/eas-build

Conversation

@alwx
Copy link
Contributor

@alwx alwx commented Feb 13, 2026

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Introduces build hooks for EAS and fixes #5428

📝 Checklist

  • I added tests to verify changes
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • All tests passing
  • No breaking changes

@github-actions
Copy link
Contributor

github-actions bot commented Feb 13, 2026

Semver Impact of This PR

None (no version bump detected)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


  • EAS Build Hooks by alwx in #5666
  • chore(ci): Use runner group 10 by itaybre in #5717
  • chore(deps): bump qs to ^6.14.2 by antonis in #5707
  • chore(deps): bump lodash to ^4.17.23 by antonis in #5702
  • chore(deps): bump getsentry/craft from 2.21.4 to 2.21.7 by dependabot in #5694
  • chore(deps): bump getsentry/craft/.github/workflows/changelog-preview.yml from 2.21.4 to 2.21.7 by dependabot in #5695
  • chore(deps): update CLI to v3.2.2 by github-actions in #5692
  • chore(deps): bump github/codeql-action from 4.32.3 to 4.32.4 by dependabot in #5693
  • chore(deps): update Maestro to v2.2.0 by github-actions in #5691
  • chore(deps): update Cocoa SDK to v9.5.0 by github-actions in #5685
  • chore(deps): update Android SDK Stubs to v8.33.0 by github-actions in #5697
  • chore(deps): update Android SDK to v8.33.0 by github-actions in #5684
  • chore(deps): update Sentry Android Gradle Plugin to v6.1.0 by github-actions in #5687
  • Ref(CI): Add android sdk version check by lucas-zimerman in #5686

🤖 This preview updates automatically when you update the PR.

@alwx alwx self-assigned this Feb 16, 2026
@alwx alwx changed the title WIP: EAS Build Hooks EAS Build Hooks Feb 23, 2026
@alwx alwx marked this pull request as ready for review February 23, 2026 12:08
release: env.EAS_BUILD_APP_VERSION,
tags: { ...createEASBuildTags(env), ...customTags },
contexts: { eas_build: createEASBuildContext(env), runtime: { name: 'node', version: process.version } },
sdk: { name: 'sentry.javascript.react-native.eas-build-hooks', version: '1.0.0' },
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hardcoded SDK version diverges from actual package version

Medium Severity

The sdk.version in createBaseEvent is hardcoded as '1.0.0' while the actual package version is '8.1.0'. The SDK_VERSION constant is already available in ../version and used elsewhere (e.g., sdkinfo.ts). This means every EAS build hook event sent to Sentry will report an incorrect SDK version, and it will never auto-update with future releases.

Fix in Cursor Fix in Web

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feedback looks valid 👍

@alwx alwx added the ready-to-merge Triggers the full CI test suite label Feb 23, 2026
@alwx alwx enabled auto-merge (squash) February 23, 2026 12:39
@github-actions
Copy link
Contributor

github-actions bot commented Feb 23, 2026

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 411.16 ms 444.28 ms 33.12 ms
Size 43.75 MiB 48.46 MiB 4.71 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
eeebd10+dirty 493.12 ms 545.91 ms 52.79 ms
664c66f+dirty 434.82 ms 471.38 ms 36.56 ms
d73150f+dirty 411.21 ms 465.86 ms 54.65 ms
4a17c8f+dirty 406.62 ms 400.58 ms -6.04 ms
2adbd1e+dirty 433.98 ms 427.96 ms -6.02 ms
98f632c 424.25 ms 435.48 ms 11.23 ms
9ced351+dirty 405.40 ms 419.39 ms 13.98 ms
64cd15c 439.02 ms 427.63 ms -11.39 ms
8490686+dirty 365.59 ms 400.24 ms 34.65 ms
1853710 555.47 ms 556.59 ms 1.12 ms

App size

Revision Plain With Sentry Diff
eeebd10+dirty 43.75 MiB 48.41 MiB 4.66 MiB
664c66f+dirty 43.75 MiB 48.55 MiB 4.80 MiB
d73150f+dirty 43.75 MiB 48.55 MiB 4.80 MiB
4a17c8f+dirty 43.75 MiB 47.99 MiB 4.24 MiB
2adbd1e+dirty 17.75 MiB 19.70 MiB 1.96 MiB
98f632c 17.75 MiB 20.15 MiB 2.41 MiB
9ced351+dirty 43.75 MiB 48.41 MiB 4.66 MiB
64cd15c 17.75 MiB 20.15 MiB 2.41 MiB
8490686+dirty 17.75 MiB 19.70 MiB 1.96 MiB
1853710 17.75 MiB 19.68 MiB 1.94 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Feb 23, 2026

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1212.67 ms 1217.40 ms 4.74 ms
Size 3.38 MiB 4.78 MiB 1.40 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
90e7cb3+dirty 1206.61 ms 1209.46 ms 2.84 ms
60cd796+dirty 1204.87 ms 1202.71 ms -2.17 ms
8e653ac+dirty 1218.63 ms 1223.88 ms 5.24 ms
f70acbf+dirty 1235.71 ms 1243.14 ms 7.43 ms
ad27f6e+dirty 1223.41 ms 1246.29 ms 22.88 ms
6c11c6a+dirty 1202.43 ms 1212.70 ms 10.27 ms
664c66f+dirty 1215.37 ms 1221.30 ms 5.92 ms
d916aa3+dirty 1221.02 ms 1228.98 ms 7.96 ms
36841a6+dirty 1221.32 ms 1222.17 ms 0.85 ms
bca62c0+dirty 1183.61 ms 1183.76 ms 0.14 ms

App size

Revision Plain With Sentry Diff
90e7cb3+dirty 3.41 MiB 4.58 MiB 1.17 MiB
60cd796+dirty 3.44 MiB 4.67 MiB 1.23 MiB
8e653ac+dirty 2.63 MiB 4.01 MiB 1.38 MiB
f70acbf+dirty 2.63 MiB 3.98 MiB 1.34 MiB
ad27f6e+dirty 3.41 MiB 4.67 MiB 1.25 MiB
6c11c6a+dirty 3.44 MiB 4.60 MiB 1.16 MiB
664c66f+dirty 3.38 MiB 4.60 MiB 1.22 MiB
d916aa3+dirty 2.63 MiB 3.81 MiB 1.18 MiB
36841a6+dirty 3.41 MiB 4.67 MiB 1.25 MiB
bca62c0+dirty 3.38 MiB 4.60 MiB 1.22 MiB

Previous results on branch: alwx/experiment/eas-build

Startup times

Revision Plain With Sentry Diff
e51ef4e+dirty 1222.04 ms 1226.24 ms 4.20 ms

App size

Revision Plain With Sentry Diff
e51ef4e+dirty 3.38 MiB 4.78 MiB 1.40 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Feb 23, 2026

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 361.40 ms 404.30 ms 42.90 ms
Size 43.94 MiB 49.33 MiB 5.39 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
664c66f+dirty 376.23 ms 389.51 ms 13.28 ms
d73150f+dirty 424.60 ms 454.35 ms 29.75 ms
4a17c8f+dirty 368.54 ms 381.43 ms 12.89 ms
b3b5b0d+dirty 361.42 ms 403.90 ms 42.48 ms
9ced351+dirty 361.74 ms 411.45 ms 49.70 ms
7886639+dirty 530.30 ms 571.34 ms 41.04 ms
c08359e+dirty 406.04 ms 428.87 ms 22.83 ms
3099014+dirty 344.58 ms 404.21 ms 59.63 ms
d751a5d+dirty 341.61 ms 403.06 ms 61.45 ms
682f0f5+dirty 402.33 ms 440.61 ms 38.28 ms

App size

Revision Plain With Sentry Diff
664c66f+dirty 43.94 MiB 49.38 MiB 5.44 MiB
d73150f+dirty 43.94 MiB 49.38 MiB 5.44 MiB
4a17c8f+dirty 43.94 MiB 48.82 MiB 4.88 MiB
b3b5b0d+dirty 7.15 MiB 8.41 MiB 1.26 MiB
9ced351+dirty 43.94 MiB 49.27 MiB 5.33 MiB
7886639+dirty 43.94 MiB 49.28 MiB 5.34 MiB
c08359e+dirty 7.15 MiB 8.42 MiB 1.27 MiB
3099014+dirty 7.15 MiB 8.43 MiB 1.27 MiB
d751a5d+dirty 7.15 MiB 8.41 MiB 1.26 MiB
682f0f5+dirty 43.94 MiB 48.91 MiB 4.97 MiB

Previous results on branch: alwx/experiment/eas-build

Startup times

Revision Plain With Sentry Diff
e51ef4e+dirty 359.31 ms 385.06 ms 25.76 ms

App size

Revision Plain With Sentry Diff
e51ef4e+dirty 43.94 MiB 49.33 MiB 5.39 MiB

@github-actions
Copy link
Contributor

github-actions bot commented Feb 23, 2026

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1227.57 ms 1225.37 ms -2.20 ms
Size 3.38 MiB 4.78 MiB 1.40 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
90e7cb3+dirty 1212.61 ms 1213.80 ms 1.19 ms
60cd796+dirty 1206.08 ms 1213.36 ms 7.28 ms
8e653ac+dirty 1215.46 ms 1220.20 ms 4.75 ms
f70acbf+dirty 1239.00 ms 1242.53 ms 3.53 ms
ad27f6e+dirty 1214.28 ms 1203.67 ms -10.62 ms
6c11c6a+dirty 1217.55 ms 1221.49 ms 3.94 ms
664c66f+dirty 1195.94 ms 1194.80 ms -1.14 ms
d916aa3+dirty 1211.02 ms 1221.33 ms 10.31 ms
36841a6+dirty 1215.87 ms 1217.27 ms 1.40 ms
bca62c0+dirty 1219.65 ms 1226.14 ms 6.50 ms

App size

Revision Plain With Sentry Diff
90e7cb3+dirty 3.41 MiB 4.58 MiB 1.17 MiB
60cd796+dirty 3.44 MiB 4.67 MiB 1.23 MiB
8e653ac+dirty 3.19 MiB 4.58 MiB 1.39 MiB
f70acbf+dirty 3.19 MiB 4.54 MiB 1.36 MiB
ad27f6e+dirty 3.41 MiB 4.67 MiB 1.25 MiB
6c11c6a+dirty 3.44 MiB 4.60 MiB 1.16 MiB
664c66f+dirty 3.38 MiB 4.60 MiB 1.22 MiB
d916aa3+dirty 3.19 MiB 4.38 MiB 1.19 MiB
36841a6+dirty 3.41 MiB 4.67 MiB 1.25 MiB
bca62c0+dirty 3.38 MiB 4.60 MiB 1.22 MiB

Previous results on branch: alwx/experiment/eas-build

Startup times

Revision Plain With Sentry Diff
e51ef4e+dirty 1219.77 ms 1224.57 ms 4.80 ms

App size

Revision Plain With Sentry Diff
e51ef4e+dirty 3.38 MiB 4.78 MiB 1.40 MiB

@lucas-zimerman
Copy link
Collaborator

Fails
🚫 Please consider adding a changelog entry for the next release.

Instructions and example for changelog

Please add an entry to CHANGELOG.md to the "Unreleased" section. Make sure the entry includes this PR's number.

Example:

## Unreleased

### Features

- EAS Build Hooks ([#5666](https://github.com/getsentry/sentry-react-native/pull/5666))

If none of the above apply, you can opt out of this check by adding #skip-changelog to the PR description or adding a skip-changelog label.

Generated by 🚫 dangerJS against 9b0d8e7

Yeah, adding a feature changelog would be nice.

*
* Add it to your package.json scripts:
*
* "eas-build-on-complete": "sentry-eas-build-on-complete"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice to have docs for these features and add a small mention on how to use them on changelog.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

return Array.from(bytes)
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Custom UUID generation duplicates existing uuid4 utility

Low Severity

The generateEventId function reimplements UUID v4 generation in ~19 lines, but uuid4 from @sentry/core already provides the same functionality and is used elsewhere in the codebase (e.g., in profiling/integration.ts and tracing/utils.ts). Since this module already imports makeDsn and dsnToString from @sentry/core, there's no reason to avoid also importing uuid4. This duplication adds unnecessary maintenance burden.

Fix in Cursor Fix in Web

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

Labels

ready-to-merge Triggers the full CI test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Expo] EAS build hooks

3 participants