Skip to content

Commit 1c4e9b5

Browse files
Merge branch 'main' into fix-fs-utf8-fastpath
2 parents fccaa91 + 9f04fcd commit 1c4e9b5

6,332 files changed

Lines changed: 574241 additions & 143140 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/CODEOWNERS‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@
206206
/deps/ada @nodejs/url
207207
/lib/internal/url.js @nodejs/url
208208
/lib/url.js @nodejs/url
209+
/src/node_url_pattern.* @nodejs/url
209210
/src/node_url.* @nodejs/url
210211
/test/fixtures/wpt/url @nodejs/url
211212

‎.github/workflows/auto-start-ci.yml‎

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# This action uses the following secrets:
2+
# JENKINS_USER: GitHub user whose Jenkins token is defined below
3+
# JENKINS_TOKEN: Jenkins token, to be used to start CI
14
name: Auto Start CI
25

36
on:
@@ -36,11 +39,13 @@ jobs:
3639
-t '{{ range . }}{{ .number }} {{ end }}' \
3740
--limit 5)" >> "$GITHUB_OUTPUT"
3841
env:
39-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42+
GH_TOKEN: ${{ github.token }}
4043
start-ci:
4144
permissions:
45+
checks: read
4246
contents: read
4347
pull-requests: write
48+
statuses: read
4449
needs: get-prs-for-ci
4550
if: needs.get-prs-for-ci.outputs.numbers != ''
4651
runs-on: ubuntu-slim
@@ -59,16 +64,15 @@ jobs:
5964
ncu-config set token "$GH_TOKEN"
6065
ncu-config set jenkins_token "$JENKINS_TOKEN"
6166
ncu-config set owner "$GITHUB_REPOSITORY_OWNER"
62-
ncu-config set repo "$(echo "$GITHUB_REPOSITORY" | cut -d/ -f2)"
67+
ncu-config set repo "${GITHUB_REPOSITORY#*/}"
6368
env:
6469
USERNAME: ${{ secrets.JENKINS_USER }}
65-
GH_TOKEN: ${{ secrets.GH_USER_TOKEN }}
70+
GH_TOKEN: ${{ github.token }}
6671
JENKINS_TOKEN: ${{ secrets.JENKINS_TOKEN }}
6772

6873
- name: Start the CI
6974
run: |
7075
curl -fsSL "https://github.com/${GITHUB_REPOSITORY}/raw/${GITHUB_SHA}/tools/actions/start-ci.sh" \
7176
| sh -s -- ${{ needs.get-prs-for-ci.outputs.numbers }}
7277
env:
73-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
74-
GH_REPO: ${{ github.repository }}
78+
GH_TOKEN: ${{ github.token }}

‎.github/workflows/benchmark.yml‎

Lines changed: 67 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,43 @@ on:
2525
type: number
2626
default: 30
2727
description: How many times to repeat each benchmark
28+
post-comment:
29+
type: boolean
30+
description: Post a comment linking to the run, with the aggregated result once known.
31+
token:
32+
type: string
33+
description: A GitHub token to post comments cross repository (not recommended)
2834

2935
permissions:
3036
contents: read
3137

3238
jobs:
39+
post-comment:
40+
if: inputs.post-comment
41+
outputs:
42+
body: ${{ steps.comment.outputs.COMMENT_BODY }}
43+
url: ${{ steps.comment.outputs.COMMENT_URL }}
44+
runs-on: ubuntu-slim
45+
permissions:
46+
pull-requests: write
47+
steps:
48+
- name: Mark token input as sensitive
49+
if: inputs.token != ''
50+
run: echo "::add-mask::${{ inputs.token }}"
51+
- name: Add link to the current run
52+
id: comment
53+
run: |
54+
FILTER_IF_SET=
55+
[ -z "$FILTER" ] || FILTER_IF_SET=" / $FILTER"
56+
COMMENT_BODY="Benchmark GHA (${CATEGORIES}${FILTER_IF_SET}): ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"
57+
echo "COMMENT_BODY=$COMMENT_BODY" >> "$GITHUB_OUTPUT"
58+
echo "COMMENT_URL=$(gh pr comment -R "${REPO:-$GITHUB_REPOSITORY}" "$PR_ID" --body "$COMMENT_BODY")" >> "$GITHUB_OUTPUT"
59+
env:
60+
CATEGORIES: ${{ inputs.category }}
61+
FILTER: ${{ inputs.filter }}
62+
GH_TOKEN: ${{ inputs.token || github.token }}
63+
REPO: ${{ inputs.repo }}
64+
PR_ID: ${{ inputs.pr_id }}
3365
build:
3466
strategy:
3567
fail-fast: true
@@ -60,7 +92,7 @@ jobs:
6092
env:
6193
EXPECTED_SHA: ${{ inputs.commit }}
6294

63-
- uses: cachix/install-nix-action@8aa03977d8d733052d78f4e008a241fd1dbf36b3 # v31.10.6
95+
- uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0
6496
with:
6597
extra_nix_config: sandbox = true
6698

@@ -109,7 +141,7 @@ jobs:
109141
--arg devTools '[]' \
110142
--arg benchmarkTools '[]' \
111143
--run '
112-
make -j4 V=1
144+
make build-ci -j4 V=1
113145
'
114146
115147
- name: Run benchmark
@@ -155,9 +187,13 @@ jobs:
155187
path: ${{ matrix.system }}.csv
156188

157189
aggregate-results:
158-
needs: build
190+
needs: [build, post-comment]
191+
if: ${{ always() && needs.build.result == 'success' && needs.post-comment.result == (inputs.post-comment && 'success' || 'skipped') }}
159192
name: Aggregate benchmark results
160193
runs-on: ubuntu-slim
194+
permissions:
195+
contents: read
196+
pull-requests: write
161197
steps:
162198
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
163199
with:
@@ -175,7 +211,7 @@ jobs:
175211
merge-multiple: true
176212
path: raw-results
177213

178-
- uses: cachix/install-nix-action@8aa03977d8d733052d78f4e008a241fd1dbf36b3 # v31.10.6
214+
- uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0
179215
with:
180216
extra_nix_config: sandbox = true
181217

@@ -200,4 +236,30 @@ jobs:
200236
echo "> [!WARNING] "
201237
echo "> Do not take GHA benchmark results as face value, always confirm them"
202238
echo "> using a dedicated machine, e.g. Jenkins CI."
203-
' | tee /dev/stderr >> "$GITHUB_STEP_SUMMARY"
239+
' | tee /dev/stderr ${{ inputs.post-comment && 'body.txt' || '' }} >> "$GITHUB_STEP_SUMMARY"
240+
- name: Mark token input as sensitive
241+
if: inputs.token != ''
242+
run: echo "::add-mask::${{ inputs.token }}"
243+
- name: Edit comment
244+
if: inputs.post-comment
245+
run: |
246+
{
247+
echo "$COMMENT_BODY"
248+
echo
249+
echo '<details><summary>Results</summary>'
250+
echo
251+
cat body.txt
252+
echo
253+
echo '</details>'
254+
} | jq -Rrcs '{ body: . }' | gh api \
255+
--method PATCH \
256+
-H "Accept: application/vnd.github+json" \
257+
-H "X-GitHub-Api-Version: 2026-03-10" \
258+
"/repos/${REPO:-$GITHUB_REPOSITORY}/issues/comments/${COMMENT_URL##*-}" \
259+
--input -
260+
env:
261+
GH_TOKEN: ${{ inputs.token || github.token }}
262+
REPO: ${{ inputs.repo }}
263+
COMMENT_BODY: ${{ needs.post-comment.outputs.body }}
264+
COMMENT_URL: ${{ needs.post-comment.outputs.url }}
265+
PR_ID: ${{ inputs.pr_id }}

‎.github/workflows/build-shared.yml‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ on:
2222
required: false
2323
type: string
2424
default: ''
25+
pkcs11-store-test:
26+
description: Whether to enable the PKCS#11-backed crypto STORE test
27+
required: false
28+
type: boolean
29+
default: false
2530
secrets:
2631
CACHIX_AUTH_TOKEN:
2732
description: Cachix auth token for nodejs.cachix.org.
@@ -38,16 +43,17 @@ jobs:
3843
steps:
3944
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
4045
with:
41-
name: tarballs
4246
path: tarballs
47+
pattern: '*.tar.gz'
48+
merge-multiple: true
4349

4450
- name: Extract tarball
4551
shell: bash
4652
run: |
4753
tar xzf tarballs/*.tar.gz -C "$RUNNER_TEMP"
4854
echo "TAR_DIR=$RUNNER_TEMP/$(basename tarballs/*.tar.gz .tar.gz)" >> "$GITHUB_ENV"
4955
50-
- uses: cachix/install-nix-action@8aa03977d8d733052d78f4e008a241fd1dbf36b3 # v31.10.6
56+
- uses: cachix/install-nix-action@630ae543ea3a38a9a4166f03376c02c50f408342 # v31.11.0
5157
with:
5258
extra_nix_config: sandbox = true
5359

@@ -83,6 +89,7 @@ jobs:
8389
--arg ccache "${NIX_SCCACHE:-null}" \
8490
--arg devTools '[]' \
8591
--arg benchmarkTools '[]' \
92+
--arg pkcs11 ${{ inputs.pkcs11-store-test }} \
8693
${{ inputs.extra-nix-flags }} \
8794
--run '
8895
make -C "$TAR_DIR" run-ci -j4 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9 --skip-tests=$CI_SKIP_TESTS"

‎.github/workflows/build-tarball.yml‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ on:
2323
- tools/eslint-rules/**
2424
- tools/eslint/**
2525
- tools/lint-md/**
26+
- tools/nix/**
2627
- typings/**
2728
- vcbuild.bat
2829
- .**
@@ -52,6 +53,7 @@ on:
5253
- tools/eslint-rules/**
5354
- tools/eslint/**
5455
- tools/lint-md/**
56+
- tools/nix/**
5557
- typings/**
5658
- vcbuild.bat
5759
- .**
@@ -78,7 +80,7 @@ jobs:
7880
with:
7981
persist-credentials: false
8082
- name: Set up Python ${{ env.PYTHON_VERSION }}
81-
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
83+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
8284
with:
8385
python-version: ${{ env.PYTHON_VERSION }}
8486
allow-prereleases: true
@@ -91,9 +93,8 @@ jobs:
9193
- name: Upload tarball artifact
9294
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
9395
with:
94-
name: tarballs
9596
path: '*.tar.gz'
96-
compression-level: 0
97+
archive: false
9798
test-tarball-linux:
9899
needs: build-tarball
99100
runs-on: ubuntu-24.04-arm
@@ -113,19 +114,18 @@ jobs:
113114
with:
114115
clang-version: ${{ env.CLANG_VERSION }}
115116
- name: Set up Python ${{ env.PYTHON_VERSION }}
116-
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
117+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
117118
with:
118119
python-version: ${{ env.PYTHON_VERSION }}
119120
allow-prereleases: true
120121
- name: Set up sccache
121122
if: github.base_ref == 'main' || github.ref_name == 'main'
122-
uses: Mozilla-Actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10
123+
uses: Mozilla-Actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11
123124
with:
124-
version: v0.16.0
125+
version: v0.17.0
125126
- name: Download tarball
126127
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
127128
with:
128-
name: tarballs
129129
path: tarballs
130130
- name: Extract tarball
131131
run: |

‎.github/workflows/close-stalled.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
if: github.repository == 'nodejs/node'
2121
runs-on: ubuntu-slim
2222
steps:
23-
- uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0
23+
- uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0
2424
with:
2525
repo-token: ${{ secrets.GITHUB_TOKEN }}
2626
days-before-close: 30

‎.github/workflows/codeql.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ jobs:
2828

2929
# Initializes the CodeQL tools for scanning.
3030
- name: Initialize CodeQL
31-
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
31+
uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
3232
with:
3333
languages: ${{ matrix.language }}
3434
config-file: ./.github/codeql-config.yml
3535

3636
- name: Autobuild
37-
uses: github/codeql-action/autobuild@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
37+
uses: github/codeql-action/autobuild@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
3838

3939
- name: Perform CodeQL Analysis
40-
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
40+
uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
4141
with:
4242
category: /language:${{matrix.language}}

0 commit comments

Comments
 (0)