From d2a03337a6e58e24c6888935c1c60c77b43e25c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A9stor?= Date: Wed, 14 Oct 2026 11:12:45 +0200 Subject: [PATCH] ci: fix main workflow compatibility - Drop Node 22 from the CI matrix and remove the unused pnpm executable lock entry - Update release workflow contract checks for GitHub App tokens --- .github/workflows/ci.yml | 2 +- pnpm-lock.yaml | 25 ------------------------- test/release-contracts.test.mjs | 7 ++++--- 3 files changed, 5 insertions(+), 29 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1ce0e02..b3f36c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: strategy: fail-fast: false matrix: - node: ["22.18.0", "24", "26"] + node: ["24", "26"] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9894b07..8321988 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,9 +6,6 @@ importers: .: configDependencies: {} packageManagerDependencies: - '@pnpm/exe': - specifier: 12.9.1 - version: 12.9.1 pnpm: specifier: 12.9.1 version: 12.9.1 @@ -92,11 +89,6 @@ packages: cpu: [x64] os: [win32] - '@pnpm/exe@12.9.1': - resolution: {integrity: sha512-TZOVvYq8nwzmw8IR3P1GKZk87tV7vDPCT3oJlL7IhgYNZfLGov4jX0J8RJxuAXxIT3uxg/uiconrLLBv+X5KyA==} - engines: {node: '>=18.*'} - hasBin: true - pnpm@12.9.1: resolution: {integrity: sha512-BrBV//XNINwSeB3hc87TMQzglRvy7GICEaFgRdVETVyTpmMhB2TvKaZTphBFm6A2jw50+E2AxUcjz5Wq57wNbQ==} engines: {node: '>=18.*'} @@ -146,23 +138,6 @@ snapshots: '@pnpm/exe.win32-x64@12.9.1': optional: true - '@pnpm/exe@12.9.1': - optionalDependencies: - '@pnpm/exe.android-arm64': 12.9.1 - '@pnpm/exe.android-x64': 12.9.1 - '@pnpm/exe.darwin-arm64': 12.9.1 - '@pnpm/exe.darwin-x64': 12.9.1 - '@pnpm/exe.freebsd-x64': 12.9.1 - '@pnpm/exe.linux-arm64': 12.9.1 - '@pnpm/exe.linux-arm64-musl': 12.9.1 - '@pnpm/exe.linux-ppc64': 12.9.1 - '@pnpm/exe.linux-riscv64': 12.9.1 - '@pnpm/exe.linux-s390x': 12.9.1 - '@pnpm/exe.linux-x64': 12.9.1 - '@pnpm/exe.linux-x64-musl': 12.9.1 - '@pnpm/exe.win32-arm64': 12.9.1 - '@pnpm/exe.win32-x64': 12.9.1 - pnpm@12.9.1: optionalDependencies: '@pnpm/exe.android-arm64': 12.9.1 diff --git a/test/release-contracts.test.mjs b/test/release-contracts.test.mjs index ec24ef7..8973a6a 100644 --- a/test/release-contracts.test.mjs +++ b/test/release-contracts.test.mjs @@ -663,7 +663,7 @@ test("CI uses Node versions supported by the package build toolchain", () => { const supportedNode = "^22.18.0 || ^24.11.0 || >=26.0.0"; assert.equal(rootPackageJson.engines.node, supportedNode); assert.equal(packageJson.engines.node, supportedNode); - assert.match(ciWorkflow, /node: \["22\.18\.0", "24", "26"\]/); + assert.match(ciWorkflow, /node: \["24", "26"\]/); assert.doesNotMatch(ciWorkflow, /22\.12\.0/); }); @@ -718,8 +718,9 @@ test("release-please output passes the format gate in release PRs and publishes" }); test("release-please releases trigger the trusted publish workflow", () => { - // Releases created with GITHUB_TOKEN do not start other workflows. - assert.match(releasePleaseWorkflow, /token: \$\{\{ secrets\.REPO_SCOPED_TOKEN \}\}/); + // Releases created with GITHUB_TOKEN do not start other workflows, so release-please uses an app token. + assert.match(releasePleaseWorkflow, /uses: actions\/create-github-app-token@/); + assert.match(releasePleaseWorkflow, /token: \$\{\{ steps\.app-token\.outputs\.token \}\}/); assert.match(releaseWorkflow, /release:\n\s+types: \[published\]/); assert.doesNotMatch(releaseWorkflow, /changeset/i); assert.equal(existsSync(join(root, ".changeset")), false);