• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

decentraland / builder-server / 27357486919
71%

Build:
DEFAULT BRANCH: master
Ran 11 Jun 2026 03:20PM UTC
Jobs 1
Files 192
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

11 Jun 2026 03:19PM UTC coverage: 71.327%. Remained the same
27357486919

push

github

web-flow
fix: run migrations in ts-node transpile-only mode to prevent OOM (#806)

* fix: run migrations in ts-node transpile-only mode to prevent OOM

The migration step (`migrate:docker`) registers ts-node with the project
tsconfig, which defaults to full type-checking. Because tsconfig `include`
is `./**/*`, ts-node builds and type-checks a program spanning the entire
repo (~238 source files) just to run migrations, holding the whole
TypeScript program and checker in memory.

Under Node 18 (libuv 1.44) the heap ceiling was sized off host physical
memory, so this fit. Node 24 (#804) reads the cgroup v2 limit and
auto-sizes old-space to ~512 MB, which the type-checking working set
exceeds, crashing the migration with "Reached heap limit" / "Ineffective
mark-compacts" OOM errors. This is the same root cause as #805, but that
fix only capped the heap on the server process, not the migration.

Switch the migration ts-node to transpile-only. Migrations are already
type-checked at build time (`npm run build`) and `isolatedModules` makes
per-file transpilation safe, so runtime type-checking was pure waste.
This removes the memory hog and speeds migrations up.

Also set NODE_OPTIONS=--max-old-space-size=1536 for the migration step in
entrypoint.sh, giving migrations the same explicit, deterministic heap
ceiling as the server (they share the same 2 GB container).

* fix: scope migration NODE_OPTIONS to the migrate command

Previously NODE_OPTIONS was exported for the whole shell session, so it
also applied to the server process at the end of the script. Both used the
same value (1536) so there was no functional impact, but it was a
maintenance hazard: adjusting the server's explicit flag without noticing
the export would produce confusing behavior.

Set NODE_OPTIONS as a command prefix on the migrate invocation only so it
cannot leak to the server process below.

1375 of 2151 branches covered (63.92%)

Branch coverage included in aggregate %.

3257 of 4343 relevant lines covered (74.99%)

41.75 hits per line

Jobs
ID Job ID Ran Files Coverage
1 27357486919.1 11 Jun 2026 03:20PM UTC 384
72.6
GitHub Action Run
Source Files on build 27357486919
  • Tree
  • List 192
  • Changed 107
  • Source Changed 0
  • Coverage Changed 107
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #27357486919
  • 3ca5c06d on github
  • Prev Build on master (#27350638672)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc