fix: cap electron-builder pnpm collector depth to unblock CI release builds#42
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the multi-platform desktop release build in CI. electron-builder's pnpm
node-module collector runs
pnpm list --prod --json --depth Infinity, and onthis workspace the cloud-SDK dependency graph makes that dump so large the
collector exhausts memory on the release runners. Cap the list depth via a
pnpm patch and give the parse enough heap.
Closes #
What changed
patches/app-builder-lib@26.8.1.patch, registered underpnpm.patchedDependencies: the pnpm node-module collector now callspnpm listwith--depth 6instead of--depth Infinity..github/workflows/release.yml: setNODE_OPTIONS=--max-old-space-size=8192on the electron-builder step so parsing the (still large) list output has
headroom on the hosted runners.
pnpm-lock.yaml: records the patched dependency.How I tested
against depth Infinity — identical app contents (no missing prod deps).
temporary debug workflow (since removed); the release build completes
with this patch where it previously OOM'd.
Notes for reviewers
chain resolves within it — verified by diffing the collector's output
against the full-depth run locally.