Skip to content

Commit c2616e2

Browse files
authored
ci: bump Node heap to 4 GB for sdk-generation pyright step (#43)
The Generate workflow has been OOM-crashing on the v2025-11-15 SDKs: FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory Diagnosis (run 26171584374): - Speakeasy CLI's Compile SDK step invokes `uv run python -m pyright` on each generated SDK. - Pyright is a Node.js application. On the v2025-11-15 embedded SDK, pyright's peak RSS is ~3.77 GB (measured locally). - The Generate runner's default Node max-old-space-size is ~2 GB, so pyright OOMs before completing. Reproduced locally: NODE_OPTIONS=--max-old-space-size=2048 → identical OOM NODE_OPTIONS=--max-old-space-size=4096 → pyright passes (0 errors) Pass NODE_OPTIONS via `cli_environment_variables` (the `Gusto/sdk-generation-action` reusable workflow propagates these into the Speakeasy CLI's process env, which pyright inherits via uv → python → node).
1 parent ef73ff2 commit c2616e2

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

.github/workflows/sdk_generation.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ jobs:
2424
force: ${{ github.event.inputs.force }}
2525
mode: pr
2626
set_version: ${{ github.event.inputs.set_version }}
27+
# Bump Node heap so pyright doesn't OOM on the larger SDKs (the
28+
# default Node max-old-space-size on the runner is ~2 GB, and
29+
# pyright peaks at ~3.8 GB on the v2025-11-15 embedded SDK).
30+
# Verified locally: NODE_OPTIONS=--max-old-space-size=2048 reproduces
31+
# the CI OOM; 4096 makes pyright pass cleanly.
32+
environment: |
33+
NODE_OPTIONS=--max-old-space-size=4096
2734
runs-on: "{\"group\": \"gusto-ubuntu-default\"}"
2835
secrets:
2936
github_access_token: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)