Skip to content

Commit a41a9c8

Browse files
ci: pin Node 22 before bun install so better-sqlite3 builds on Blacksmith runners
The format, lint, typecheck, and desktop-smoke jobs relied on the runner's default Node. On blacksmith-4vcpu-ubuntu-2404 that is v20.20.0, where better-sqlite3's node-gyp fallback (no prebuilt binary matched for the runner) crashes: node-gyp's undici calls webidl.markAsUncloneable, which only exists in Node 22.10+. Pin Node 22 before `bun install`, matching the existing test/e2e jobs that hit the same issue. Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
1 parent a67432c commit a41a9c8

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ jobs:
2929
restore-keys: |
3030
${{ runner.os }}-bun-1.3.11-
3131
32+
# No prebuilt better-sqlite3 binary matches this runner, so `bun install`
33+
# builds it from source via node-gyp, whose undici needs Node 22.10+
34+
# (webidl.markAsUncloneable). Pin the same runtime the test/e2e jobs use.
35+
- uses: actions/setup-node@v4
36+
with:
37+
node-version: 22
38+
3239
- run: bun install --frozen-lockfile
3340

3441
- run: bun run format:check
@@ -51,6 +58,13 @@ jobs:
5158
restore-keys: |
5259
${{ runner.os }}-bun-1.3.11-
5360
61+
# No prebuilt better-sqlite3 binary matches this runner, so `bun install`
62+
# builds it from source via node-gyp, whose undici needs Node 22.10+
63+
# (webidl.markAsUncloneable). Pin the same runtime the test/e2e jobs use.
64+
- uses: actions/setup-node@v4
65+
with:
66+
node-version: 22
67+
5468
- run: bun install --frozen-lockfile
5569

5670
- run: bun run lint
@@ -73,6 +87,13 @@ jobs:
7387
restore-keys: |
7488
${{ runner.os }}-bun-1.3.11-
7589
90+
# No prebuilt better-sqlite3 binary matches this runner, so `bun install`
91+
# builds it from source via node-gyp, whose undici needs Node 22.10+
92+
# (webidl.markAsUncloneable). Pin the same runtime the test/e2e jobs use.
93+
- uses: actions/setup-node@v4
94+
with:
95+
node-version: 22
96+
7697
- run: bun install --frozen-lockfile
7798

7899
- run: bun run typecheck
@@ -260,6 +281,13 @@ jobs:
260281
restore-keys: |
261282
${{ runner.os }}-bun-1.3.11-
262283
284+
# No prebuilt better-sqlite3 binary matches this runner, so `bun install`
285+
# builds it from source via node-gyp, whose undici needs Node 22.10+
286+
# (webidl.markAsUncloneable). Pin the same runtime the test/e2e jobs use.
287+
- uses: actions/setup-node@v4
288+
with:
289+
node-version: 22
290+
263291
- run: bun install --frozen-lockfile
264292

265293
- name: Build web app

0 commit comments

Comments
 (0)