Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,19 @@ on:
- '.gitignore'
- 'CHANGELOG.md'

# Node 24.19.0 shipped nodejs/node#63642 ("src: add cleanup hooks to
# node::ObjectWrap"), which makes NAN-style ObjectWrap addons abort during
# environment teardown: better-sqlite3's Statement destructor calls
# RemoveEnvironmentCleanupHook after the Environment is gone, tripping
# `Assertion failed: (env) != nullptr` and killing the process with SIGABRT.
# In CI that surfaced as vitest workers dying mid-run, taking whole test files
# with them and dropping coverage below the gate — with no code change to
# explain it, because a floating `'24'` pin picks up each new patch release.
# Pinned until better-sqlite3 adapts to the new hook contract; verified locally
# under both versions (24.19.0: 4-6 workers killed per run; 24.18.0: none).
env:
NODE_VERSION: '24.18.0'

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
Expand All @@ -46,7 +59,7 @@ jobs:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: '24'
node-version: ${{ env.NODE_VERSION }}
- name: Lint commit messages (release notes are generated from them)
run: node scripts/commit-lint.mjs "origin/${{ github.base_ref }}" HEAD

Expand Down Expand Up @@ -105,7 +118,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: '24'
node-version: ${{ env.NODE_VERSION }}
cache: pnpm

- name: Install dependencies
Expand Down Expand Up @@ -302,7 +315,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: '24'
node-version: ${{ env.NODE_VERSION }}
cache: pnpm

- name: Install dependencies
Expand Down
16 changes: 15 additions & 1 deletion .github/workflows/deploy-site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,20 @@ on:
workflow_dispatch:

# Allow the GITHUB_TOKEN to deploy to Pages via OIDC.

# Node 24.19.0 shipped nodejs/node#63642 ("src: add cleanup hooks to
# node::ObjectWrap"), which makes NAN-style ObjectWrap addons abort during
# environment teardown: better-sqlite3's Statement destructor calls
# RemoveEnvironmentCleanupHook after the Environment is gone, tripping
# `Assertion failed: (env) != nullptr` and killing the process with SIGABRT.
# In CI that surfaced as vitest workers dying mid-run, taking whole test files
# with them and dropping coverage below the gate — with no code change to
# explain it, because a floating `'24'` pin picks up each new patch release.
# Pinned until better-sqlite3 adapts to the new hook contract; verified locally
# under both versions (24.19.0: 4-6 workers killed per run; 24.18.0: none).
env:
NODE_VERSION: '24.18.0'

permissions:
contents: read
pages: write
Expand All @@ -50,7 +64,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: '24'
node-version: ${{ env.NODE_VERSION }}
cache: pnpm

- name: Install dependencies
Expand Down
15 changes: 14 additions & 1 deletion .github/workflows/notarize-finalize.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,19 @@ on:
default: stable
type: string

# Node 24.19.0 shipped nodejs/node#63642 ("src: add cleanup hooks to
# node::ObjectWrap"), which makes NAN-style ObjectWrap addons abort during
# environment teardown: better-sqlite3's Statement destructor calls
# RemoveEnvironmentCleanupHook after the Environment is gone, tripping
# `Assertion failed: (env) != nullptr` and killing the process with SIGABRT.
# In CI that surfaced as vitest workers dying mid-run, taking whole test files
# with them and dropping coverage below the gate — with no code change to
# explain it, because a floating `'24'` pin picks up each new patch release.
# Pinned until better-sqlite3 adapts to the new hook contract; verified locally
# under both versions (24.19.0: 4-6 workers killed per run; 24.18.0: none).
env:
NODE_VERSION: '24.18.0'

permissions:
contents: write

Expand All @@ -57,7 +70,7 @@ jobs:
version: 10
- uses: actions/setup-node@v4
with:
node-version: '24'
node-version: ${{ env.NODE_VERSION }}
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
Expand Down
15 changes: 14 additions & 1 deletion .github/workflows/notarize-poll.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,19 @@ on:
- cron: '13,43 * * * *'
workflow_dispatch: {}

# Node 24.19.0 shipped nodejs/node#63642 ("src: add cleanup hooks to
# node::ObjectWrap"), which makes NAN-style ObjectWrap addons abort during
# environment teardown: better-sqlite3's Statement destructor calls
# RemoveEnvironmentCleanupHook after the Environment is gone, tripping
# `Assertion failed: (env) != nullptr` and killing the process with SIGABRT.
# In CI that surfaced as vitest workers dying mid-run, taking whole test files
# with them and dropping coverage below the gate — with no code change to
# explain it, because a floating `'24'` pin picks up each new patch release.
# Pinned until better-sqlite3 adapts to the new hook contract; verified locally
# under both versions (24.19.0: 4-6 workers killed per run; 24.18.0: none).
env:
NODE_VERSION: '24.18.0'

permissions:
contents: write

Expand All @@ -33,7 +46,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '24'
node-version: ${{ env.NODE_VERSION }}
- name: Scan for a pending release and poll it once
id: scan
run: |
Expand Down
20 changes: 17 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,20 @@ on:
# A re-push of the same tag is rare but happens (e.g., draft release re-cut).
# Deduplicate retries on the same tag, but never cancel a mid-flight macOS
# notarize — that wastes 10x ubuntu-equivalent minutes.

# Node 24.19.0 shipped nodejs/node#63642 ("src: add cleanup hooks to
# node::ObjectWrap"), which makes NAN-style ObjectWrap addons abort during
# environment teardown: better-sqlite3's Statement destructor calls
# RemoveEnvironmentCleanupHook after the Environment is gone, tripping
# `Assertion failed: (env) != nullptr` and killing the process with SIGABRT.
# In CI that surfaced as vitest workers dying mid-run, taking whole test files
# with them and dropping coverage below the gate — with no code change to
# explain it, because a floating `'24'` pin picks up each new patch release.
# Pinned until better-sqlite3 adapts to the new hook contract; verified locally
# under both versions (24.19.0: 4-6 workers killed per run; 24.18.0: none).
env:
NODE_VERSION: '24.18.0'

concurrency:
group: release-${{ inputs.version || github.ref_name }}
cancel-in-progress: false
Expand Down Expand Up @@ -53,7 +67,7 @@ jobs:
fetch-tags: true
- uses: actions/setup-node@v4
with:
node-version: '24'
node-version: ${{ env.NODE_VERSION }}
- name: Build notes from conventional commits
id: notes
env:
Expand Down Expand Up @@ -181,7 +195,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: '24'
node-version: ${{ env.NODE_VERSION }}
cache: pnpm

- name: Install Rust
Expand Down Expand Up @@ -513,7 +527,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '24'
node-version: ${{ env.NODE_VERSION }}
- name: Download notary submission ids from the draft release
run: |
set -euo pipefail
Expand Down
15 changes: 14 additions & 1 deletion .github/workflows/test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,19 @@ on:
- linux
- all

# Node 24.19.0 shipped nodejs/node#63642 ("src: add cleanup hooks to
# node::ObjectWrap"), which makes NAN-style ObjectWrap addons abort during
# environment teardown: better-sqlite3's Statement destructor calls
# RemoveEnvironmentCleanupHook after the Environment is gone, tripping
# `Assertion failed: (env) != nullptr` and killing the process with SIGABRT.
# In CI that surfaced as vitest workers dying mid-run, taking whole test files
# with them and dropping coverage below the gate — with no code change to
# explain it, because a floating `'24'` pin picks up each new patch release.
# Pinned until better-sqlite3 adapts to the new hook contract; verified locally
# under both versions (24.19.0: 4-6 workers killed per run; 24.18.0: none).
env:
NODE_VERSION: '24.18.0'

permissions:
contents: write

Expand Down Expand Up @@ -87,7 +100,7 @@ jobs:

- uses: actions/setup-node@v4
with:
node-version: '24'
node-version: ${{ env.NODE_VERSION }}
cache: pnpm

- name: Install Rust
Expand Down
Loading