From 6037c3b55e785dfa04242fea55ffc5e09d10f40d Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 19 Dec 2025 11:10:55 +0100 Subject: [PATCH 1/5] tools: use sparse-checkout in linter jobs We can reduce out usage by avoiding to download files we don't need. --- .github/workflows/linters.yml | 53 +++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 695bd86b5d95ad..752158c6a6fadf 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -28,6 +28,13 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false + sparse-checkout: | + * + !doc/ + !lib/ + !.github/ + !.devcontainer/ + sparse-checkout-cone-mode: false - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: @@ -43,6 +50,13 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false + sparse-checkout: | + * + !doc/ + !lib/ + !.github/ + !.devcontainer/ + sparse-checkout-cone-mode: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 with: @@ -60,6 +74,13 @@ jobs: with: fetch-depth: 0 persist-credentials: false + sparse-checkout: | + * + !doc/ + !lib/ + !.github/ + !.devcontainer/ + sparse-checkout-cone-mode: false - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: @@ -98,6 +119,13 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false + sparse-checkout: | + * + !deps/ + !src/ + !.github/ + !.devcontainer/ + sparse-checkout-cone-mode: false - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: @@ -163,6 +191,11 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false + sparse-checkout: | + Makefile + tools/pip/ + *.py + sparse-checkout-cone-mode: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 with: @@ -181,6 +214,12 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false + sparse-checkout: | + Makefile + tools/pip/ + *.yml + *.yaml + sparse-checkout-cone-mode: false - name: Use Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 with: @@ -200,6 +239,10 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false + sparse-checkout: | + tools/lint-sh.mjs + *.sh + sparse-checkout-cone-mode: false - run: shellcheck -V - name: Lint Shell scripts run: tools/lint-sh.mjs . @@ -210,6 +253,8 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false + sparse-checkout: .github/CODEOWNERS + sparse-checkout-cone-mode: false - uses: mszostok/codeowners-validator@7f3f5e28c6d7b8dfae5731e54ce2272ca384592f with: checks: files,duppatterns @@ -221,6 +266,10 @@ jobs: with: fetch-depth: 2 persist-credentials: false + sparse-checkout: | + tools/lint-pr-url.mjs + doc/api/ + sparse-checkout-cone-mode: false # GH Actions squashes all PR commits, HEAD^ refers to the base branch. - run: git diff HEAD^ HEAD -G"pr-url:" -- "*.md" | ./tools/lint-pr-url.mjs ${{ github.event.pull_request.html_url }} lint-readme: @@ -229,6 +278,10 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false + sparse-checkout: | + README.md + tools/tools/lint-readme-lists.mjs + sparse-checkout-cone-mode: false - name: Get team members if possible if: ${{ (github.event.pull_request && github.event.pull_request.base.ref == github.event.pull_request.base.repo.default_branch) || github.event.ref == github.event.repository.default_branch }} id: team_members From f49c50217cd65813f8a130b9397992d8b602dc50 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 19 Dec 2025 11:40:17 +0100 Subject: [PATCH 2/5] fixup! tools: use sparse-checkout in linter jobs --- .github/workflows/linters.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 752158c6a6fadf..cf916289597e1d 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -193,6 +193,8 @@ jobs: persist-credentials: false sparse-checkout: | Makefile + configure.py + src/node_version.h tools/pip/ *.py sparse-checkout-cone-mode: false @@ -253,8 +255,6 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false - sparse-checkout: .github/CODEOWNERS - sparse-checkout-cone-mode: false - uses: mszostok/codeowners-validator@7f3f5e28c6d7b8dfae5731e54ce2272ca384592f with: checks: files,duppatterns @@ -280,7 +280,7 @@ jobs: persist-credentials: false sparse-checkout: | README.md - tools/tools/lint-readme-lists.mjs + tools/lint-readme-lists.mjs sparse-checkout-cone-mode: false - name: Get team members if possible if: ${{ (github.event.pull_request && github.event.pull_request.base.ref == github.event.pull_request.base.repo.default_branch) || github.event.ref == github.event.repository.default_branch }} From b57bdc5d59b2c33254d8775aa319239b957c4b93 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 19 Dec 2025 11:43:08 +0100 Subject: [PATCH 3/5] fixup! tools: use sparse-checkout in linter jobs --- .github/workflows/linters.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index cf916289597e1d..cce71d8d560600 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -193,9 +193,11 @@ jobs: persist-credentials: false sparse-checkout: | Makefile - configure.py + benchmark/ + doc/ + lib/ src/node_version.h - tools/pip/ + tools/ *.py sparse-checkout-cone-mode: false - name: Set up Python ${{ env.PYTHON_VERSION }} From 1a15a6eaf14cbef31bef00abe5d6750664b3e2f5 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 19 Dec 2025 11:45:40 +0100 Subject: [PATCH 4/5] fixup! tools: use sparse-checkout in linter jobs --- .github/workflows/linters.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index cce71d8d560600..517f470024a5d0 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -192,12 +192,13 @@ jobs: with: persist-credentials: false sparse-checkout: | - Makefile - benchmark/ - doc/ - lib/ - src/node_version.h - tools/ + /Makefile + /benchmark/ + /doc/ + /lib/ + /src/node_version.h + /tools/ + pyproject.toml *.py sparse-checkout-cone-mode: false - name: Set up Python ${{ env.PYTHON_VERSION }} From 095b2f590c15e46811c098daa504c2013f9e7060 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 19 Dec 2025 11:53:16 +0100 Subject: [PATCH 5/5] fixup! tools: use sparse-checkout in linter jobs remove sparse checkout that takes longer --- .github/workflows/linters.yml | 40 ++++++----------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 517f470024a5d0..78344490800cf0 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -28,13 +28,6 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false - sparse-checkout: | - * - !doc/ - !lib/ - !.github/ - !.devcontainer/ - sparse-checkout-cone-mode: false - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: @@ -50,13 +43,6 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false - sparse-checkout: | - * - !doc/ - !lib/ - !.github/ - !.devcontainer/ - sparse-checkout-cone-mode: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 with: @@ -74,13 +60,6 @@ jobs: with: fetch-depth: 0 persist-credentials: false - sparse-checkout: | - * - !doc/ - !lib/ - !.github/ - !.devcontainer/ - sparse-checkout-cone-mode: false - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: @@ -119,13 +98,6 @@ jobs: - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false - sparse-checkout: | - * - !deps/ - !src/ - !.github/ - !.devcontainer/ - sparse-checkout-cone-mode: false - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 with: @@ -220,8 +192,8 @@ jobs: with: persist-credentials: false sparse-checkout: | - Makefile - tools/pip/ + /Makefile + /tools/pip/ *.yml *.yaml sparse-checkout-cone-mode: false @@ -245,7 +217,7 @@ jobs: with: persist-credentials: false sparse-checkout: | - tools/lint-sh.mjs + /tools/lint-sh.mjs *.sh sparse-checkout-cone-mode: false - run: shellcheck -V @@ -270,8 +242,8 @@ jobs: fetch-depth: 2 persist-credentials: false sparse-checkout: | - tools/lint-pr-url.mjs - doc/api/ + /tools/lint-pr-url.mjs + /doc/api/ sparse-checkout-cone-mode: false # GH Actions squashes all PR commits, HEAD^ refers to the base branch. - run: git diff HEAD^ HEAD -G"pr-url:" -- "*.md" | ./tools/lint-pr-url.mjs ${{ github.event.pull_request.html_url }} @@ -283,7 +255,7 @@ jobs: persist-credentials: false sparse-checkout: | README.md - tools/lint-readme-lists.mjs + /tools/lint-readme-lists.mjs sparse-checkout-cone-mode: false - name: Get team members if possible if: ${{ (github.event.pull_request && github.event.pull_request.base.ref == github.event.pull_request.base.repo.default_branch) || github.event.ref == github.event.repository.default_branch }}