fix(ci): raise Node heap limit for the Cloudflare build - #3
Merged
Merged
Conversation
The first post-merge deploy died with 'Ineffective mark-compacts near heap limit' during Nitro bundling. GitHub runners have 16 GB, but Node caps its own old-space near 2 GB regardless, so the headroom was never reachable. Matches the max-old-space-size=6144 the CMDIY build uses.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Raises Node’s heap limit for Cloudflare CI builds to prevent Nitro bundling out-of-memory failures and updates migration tracking.
Changes:
- Sets
NODE_OPTIONS=--max-old-space-size=6144for the Cloudflare build. - Records Phase 3 migration progress.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Summary |
|---|---|
docs/plans/2026-08-21-cloudflare-workers-migration.md |
Updates Phase 3 progress; contains a minor status-label inconsistency. |
.github/workflows/deploy-cloudflare.yml |
Increases the Node heap available during the build. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| | 1 | Platform-neutral fixes on main via Vercel (canonical bug, remoteAddress guard, spike findings) | not started | | ||
| | 2 | wrangler.jsonc + GH Actions deploy + secrets + `wrangler dev` recipe (E4) + pinned wrangler/compat_date (E5) | **COMPLETE 2026-08-23.** `.github/workflows/deploy-cloudflare.yml` (build:cf → wrangler deploy → smoke), all 5 repo secrets set, wrangler pinned 4.125.0, `scripts/verify-cf-deploy.sh` green 24/24 on the deployed worker. Local recipe: `bun run build:cf && bunx wrangler dev` (wrangler auto-loads `.env`, no `.dev.vars` needed). | | ||
| | 3 | Zone prep: BIND import from R53 (C2), record diff, DCV cert pre-provisioning (C1), Always Use HTTPS + HSTS (C3), proxied apex + preserve_query_string (C4). **HARD GATE (auth uses current origin): Supabase allowlist on project `ljigjawvlwvciqvegptp` must contain `https://oecua.org/**`, `https://www.oecua.org/**`, both openecualliance.org forms, and the workers.dev origin, and SITE_URL must become `https://oecua.org` — BEFORE Phase 4. Missing origin = silent GoTrue SITE_URL fallback = broken login on that origin.** | not started | | ||
| | 3 | **IN PROGRESS 2026-08-24.** Done: both zones created (oecua.org `6348deded5fd4a4826c54899a6272d09`, openecualliance.org `32972bed26c8a6f1d855fa9383982c2a`, both pending NS); all 7 records verified byte-exact incl. the 5 mail records (dns-only, MX priority 10, DKIM 218 chars); Always Use HTTPS on, HSTS max-age=63072000 matching baseline, SSL mode strict — on both zones. Blocked on token perms: redirect rules (Dynamic Redirect: Edit) and cert status (SSL and Certificates: Read/Edit). **C1 note: full-setup zones cannot pre-validate certs — cert issues 15 min–24 h AFTER activation; cutover holds until cert reports Active.** Zone prep detail: BIND import from R53 (C2), record diff, DCV cert pre-provisioning (C1), Always Use HTTPS + HSTS (C3), proxied apex + preserve_query_string (C4). **HARD GATE (auth uses current origin): Supabase allowlist on project `ljigjawvlwvciqvegptp` must contain `https://oecua.org/**`, `https://www.oecua.org/**`, both openecualliance.org forms, and the workers.dev origin, and SITE_URL must become `https://oecua.org` — BEFORE Phase 4. Missing origin = silent GoTrue SITE_URL fallback = broken login on that origin.** | not started | |
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.
The first post-merge deploy died with
FATAL ERROR: Ineffective mark-compacts near heap limitduring Nitro bundling.GitHub runners have 16 GB, but Node caps its own old-space near 2 GB regardless, so the headroom was never reachable. Builds succeed locally because macOS Node defaults to a larger heap — this failure could only surface in CI.
Sets
NODE_OPTIONS=--max-old-space-size=6144on the build step, matching what the classicminidiy build already uses.Logged to the CMDIY master plan: the migration plan lists "GH Actions (16 GB) ends the OOM class permanently" as a benefit — that is wrong as written, and cmdiy's bundle is larger.