From ce13d56cb8d0c46783f08aae3f137d19f6c55809 Mon Sep 17 00:00:00 2001 From: Jonas Braathen Date: Fri, 30 Oct 2026 03:03:15 +0100 Subject: [PATCH] build: drop the gradle worker limit again --- TODO.md | 23 +++++++++++++---------- eas.json | 6 ++---- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/TODO.md b/TODO.md index 63c7cf2..766ca41 100644 --- a/TODO.md +++ b/TODO.md @@ -2,16 +2,19 @@ Remove items from this list once they are done. -- 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 ` +- check that Android release builds now fit on EAS's default worker (4 vCPUs, 15.6 GB). Three + builds failed on the Skia step: one stalled in `:shopify_react-native-skia:buildCMakeRelWithDebInfo + [arm64-v8a]` until EAS's 45-minute limit, two failed with "Gradle build daemon disappeared + unexpectedly", the last even with Gradle limited to two workers. Cause: a memory regression in + `@shopify/react-native-skia` 2.14.0 (Expo SDK 58's pin), whose `ViewProperty.cpp` and + `RNSkPictureView.cpp` include the whole JSI API, so three translation units of ~2.5, 2.6 and + 4.5 GB compile in parallel inside Skia's own ninja build + ([wcandillon/react-native-skia#4284](https://github.com/wcandillon/react-native-skia/pull/4284)). + Locally under the same limits (`taskset -c 0-3`, a 15 GB no-swap systemd scope) the build peaked at + 13.3 GB of anonymous memory. Fixed in 2.15.2, which the moved project publishes as + `react-native-skia`, so `package.json` aliases `@shopify/react-native-skia` to + `npm:react-native-skia@2.15.2` and lists it in `expo.install.exclude`. Drop the alias and the + exclusion once Expo pins a Skia with the fix - 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 diff --git a/eas.json b/eas.json index b21309d..f8bec1c 100644 --- a/eas.json +++ b/eas.json @@ -8,8 +8,7 @@ "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_SENTRY_DSN": "https://af0b4ac4258049d9a21a615b9696190b@bugsink.neuf.no/2", - "SENTRY_URL": "https://bugsink.neuf.no/", - "GRADLE_OPTS": "-Dorg.gradle.workers.max=2" + "SENTRY_URL": "https://bugsink.neuf.no/" } }, "production": { @@ -20,8 +19,7 @@ "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_SENTRY_DSN": "https://af0b4ac4258049d9a21a615b9696190b@bugsink.neuf.no/2", - "SENTRY_URL": "https://bugsink.neuf.no/", - "GRADLE_OPTS": "-Dorg.gradle.workers.max=2" + "SENTRY_URL": "https://bugsink.neuf.no/" } } },