build(mac): drop webpack heap from 6 GB to 4 GB on the macOS build (#9968)

The 6 GB ceiling set by #9967 was too aggressive for the macOS x64
VM's total RAM. Build #1295 on `pgabf-macos-x64` failed in
`_build_runtime` at `unzip electron-vX.X.X-darwin-x64.zip` with exit
code 2 — never even reached webpack. That points at OS-level memory
pressure spilling out of the Node process and starving the rest of
the build: at 6 GB reserved, the box runs out of RAM long before
Terser actually needs the full ceiling.

Drop back to 4 GB, which still gives Terser a full extra gigabyte
beyond the original 3 GB setting that OOM-killed webpack in #1294,
but leaves enough headroom for the other steps in the appbundle
build to coexist.

Only the macOS appbundle path changes (see pkg/mac/build-functions.sh);
linux/pip/Makefile and dev-machine builds keep the 3 GB the `bundle`
npm script ships with.
This commit is contained in:
Ashesh Vashi
2026-05-22 15:00:09 +05:30
committed by GitHub
parent 3e1921dcd9
commit 533aed122f
+7 -4
View File
@@ -307,12 +307,15 @@ _complete_bundle() {
# Jenkins console instead of an empty gap before the trap fires.
# NODE_ENV mirrors the top-level "bundle" npm script (see
# web/package.json). NODE_OPTIONS bumps V8's old-space ceiling
# past the 3 GB default the npm script uses: the macOS x64 builder
# OS-OOM-kills webpack inside TerserPlugin at the 3 GB setting
# (build #1294, sealing asset processing at 92%). Other build
# past the 3 GB default the npm script uses: at 3 GB the macOS
# x64 builder OS-OOM-killed webpack inside TerserPlugin (build
# #1294, sealing asset processing at 92%). 6 GB was too much for
# the x64 VM's total RAM and pushed earlier steps into low-memory
# failures (build #1295), so we land at 4 GB — enough headroom
# for Terser without starving the rest of the build. Other build
# paths still get 3 GB via the npm script.
export NODE_ENV=production
export NODE_OPTIONS=--max-old-space-size=6144
export NODE_OPTIONS=--max-old-space-size=4096
echo "==> Running ESLint..."
yarn run linter 2>&1
echo "==> Running webpack bundle..."