feat: first-class pnpm support (#5) #6

Merged
KofTwentyTwo merged 21 commits from feature/GH-5-pnpm-support into develop 2026-04-16 21:40:01 +00:00
KofTwentyTwo commented 2026-03-27 22:01:50 +00:00 (Migrated from github.com)

Summary

  • Rename all npm_* orb jobs/commands/scripts to node_* to reflect multi-package-manager support (npm_auth kept as-is)
  • Thread package_manager parameter through the full job/command/script chain so .munitor.yml package_manager: pnpm drives behavior everywhere
  • Activate pnpm via corepack in install_node.sh with version detection priority: packageManager field > engines field > latest
  • Package-manager-aware dependency install, test fallback, cache keys/paths, and Dockerfile generation
  • Auto-detect Prisma schemas after install and run prisma generate (excludes node_modules/, dist/, build/)
  • Fix test.setup to support inline shell commands (not just file paths)

Breaking changes

All npm_* job/command names renamed to node_*. Consumer repos must regenerate .circleci/config.yml after bumping to the new orb version. The generate_config.sh output uses new names automatically.

Closes #5

Test plan

  • make all passes (219 template tests, 161 extract tests, 147 script tests, 40 Dockerfile tests, 0 failures)
  • pnpm fixture (pnpm-webapp.munitor.yml) generates correct config with package_manager: "pnpm"
  • pnpm Dockerfile variants tested for nextjs, express, and node-webapp
  • Orb validates cleanly (circleci orb validate)
  • Integration test: deploy snapshot orb and run against a real pnpm project (e.g., KofTwentyTwo/praesidium)
## Summary - Rename all `npm_*` orb jobs/commands/scripts to `node_*` to reflect multi-package-manager support (`npm_auth` kept as-is) - Thread `package_manager` parameter through the full job/command/script chain so `.munitor.yml` `package_manager: pnpm` drives behavior everywhere - Activate pnpm via corepack in `install_node.sh` with version detection priority: `packageManager` field > `engines` field > latest - Package-manager-aware dependency install, test fallback, cache keys/paths, and Dockerfile generation - Auto-detect Prisma schemas after install and run `prisma generate` (excludes `node_modules/`, `dist/`, `build/`) - Fix `test.setup` to support inline shell commands (not just file paths) ## Breaking changes All `npm_*` job/command names renamed to `node_*`. Consumer repos must regenerate `.circleci/config.yml` after bumping to the new orb version. The `generate_config.sh` output uses new names automatically. Closes #5 ## Test plan - [x] `make all` passes (219 template tests, 161 extract tests, 147 script tests, 40 Dockerfile tests, 0 failures) - [x] pnpm fixture (`pnpm-webapp.munitor.yml`) generates correct config with `package_manager: "pnpm"` - [x] pnpm Dockerfile variants tested for nextjs, express, and node-webapp - [x] Orb validates cleanly (`circleci orb validate`) - [ ] Integration test: deploy snapshot orb and run against a real pnpm project (e.g., KofTwentyTwo/praesidium)
Sign in to join this conversation.