From 373adb4157368b2c80082bccbfce864113b36113 Mon Sep 17 00:00:00 2001 From: dangreen Date: Tue, 6 Oct 2026 19:33:09 +0400 Subject: [PATCH 1/2] build: update Node.js to v26 Pin Node.js 26.10.0 in `.tool-versions` and make every CI job read it. The unit job also runs on Node.js 22, the floor of `engines`, which stays as it is. --- .github/workflows/checks.yml | 2 +- .github/workflows/commit.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/tests.yml | 18 +++++++++++++----- .github/workflows/website.yml | 2 +- .tool-versions | 2 +- 6 files changed, 18 insertions(+), 10 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 8628ff2..3f4ace0 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -25,7 +25,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v7 with: - node-version: 22 + node-version-file: .tool-versions cache: 'pnpm' - name: Check package.json files run: pnpm --package=@trigen/lint-package-json dlx lint-package-json --monorepo diff --git a/.github/workflows/commit.yml b/.github/workflows/commit.yml index 5cc2056..f6f34d1 100644 --- a/.github/workflows/commit.yml +++ b/.github/workflows/commit.yml @@ -17,7 +17,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v7 with: - node-version: 22 + node-version-file: .tool-versions cache: 'pnpm' - name: Install dependencies run: pnpm install diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ad9e533..f4da874 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -71,7 +71,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v7 with: - node-version: 24 + node-version-file: .tool-versions cache: 'pnpm' - name: Install dependencies run: pnpm install diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 56dceb8..013d2b3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,7 +18,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v7 with: - node-version: 22 + node-version-file: .tool-versions cache: 'pnpm' - name: Install dependencies run: pnpm install @@ -37,7 +37,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v7 with: - node-version: 22 + node-version-file: .tool-versions cache: 'pnpm' - name: Install dependencies run: pnpm install @@ -45,7 +45,13 @@ jobs: run: pnpm lint unit: runs-on: ubuntu-latest - name: unit + name: unit (${{ matrix.node-version || '.tool-versions' }}) + strategy: + matrix: + # The least Node.js the packages declare, and the one the repository is developed on + include: + - node-version: 22 + - node-version-file: .tool-versions steps: - name: Checkout the repository uses: actions/checkout@v7 @@ -56,14 +62,16 @@ jobs: - name: Install Node.js uses: actions/setup-node@v7 with: - node-version: 22 + node-version: ${{ matrix.node-version }} + node-version-file: ${{ matrix.node-version-file }} cache: 'pnpm' - name: Install dependencies run: pnpm install - name: Run tests run: pnpm test:unit + # One upload per commit, from the leg of the version the repository is developed on - name: Collect coverage uses: coverallsapp/github-action@main - if: success() + if: success() && matrix.node-version-file with: fail-on-error: false diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 2d95ff8..f58713b 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -27,7 +27,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v7 with: - node-version: 22 + node-version-file: .tool-versions cache: 'pnpm' - name: Install dependencies run: pnpm install diff --git a/.tool-versions b/.tool-versions index 581237a..aa08355 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ pnpm 11.9.0 -nodejs 22.23.0 +nodejs 26.10.0 From 2f889465f77507c089fc0a63f44a38bb3c231064 Mon Sep 17 00:00:00 2001 From: dangreen Date: Tue, 6 Oct 2026 19:36:07 +0400 Subject: [PATCH 2/2] build: update pnpm to v12 Pin pnpm 12.9.1 and ask CI for pnpm 12. Settings need no migration from pnpm 11. The lockfile records `linkDirectory: false` of the 8 packages that set it, which a frozen install of pnpm 12 checks, and pnpm 12 finds it up to date with that alone. --- .github/workflows/checks.yml | 2 +- .github/workflows/commit.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/tests.yml | 6 +++--- .github/workflows/website.yml | 2 +- .tool-versions | 2 +- pnpm-lock.yaml | 8 ++++++++ 7 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 3f4ace0..b633dde 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -21,7 +21,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v6 with: - version: 11.11.0 + version: 12 - name: Install Node.js uses: actions/setup-node@v7 with: diff --git a/.github/workflows/commit.yml b/.github/workflows/commit.yml index f6f34d1..d19de9d 100644 --- a/.github/workflows/commit.yml +++ b/.github/workflows/commit.yml @@ -13,7 +13,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v6 with: - version: 11.11.0 + version: 12 - name: Install Node.js uses: actions/setup-node@v7 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f4da874..0890da3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -67,7 +67,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v6 with: - version: 11.11.0 + version: 12 - name: Install Node.js uses: actions/setup-node@v7 with: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 013d2b3..b953082 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,7 +14,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v6 with: - version: 11.11.0 + version: 12 - name: Install Node.js uses: actions/setup-node@v7 with: @@ -33,7 +33,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v6 with: - version: 11.11.0 + version: 12 - name: Install Node.js uses: actions/setup-node@v7 with: @@ -58,7 +58,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v6 with: - version: 11.11.0 + version: 12 - name: Install Node.js uses: actions/setup-node@v7 with: diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index f58713b..f4db589 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -23,7 +23,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v6 with: - version: 11.11.0 + version: 12 - name: Install Node.js uses: actions/setup-node@v7 with: diff --git a/.tool-versions b/.tool-versions index aa08355..23dfdeb 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -pnpm 11.9.0 +pnpm 12.9.1 nodejs 26.10.0 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index edbe596..8231689 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -89,6 +89,7 @@ importers: find-up-simple: specifier: ^1.0.1 version: 1.0.1 + linkDirectory: false publishDirectory: package packages/core: @@ -139,6 +140,7 @@ importers: test: specifier: workspace:^ version: link:../test + linkDirectory: false publishDirectory: package packages/github: @@ -153,6 +155,7 @@ importers: test: specifier: workspace:^ version: link:../test + linkDirectory: false publishDirectory: package packages/github-action: @@ -179,6 +182,7 @@ importers: test: specifier: workspace:^ version: link:../test + linkDirectory: false publishDirectory: package packages/node-gha: @@ -199,6 +203,7 @@ importers: test: specifier: workspace:^ version: link:../test + linkDirectory: false publishDirectory: package packages/npm: @@ -216,6 +221,7 @@ importers: test: specifier: workspace:^ version: link:../test + linkDirectory: false publishDirectory: package packages/pnpm: @@ -236,6 +242,7 @@ importers: test: specifier: workspace:^ version: link:../test + linkDirectory: false publishDirectory: package packages/simple-github-release: @@ -264,6 +271,7 @@ importers: picocolors: specifier: ^1.0.0 version: 1.1.1 + linkDirectory: false publishDirectory: package packages/test: