From 92fee29189a1eb89ca058c615774594f49181fdb Mon Sep 17 00:00:00 2001 From: Russell Dunphy Date: Thu, 1 Oct 2026 22:22:31 +0100 Subject: [PATCH 1/2] Fix CI build setup failing at pnpm store path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The build job has failed at "Get pnpm store directory" since actions/setup-node was bumped to v7: `pnpm store path --silent` now resolves under PNPM_HOME and emits output that `>> $GITHUB_ENV` rejects with "Invalid format". The step sets STORE_PATH, which nothing in any workflow reads — it is left over from a cache step that no longer exists, since `cache: "pnpm"` on setup-node handles the store itself. Removing it rather than repairing it. CI also only triggered on `packages/**`, so it never ran on the action bumps that broke it. Adding its own path so changes to the workflow are validated by it. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/ci.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8b995c7..71ce81b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,10 +12,12 @@ on: branches: [main] paths: - "packages/**" + - ".github/workflows/ci.yml" pull_request: branches: [main] paths: - "packages/**" + - ".github/workflows/ci.yml" jobs: build: @@ -50,11 +52,6 @@ jobs: cache: "pnpm" registry-url: "https://npm.pkg.github.com" - - name: Get pnpm store directory - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV - - name: Install dependencies run: pnpm install --frozen-lockfile env: From 70516969fd4f18fe65fda9046102bc2f2f3ee7d9 Mon Sep 17 00:00:00 2001 From: Russell Dunphy Date: Thu, 1 Oct 2026 22:38:09 +0100 Subject: [PATCH 2/2] Resolve @casekit/unindent from public npm, dropping the PAT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI's install failed with ERR_PNPM_FETCH_401 on @casekit/unindent because secrets.GH_PACKAGES_TOKEN had expired. GitHub Packages npm requires a token for every download, public or private, so that one dependency put an expiring PAT in the path of every install — in CI and locally. unindent was the only non-workspace @casekit dependency, pinned to a GitHub Packages preview build. It is also published to public npm, and 1.0.5 is byte-identical to the pinned preview, so this repoints the registry rather than changing the version. Dropping the @casekit scope registry from .npmrc lets the scope resolve from npmjs, and the PAT comes out of all three workflows' install steps. Publishing is unaffected: each package carries its own publishConfig.registry, and publish-preview authenticates its publish step with GITHUB_TOKEN, which is minted per run and never expires. GH_PACKAGES_TOKEN is now referenced nowhere and can be deleted rather than rotated. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/ci.yml | 4 ---- .github/workflows/deploy-docs.yml | 3 --- .github/workflows/publish-preview.yml | 2 -- .npmrc | 1 - packages/orm-cli/package.json | 2 +- packages/orm-migrate/package.json | 2 +- packages/orm/package.json | 2 +- packages/sql/package.json | 2 +- pnpm-lock.yaml | 22 +++++++++++----------- 9 files changed, 15 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 71ce81b..d0a6951 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,7 +4,6 @@ env: permissions: contents: read - packages: read pull-requests: write on: @@ -50,12 +49,9 @@ jobs: with: node-version-file: ".tool-versions" cache: "pnpm" - registry-url: "https://npm.pkg.github.com" - name: Install dependencies run: pnpm install --frozen-lockfile - env: - NODE_AUTH_TOKEN: ${{ secrets.GH_PACKAGES_TOKEN }} - name: Run tests run: pnpm test diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 525ed1c..b52e19b 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -28,12 +28,9 @@ jobs: with: node-version: 20 cache: pnpm - registry-url: "https://npm.pkg.github.com" - name: Install dependencies run: pnpm install - env: - NODE_AUTH_TOKEN: ${{ secrets.GH_PACKAGES_TOKEN }} - name: Build docs run: pnpm --filter @casekit/orm-docs build diff --git a/.github/workflows/publish-preview.yml b/.github/workflows/publish-preview.yml index 2ebe7ad..6596ace 100644 --- a/.github/workflows/publish-preview.yml +++ b/.github/workflows/publish-preview.yml @@ -32,8 +32,6 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile - env: - NODE_AUTH_TOKEN: ${{ secrets.GH_PACKAGES_TOKEN }} - name: Build packages run: pnpm build diff --git a/.npmrc b/.npmrc index 24586ee..e69de29 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +0,0 @@ -@casekit:registry=https://npm.pkg.github.com diff --git a/packages/orm-cli/package.json b/packages/orm-cli/package.json index a15d1e4..3506579 100644 --- a/packages/orm-cli/package.json +++ b/packages/orm-cli/package.json @@ -11,7 +11,7 @@ "@casekit/orm-migrate": "workspace:*", "@casekit/sql": "workspace:*", "@casekit/toolbox": "workspace:*", - "@casekit/unindent": "0.0.0-gh-packages.634dab0", + "@casekit/unindent": "^1.0.5", "@inquirer/prompts": "^8.2.0", "@inquirer/testing": "^3.0.4", "byline": "^5.0.0", diff --git a/packages/orm-migrate/package.json b/packages/orm-migrate/package.json index 512bd36..1086cf0 100644 --- a/packages/orm-migrate/package.json +++ b/packages/orm-migrate/package.json @@ -16,7 +16,7 @@ "@casekit/orm-fixtures": "workspace:*", "@casekit/prettier-config": "workspace:*", "@casekit/tsconfig": "workspace:*", - "@casekit/unindent": "0.0.0-gh-packages.634dab0", + "@casekit/unindent": "^1.0.5", "@trivago/prettier-plugin-sort-imports": "^5.2.2", "@types/node": "^24.0.3", "@types/pg": "^8.15.4", diff --git a/packages/orm/package.json b/packages/orm/package.json index 6d1970e..984c130 100644 --- a/packages/orm/package.json +++ b/packages/orm/package.json @@ -18,7 +18,7 @@ "@casekit/orm-testing": "workspace:*", "@casekit/prettier-config": "workspace:*", "@casekit/tsconfig": "workspace:*", - "@casekit/unindent": "0.0.0-gh-packages.634dab0", + "@casekit/unindent": "^1.0.5", "@eslint/js": "^9.29.0", "@faker-js/faker": "^10.2.0", "@trivago/prettier-plugin-sort-imports": "^5.2.2", diff --git a/packages/sql/package.json b/packages/sql/package.json index 96664b0..169b1ed 100644 --- a/packages/sql/package.json +++ b/packages/sql/package.json @@ -5,7 +5,7 @@ "author": "", "dependencies": { "@casekit/toolbox": "workspace:*", - "@casekit/unindent": "0.0.0-gh-packages.634dab0", + "@casekit/unindent": "^1.0.5", "es-toolkit": "^1.39.3", "sql-formatter": "^15.6.5" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7252f42..ea85238 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -159,8 +159,8 @@ importers: specifier: workspace:* version: link:../../configs/tsconfig '@casekit/unindent': - specifier: 0.0.0-gh-packages.634dab0 - version: 0.0.0-gh-packages.634dab0 + specifier: ^1.0.5 + version: 1.0.5 '@eslint/js': specifier: ^9.29.0 version: 9.39.2 @@ -225,8 +225,8 @@ importers: specifier: workspace:* version: link:../toolbox '@casekit/unindent': - specifier: 0.0.0-gh-packages.634dab0 - version: 0.0.0-gh-packages.634dab0 + specifier: ^1.0.5 + version: 1.0.5 '@inquirer/prompts': specifier: ^8.2.0 version: 8.2.0(@types/node@24.10.9) @@ -466,8 +466,8 @@ importers: specifier: workspace:* version: link:../../configs/tsconfig '@casekit/unindent': - specifier: 0.0.0-gh-packages.634dab0 - version: 0.0.0-gh-packages.634dab0 + specifier: ^1.0.5 + version: 1.0.5 '@trivago/prettier-plugin-sort-imports': specifier: ^5.2.2 version: 5.2.2(@vue/compiler-sfc@3.5.19)(prettier-plugin-svelte@3.4.1(prettier@3.8.0)(svelte@5.8.1))(prettier@3.8.0)(svelte@5.8.1) @@ -615,8 +615,8 @@ importers: specifier: workspace:* version: link:../toolbox '@casekit/unindent': - specifier: 0.0.0-gh-packages.634dab0 - version: 0.0.0-gh-packages.634dab0 + specifier: ^1.0.5 + version: 1.0.5 es-toolkit: specifier: ^1.39.3 version: 1.44.0 @@ -1404,8 +1404,8 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} - '@casekit/unindent@0.0.0-gh-packages.634dab0': - resolution: {integrity: sha512-AMx0+IWrJ/X/FSA9AZaTy2zPxw7+RnMDeKwMxyVPY3SUy9wgdONXYYM7hv/OqUi/anihgXV/KogxjQTRUnw87Q==, tarball: https://npm.pkg.github.com/download/@casekit/unindent/0.0.0-gh-packages.634dab0/861c611f7b508405a826466b356d95fae584f86a} + '@casekit/unindent@1.0.5': + resolution: {integrity: sha512-psC2hzmmgBh76EHWTKiLXP6LDZjyBmdCLND/in/7q+asW83wjRRANUUfL9zOzIC6R1sxbR29X9b0VGBOomK5Mg==} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -8313,7 +8313,7 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} - '@casekit/unindent@0.0.0-gh-packages.634dab0': {} + '@casekit/unindent@1.0.5': {} '@colors/colors@1.5.0': optional: true