build: limit gradle to two workers on eas so android release builds fit in memory
CI / checks (push) Successful in 2m21s

This commit is contained in:
ponas committed 2026-10-30 01:56:43 +01:00
1 parent 107a1a4b77
commit f972f3f28d
2 files changed
+17 -7

No files matched your search

+13 -5
View File
@@ -2,11 +2,19 @@
Remove items from this list once they are done.
- check that release builds upload their source maps to Bugsink: on the next EAS build, the log
should show the Sentry plugin's `sentry-cli` sourcemaps upload, and an error thrown in that build
should show symbolicated frames in Bugsink's `cnapp` project. The setup is in place:
`SENTRY_AUTH_TOKEN` is a sensitive EAS variable for preview and production and authenticates
against Bugsink 2.6.1, and the plugin config in `app.json` matches the project
- check that Android release builds now fit on EAS's default worker (4 vCPUs, 15.6 GB): two builds
ran out of memory there, one stalling in the C++ step until EAS's 45-minute limit and the next
failing with "Gradle build daemon disappeared unexpectedly". Reproduced locally under the same
limits (`taskset -c 0-3` and a 15 GB, no-swap systemd scope): the build succeeds in 20 minutes
but peaks at 13.3 GB of anonymous memory while Skia, Reanimated/Worklets, Screens and Sentry
compile their C++ for four ABIs in parallel. Both build profiles in `eas.json` now set
`GRADLE_OPTS: "-Dorg.gradle.workers.max=2"` (Gradle uses 2 worker leases instead of one per CPU).
If that still fails or nears 45 minutes, try `"resourceClass": "large"` for Android (paid plan);
meanwhile `eas build -p android --profile production --local` works, with the .aab submitted
through `eas submit -p android --profile beta --path <aab>`
- check that release builds' source maps make Bugsink's stack traces readable: the upload works
(build 31's log shows `Uploaded files to Sentry` once `SENTRY_URL` was set in `eas.json`), so
throw an error in a release build and check for symbolicated frames in Bugsink's `cnapp` project
- consider turning on R8 for Android release builds (SDK 58 default, disabled via
`android.enableMinifyInReleaseBuilds: false` in the `expo-build-properties` plugin config in
`app.json`): smaller APK, but native Android stack traces get obfuscated unless the R8 mapping