Skip to content

Commit ca77908

Browse files
authored
fix(ci): skip lifecycle scripts on CI installs (#5959)
* fix(ci): set up Node 22 for every job that runs bun install isolated-vm's install script now runs on install (#5935), and upstream only publishes prebuilds for Node 22 (ABI 127) and Node 24 (ABI 137). Jobs without an explicit setup-node inherit the runner default, Node 20, where prebuild-install finds nothing and falls back to node-gyp — which crashes on Node 20 with "webidl.util.markAsUncloneable is not a function", failing bun install --frozen-lockfile outright. This broke Create GitHub Release on main. - add setup-node 22 to ci.yml create-release and deploy-trigger-dev - add setup-node 22 to migrations.yml migrate - bump publish-cli.yml from the EOL Node 18 to 22, matching publish-ts-sdk.yml All eight jobs that run bun install now pin Node 22, matching the repo's declared engines.node >= 22.19.0. * fix(ci): skip lifecycle scripts on CI installs No CI job needs a compiled native module. isolated-vm landed in December 2025 and .npmrc blocked all lifecycle scripts until #5935, so CI ran green for ~7 months with it never built: next.config.ts and trigger.config.ts both external it, every test mocks it, and the only real require lives in isolated-vm-worker.cjs, which no CI job spawns. All three Dockerfiles already install with --ignore-scripts and rebuild it by hand. Building it in CI therefore buys nothing and couples every job to prebuild availability for the pinned Node. Upstream ships prebuilds for two ABIs only (Node 22/24), so the next setup-node bump would resurface the same opaque node-gyp failure that broke Create GitHub Release on main. - pass --ignore-scripts to all 8 CI bun install invocations - retarget the Setup Node comments at engines.node >= 22.19.0, which is the standalone reason for the pin now that scripts no longer run * fix(ci): drop redundant setup-node from bun-only jobs Once lifecycle scripts are skipped, nothing in create-release, migrate, or deploy-trigger-dev invokes node: they run bun run scripts/create-single-release.ts, bun run db:push plus bun run scripts/migrate.ts, and bunx trigger.dev deploy. All three were green without setup-node for months — the isolated-vm install script was the only thing that ever needed it, and --ignore-scripts covers that. setup-node stays where it is load-bearing: publish-cli and publish-ts-sdk need it for npm publish and its registry-url auth, and test-build/docs-embeddings already had it. publish-cli keeps the Node 18 -> 22 bump: that setup-node is required, and 18 has been EOL since April 2025, so it now matches publish-ts-sdk.
1 parent cafc9aa commit ca77908

6 files changed

Lines changed: 9 additions & 9 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ jobs:
198198
${{ runner.os }}-bun-
199199
200200
- name: Install dependencies
201-
run: bun install --frozen-lockfile
201+
run: bun install --frozen-lockfile --ignore-scripts
202202

203203
- name: Deploy to Trigger.dev
204204
working-directory: ./apps/sim
@@ -584,7 +584,7 @@ jobs:
584584
bun-version: 1.3.13
585585

586586
- name: Install dependencies
587-
run: bun install --frozen-lockfile
587+
run: bun install --frozen-lockfile --ignore-scripts
588588

589589
- name: Create release
590590
env:

.github/workflows/docs-embeddings.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
${{ runner.os }}-bun-
4242
4343
- name: Install dependencies
44-
run: bun install --frozen-lockfile
44+
run: bun install --frozen-lockfile --ignore-scripts
4545

4646
- name: Process docs embeddings
4747
working-directory: ./apps/sim

.github/workflows/migrations.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
${{ runner.os }}-bun-
4949
5050
- name: Install dependencies
51-
run: bun install --frozen-lockfile
51+
run: bun install --frozen-lockfile --ignore-scripts
5252

5353
# The expression maps the explicit environment input to exactly one repo
5454
# secret, so the job never holds another environment's database URL. An

.github/workflows/publish-cli.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Setup Node.js for npm publishing
2626
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
2727
with:
28-
node-version: '18'
28+
node-version: '22'
2929
registry-url: 'https://registry.npmjs.org/'
3030

3131
- name: Cache Bun dependencies
@@ -41,7 +41,7 @@ jobs:
4141
4242
- name: Install dependencies
4343
working-directory: packages/cli
44-
run: bun install --frozen-lockfile
44+
run: bun install --frozen-lockfile --ignore-scripts
4545

4646
- name: Build package
4747
working-directory: packages/cli

.github/workflows/publish-ts-sdk.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
${{ runner.os }}-bun-
4141
4242
- name: Install dependencies
43-
run: bun install --frozen-lockfile
43+
run: bun install --frozen-lockfile --ignore-scripts
4444

4545
- name: Run tests
4646
working-directory: packages/ts-sdk

.github/workflows/test-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
path: ./.turbo
6161

6262
- name: Install dependencies
63-
run: bun install --frozen-lockfile
63+
run: bun install --frozen-lockfile --ignore-scripts
6464

6565
# Surfaces known CVEs in the dependency tree. Non-blocking until the
6666
# existing advisory backlog is triaged, then flip to a required gate by
@@ -278,7 +278,7 @@ jobs:
278278
fi
279279
280280
- name: Install dependencies
281-
run: bun install --frozen-lockfile
281+
run: bun install --frozen-lockfile --ignore-scripts
282282

283283
- name: Build application
284284
env:

0 commit comments

Comments
 (0)