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. 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 - check that Android release builds now fit on EAS's default worker (4 vCPUs, 15.6 GB): two builds
should show the Sentry plugin's `sentry-cli` sourcemaps upload, and an error thrown in that build ran out of memory there, one stalling in the C++ step until EAS's 45-minute limit and the next
should show symbolicated frames in Bugsink's `cnapp` project. The setup is in place: failing with "Gradle build daemon disappeared unexpectedly". Reproduced locally under the same
`SENTRY_AUTH_TOKEN` is a sensitive EAS variable for preview and production and authenticates limits (`taskset -c 0-3` and a 15 GB, no-swap systemd scope): the build succeeds in 20 minutes
against Bugsink 2.6.1, and the plugin config in `app.json` matches the project 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 - consider turning on R8 for Android release builds (SDK 58 default, disabled via
`android.enableMinifyInReleaseBuilds: false` in the `expo-build-properties` plugin config in `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 `app.json`): smaller APK, but native Android stack traces get obfuscated unless the R8 mapping
+4 -2
View File
@@ -8,7 +8,8 @@
"EXPO_PUBLIC_DUSKEN_FORGOT_PASSWORD_URL": "https://galtinn.neuf.no/auth/password_reset/", "EXPO_PUBLIC_DUSKEN_FORGOT_PASSWORD_URL": "https://galtinn.neuf.no/auth/password_reset/",
"EXPO_PUBLIC_DUSKEN_PRIVACY_POLICY_URL": "https://galtinn.neuf.no/nb/personvern/", "EXPO_PUBLIC_DUSKEN_PRIVACY_POLICY_URL": "https://galtinn.neuf.no/nb/personvern/",
"EXPO_PUBLIC_SENTRY_DSN": "https://af0b4ac4258049d9a21a615b9696190b@bugsink.neuf.no/2", "EXPO_PUBLIC_SENTRY_DSN": "https://af0b4ac4258049d9a21a615b9696190b@bugsink.neuf.no/2",
"SENTRY_URL": "https://bugsink.neuf.no/" "SENTRY_URL": "https://bugsink.neuf.no/",
"GRADLE_OPTS": "-Dorg.gradle.workers.max=2"
} }
}, },
"production": { "production": {
@@ -19,7 +20,8 @@
"EXPO_PUBLIC_DUSKEN_FORGOT_PASSWORD_URL": "https://galtinn.neuf.no/auth/password_reset/", "EXPO_PUBLIC_DUSKEN_FORGOT_PASSWORD_URL": "https://galtinn.neuf.no/auth/password_reset/",
"EXPO_PUBLIC_DUSKEN_PRIVACY_POLICY_URL": "https://galtinn.neuf.no/nb/personvern/", "EXPO_PUBLIC_DUSKEN_PRIVACY_POLICY_URL": "https://galtinn.neuf.no/nb/personvern/",
"EXPO_PUBLIC_SENTRY_DSN": "https://af0b4ac4258049d9a21a615b9696190b@bugsink.neuf.no/2", "EXPO_PUBLIC_SENTRY_DSN": "https://af0b4ac4258049d9a21a615b9696190b@bugsink.neuf.no/2",
"SENTRY_URL": "https://bugsink.neuf.no/" "SENTRY_URL": "https://bugsink.neuf.no/",
"GRADLE_OPTS": "-Dorg.gradle.workers.max=2"
} }
} }
}, },