Skip to content

Commit 5bcdbaf

Browse files
chore: use custom node build
1 parent bcd7e64 commit 5bcdbaf

1 file changed

Lines changed: 31 additions & 2 deletions

File tree

.github/workflows/codspeed.yml

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ jobs:
6464
codspeed-walltime:
6565
name: Run CodSpeed walltime
6666
runs-on: "codspeed-macro"
67+
env:
68+
# The custom Node build below is v24, but the repo pins engines.node to
69+
# v20 with engine-strict. Relax the check for this job so pnpm install
70+
# accepts the custom Node; the runtime itself is compatible.
71+
npm_config_engine_strict: "false"
6772
steps:
6873
- uses: "actions/checkout@v4"
6974
with:
@@ -74,15 +79,39 @@ jobs:
7479
with:
7580
cache: pnpm
7681
node-version-file: .nvmrc
82+
83+
# Custom Node build with the V8 walltime-profiling patches (COD-2819,
84+
# COD-2820) on top of v24.15.0. Prepended to PATH so the CodSpeed runner's
85+
# `which node` resolves to it instead of the setup-node toolchain.
86+
- name: Install custom Node build
87+
env:
88+
NODE_URL: https://github.com/GuillaumeLagrange/node/releases/download/v24.15.0-codspeed/node-v24.15.0-codspeed-linux-arm64.gz
89+
NODE_SHA256: cc5501e713a88632d57a636ae9a0784fc78713056cd6caacc4e16df7b6a24721
90+
run: |
91+
mkdir -p "$RUNNER_TEMP/custom-node"
92+
curl -fsSL "$NODE_URL" -o "$RUNNER_TEMP/custom-node/node.gz"
93+
echo "$NODE_SHA256 $RUNNER_TEMP/custom-node/node.gz" | sha256sum -c -
94+
gunzip -f "$RUNNER_TEMP/custom-node/node.gz"
95+
chmod +x "$RUNNER_TEMP/custom-node/node"
96+
echo "$RUNNER_TEMP/custom-node" >> "$GITHUB_PATH"
97+
98+
- name: Verify custom Node is on PATH
99+
run: |
100+
which node
101+
node --version
102+
node --interpreted-frames-native-stack -e "console.log('custom node ok:', process.version, process.versions.v8)"
103+
77104
- name: Restore turbo cache
78105
uses: ./.github/actions/turbo-cache
79106
- run: pnpm install --frozen-lockfile --prefer-offline
80107
- run: pnpm turbo run build
81108

82109
- name: Run benchmarks
83-
# use version from `main` branch to always test the latest version, in real projects, use a tag, like `@v2`
84-
uses: CodSpeedHQ/action@main
110+
uses: CodSpeedHQ/action@3ab7a45ef04699335fd451268f4080ff83cc4ea5 # main
111+
env:
112+
CODSPEED_WALLTIME_PROFILER: samply
85113
with:
114+
runner-version: "v4.17.6-alpha.7"
86115
mode: walltime
87116
run: |
88117
pnpm turbo run bench --filter=@codspeed/tinybench-plugin

0 commit comments

Comments
 (0)