Skip to content

chore: upgrade pnpm 9 → 12 di CI, Docker build, dan corepack - #15

Merged
anwareset merged 2 commits into
mainfrom
chore/pnpm-12
Aug 29, 2026
Merged

chore: upgrade pnpm 9 → 12 di CI, Docker build, dan corepack#15
anwareset merged 2 commits into
mainfrom
chore/pnpm-12

Conversation

@anwareset

@anwareset anwareset commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Ringkasan

Upgrade pnpm dari 9 ke 12 di semua tempat yang mengunci versi pnpm, plus migrasi ke action resmi untuk pnpm 11+.

Perubahan:

  • .github/workflows/ci.yml + .github/workflows/docker-build.ymlpnpm/action-setup@v4 + actions/setup-node@v5 diganti satu step pnpm/setup@v2 dengan version: next-12, runtime: node@22, cache: true, install: false
  • Dockerfilecorepack prepare pnpm@12corepack prepare pnpm@next-12
  • pnpm-workspace.yaml + AGENTS.md — komentar versi diperbarui

Kenapa pnpm/setup, bukan action-setup?

README resmi pnpm/action-setup: "This action has a successor: pnpm/setup. For pnpm v11 and newer, use pnpm/setup instead... pnpm/action-setup remains the action to use for installing pnpm v10 and older." pnpm 12 adalah native binary (Rust rewrite)pnpm/setup mengunduh self-contained binary langsung dari registry, tidak butuh Node.js/npm untuk menginstalnya, dan bisa install runtime (Node) di step yang sama (menggantikan actions/setup-node).

Kenapa tag next-12, bukan 12?

Dari docs resmi: "latest on npm still points at the pnpm 11 line, so pnpm 12 is installed from the next-12 tag." latest npm masih 11.24.0, jadi instalasi pnpm 12 memakai dist-tag next-12. (Semver range 12 juga resolve ke 12.0.0, tapi next-12 adalah jalur yang direkomendasikan docs.)

Verifikasi

  • pnpm@next-1212.0.0 (dist-tag valid, terverifikasi via npm view)
  • corepack prepare pnpm@next-12 --activate → sukses (exit 0) di corepack 0.29.4 – 0.35.0, termasuk versi yang dibundel Node 22 di node:22-alpine
  • pnpm 12.0.0 punya binary musl (@pnpm/exe.linux-x64-musl + linux-arm64-musl) untuk Alpine
  • pnpm 12 memakai format lockfile pnpm 11 (lockfileVersion: '9.0') — pnpm-lock.yaml tidak berubah
  • pnpm install --frozen-lockfile (pnpm 12.0.0) → sukses; pnpm test206 pass / 0 fail

Catatan

  • install: false di pnpm/setup: step eksplisit pnpm install --frozen-lockfile tetap dipertahankan (perilaku deterministik yang sudah ada).
  • Perubahan hanya file config/CI — tidak ada perubahan kode aplikasi.

@vercel

vercel Bot commented Aug 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
toskd Ready Ready Preview Aug 29, 2026 3:26am

pnpm 12 (Rust rewrite) memakai format lockfile pnpm 11 yang sama
(lockfileVersion '9.0'), jadi --frozen-lockfile tetap valid tanpa
regenerasi lockfile. Update pin versi di:
- ci.yml dan docker-build.yml (pnpm/action-setup version: 12)
- Dockerfile (corepack prepare pnpm@12)
- pnpm-workspace.yaml + AGENTS.md (komentar versi)

Terverifikasi: pnpm 12.0.0, pnpm install --frozen-lockfile sukses
tanpa perubahan lockfile, pnpm test 206/206 pass.
pnpm/action-setup resmi hanya untuk pnpm ≤10; untuk pnpm 11+ (termasuk
12 yang native binary) penggantinya adalah pnpm/setup. Selain itu
latest di npm masih menunjuk pnpm 11, jadi pnpm 12 di-install dari
dist-tag next-12 (docs resmi pnpm.io/installation#installing-pnpm-12).

- ci.yml + docker-build.yml: pnpm/action-setup@v4 + actions/setup-node
  diganti satu step pnpm/setup@v2 (version: next-12, runtime: node@22,
  cache: true, install: false — step install --frozen-lockfile tetap
  eksplisit). setup-node dan corepack enable di runner dihapus.
- Dockerfile: corepack prepare pnpm@12 → pnpm@next-12 (corepack
  0.29.4+ menerima dist-tag; @pnpm/exe punya varian musl utk Alpine).
@anwareset
anwareset merged commit 7fe2ca5 into main Aug 29, 2026
4 checks passed
@anwareset
anwareset deleted the chore/pnpm-12 branch August 29, 2026 03:31
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