From c7b9dc352f49e8a9c782ad51ff592a4795379f6a Mon Sep 17 00:00:00 2001 From: Alex Schokking Date: Sat, 3 Oct 2026 14:13:01 -0700 Subject: [PATCH] Fix broken Pages deploy and gate PRs with a build pnpm-workspace.yaml had an allowBuilds key but no packages field. That is a pnpm 10+ shaped file, while both workflows pin pnpm 9, where a workspace file without packages is invalid - pnpm 9 fails on any command, including the "pnpm store path" that setup-node runs for cache: pnpm. Every Deploy run since 2026-08-14 failed in Setup Node.js before building anything, so the site has not published in weeks. Adding the packages field makes the file valid for pnpm 9 while keeping the esbuild allowance for newer pnpm. Verified locally: store path, install --frozen-lockfile and docs:build all pass under both pnpm 9.15.9 and 12.8.1, and the lockfile is unchanged. Also adds a CI workflow so PRs are built before merge instead of discovering breakage on main. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/ci.yml | 41 ++++++++++++++++++++++++++++++++++++++++ pnpm-workspace.yaml | 3 +++ 2 files changed, 44 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..7e80e59 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,41 @@ +name: CI + +on: + pull_request: + branches: [main] + workflow_dispatch: + +# A newer push to the same PR makes the in-flight run pointless. +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + build: + name: Build docs + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + # VitePress fails the build on dead internal links, so this also + # catches links to pages that do not exist. + - name: Build + run: pnpm docs:build diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5ed0b5a..03cbbe5 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,5 @@ +packages: + - . + allowBuilds: esbuild: true