Skip to content

Pin pnpm version in CI - #12

Merged
ndbroadbent merged 1 commit into
mainfrom
fix-frontend-ci
Aug 13, 2026
Merged

Pin pnpm version in CI#12
ndbroadbent merged 1 commit into
mainfrom
fix-frontend-ci

Conversation

@ndbroadbent

@ndbroadbent ndbroadbent commented Aug 13, 2026

Copy link
Copy Markdown
Member

Follow-up to #11. The Lint and Next.js Site Tests jobs have been failing independently of the Rails work.

Cause

Both workflows asked pnpm's setup action for version: latest, so CI silently jumped to pnpm 11 while local development stays on 10.18.3. pnpm 11 removed onlyBuiltDependencies in favor of a new allowBuilds map, which means the approval list already committed in docs/pnpm-workspace.yaml:

onlyBuiltDependencies:
  - '@tailwindcss/oxide'
  - sharp
  - unrs-resolver

was no longer a recognized setting. pnpm 11 then treated those same three packages as unapproved and hard-failed every install with ERR_PNPM_IGNORED_BUILDS.

So this was never a missing approval — the approvals were there, under a name the new major stopped reading.

Fix

Pin pnpm to 10.18.3, the version used locally. CI becomes reproducible and verifies what developers actually run, instead of drifting onto a new major on its own.

Migrating to pnpm 11 instead would mean rewriting that config as allowBuilds and upgrading local Node first — pnpm 11 requires Node >= 22.13 and this machine runs 22.6.0. Worth doing deliberately, not as a side effect of a CI fix.

Verification

Every step in both jobs was run locally, including the ones that never got past the install:

Step Result
pnpm install --frozen-lockfile (root + docs) pass
CSpell dictionary generation + spellcheck pass
Changelog version check pass
Prettier --check pass
tapioca gems --verify / dsl --verify pass, no RBI drift
RuboCop, Sorbet typecheck pass
jscpd pass, 0 clones
Struct export, tsc --noEmit, docs Jest suite pass, 28 tests

Summary by CodeRabbit

  • Chores
    • Standardized the package manager version used by documentation deployment and testing workflows.
    • Improved build and verification consistency by using a fixed package manager version.

The workflows asked for `version: latest`, so CI silently moved to pnpm 11
while local development stays on 10.18.3. pnpm 11 removed the
`onlyBuiltDependencies` setting in favor of `allowBuilds`, so the approval
list in docs/pnpm-workspace.yaml no longer registered and every install
failed with ERR_PNPM_IGNORED_BUILDS for @tailwindcss/oxide, sharp, and
unrs-resolver.

Pinning to the version used locally keeps CI reproducible and lets it
verify what developers actually run. pnpm 11 also requires Node >= 22.13,
so adopting it would mean upgrading local toolchains first.
@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 586c3b12-ad16-4098-b711-20a245d40135

📥 Commits

Reviewing files that changed from the base of the PR and between b717039 and 5deb1ea.

📒 Files selected for processing (2)
  • .github/workflows/deploy-docs.yml
  • .github/workflows/test.yml

Walkthrough

The documentation deployment, lint, and documentation test workflows now pin pnpm to version 10.18.3 instead of using latest.

Changes

pnpm CI version pinning

Layer / File(s) Summary
Pin pnpm across workflow jobs
.github/workflows/deploy-docs.yml, .github/workflows/test.yml
The workflows use pnpm 10.18.3 for documentation deployment, lint, and documentation test jobs.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Mergeability Score: ⚪ Minimal · up to 5deb1

Pinning pnpm to the locally used version in both CI workflows removes version drift without introducing an actionable merge-blocking risk; the PR is merge-ready after normal checks and review.

Poem

I’m a rabbit with a tidy CI lane,
pnpm stays fixed through sun and rain.
10.18.3 hops in place,
Steady builds now win the race.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: pinning the pnpm version in CI workflows.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix-frontend-ci

Comment @coderabbitai help to get the list of available commands.

@ndbroadbent
ndbroadbent merged commit a356c64 into main Aug 13, 2026
8 checks passed
@ndbroadbent
ndbroadbent deleted the fix-frontend-ci branch August 13, 2026 06:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant