From ec02c5bc2539e401b52ccf63fa5199338c2da142 Mon Sep 17 00:00:00 2001 From: anwareset Date: Sat, 29 Aug 2026 10:12:00 +0700 Subject: [PATCH 1/2] =?UTF-8?q?chore:=20upgrade=20pnpm=209=20=E2=86=92=201?= =?UTF-8?q?2=20di=20CI,=20Docker=20build,=20dan=20corepack?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .github/workflows/ci.yml | 2 +- .github/workflows/docker-build.yml | 2 +- AGENTS.md | 2 +- Dockerfile | 4 ++-- pnpm-workspace.yaml | 7 ++++--- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 54dbd01..fac89eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 with: - version: 9 + version: 12 - name: Setup Node.js uses: actions/setup-node@v5 diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index d9d79f7..3c5f3d5 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -43,7 +43,7 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@v4 with: - version: 9 + version: 12 - name: Enable pnpm run: corepack enable diff --git a/AGENTS.md b/AGENTS.md index 70e9448..4dccff6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -91,7 +91,7 @@ toskd/ │ └── test-admin-password-change.mjs # Ganti kata sandi admin: 401/OPTIONS/validasi 400/min-8/new==current/404/500 + hash bcrypt ter-update + sesi tetap valid + edge multi-tab (mock PostgREST stateful mutatif) ├── schema.sql # Skema database Supabase (termasuk tabel admins + option_scores + subtests + subtest_thresholds) ├── supabase/ # Supabase CLI: config.toml + migrations/ (8 file: 000-007) + seed.sql (di-track sejak 2026-08-15) -├── pnpm-workspace.yaml # Config pnpm: packages ["."] (kompat pnpm 9) + allowBuilds protobufjs (pnpm 10+/11) +├── pnpm-workspace.yaml # Config pnpm: packages ["."] (kompat pnpm 12) + allowBuilds protobufjs (pnpm 10+) ├── Dockerfile # Multi-stage Docker build (node:22-alpine, non-root, tini init, HEALTHCHECK) ├── docker-compose.yaml # Self-host: service toskd di network eksternal net1 (Caddy reverse-proxy), env dari .env.container ├── .dockerignore # Exclude unnecessary or sensitive files diff --git a/Dockerfile b/Dockerfile index d941add..6d32139 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,13 +5,13 @@ FROM node:22-alpine AS deps ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable && corepack prepare pnpm@9 --activate +RUN corepack enable && corepack prepare pnpm@12 --activate WORKDIR /app # Cache pnpm store across builds (BuildKit required) # pnpm-workspace.yaml ikut di-copy: memuat allowBuilds protobufjs (dibutuhkan -# pnpm 10+/11; pnpm 9 mengabaikannya dengan aman — single-package workspace). +# pnpm 10+/12; pnpm 9 mengabaikannya — single-package workspace). COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ pnpm install --frozen-lockfile --prod diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b0eb767..f2e3fbc 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,11 +1,12 @@ # pnpm workspace config. -# - `packages: ["."]` wajib ada agar pnpm 9 (Dockerfile + CI) tetap mengenali +# - `packages: ["."]` wajib ada agar pnpm (CI + Dockerfile) tetap mengenali # project ini sebagai single-package workspace tanpa error # "packages field missing or empty". -# - `allowBuilds: protobufjs: true` diperlukan pnpm 10+/11 (local dev): +# - `allowBuilds: protobufjs: true` diperlukan pnpm 10+/12 (CI + Dockerfile, +# termasuk local dev): # protobufjs@7 butuh postinstall utk dipakai eksporter OTLP protobuf # (ter-bundle di @opentelemetry/sdk-node → exporter-*-otlp-proto). -# Tanpa ini pnpm 11 menganggap build di-ignore dan +# Tanpa ini pnpm menganggap build di-ignore dan # `pnpm install`/`pnpm test` (deps status check) gagal dengan # ERR_PNPM_IGNORED_BUILDS. packages: From 9644594ca80a033121a62ae2c9805076924ee2b3 Mon Sep 17 00:00:00 2001 From: anwareset Date: Sat, 29 Aug 2026 10:23:06 +0700 Subject: [PATCH 2/2] ci: migrasi ke pnpm/setup@v2 + tag next-12 untuk pnpm 12 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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). --- .github/workflows/ci.yml | 15 ++++++--------- .github/workflows/docker-build.yml | 17 ++++++----------- Dockerfile | 3 ++- 3 files changed, 14 insertions(+), 21 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fac89eb..664a561 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,16 +16,13 @@ jobs: - name: Checkout uses: actions/checkout@v5 - - name: Setup pnpm - uses: pnpm/action-setup@v4 + - name: Setup pnpm + Node.js + uses: pnpm/setup@v2 with: - version: 12 - - - name: Setup Node.js - uses: actions/setup-node@v5 - with: - node-version: 22 - cache: pnpm + version: next-12 + runtime: node@22 + cache: true + install: false - name: Install dependencies run: pnpm install --frozen-lockfile diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 3c5f3d5..6d771e0 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -21,10 +21,13 @@ jobs: - name: Checkout uses: actions/checkout@v5 - - name: Setup Node.js - uses: actions/setup-node@v5 + - name: Setup pnpm + Node.js + uses: pnpm/setup@v2 with: - node-version: 22 + version: next-12 + runtime: node@22 + cache: true + install: false - name: Validate release tag env: @@ -40,14 +43,6 @@ jobs: exit 1 fi - - name: Setup pnpm - uses: pnpm/action-setup@v4 - with: - version: 12 - - - name: Enable pnpm - run: corepack enable - - name: Install dependencies run: pnpm install --frozen-lockfile diff --git a/Dockerfile b/Dockerfile index 6d32139..56b45f6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,13 +5,14 @@ FROM node:22-alpine AS deps ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable && corepack prepare pnpm@12 --activate +RUN corepack enable && corepack prepare pnpm@next-12 --activate WORKDIR /app # Cache pnpm store across builds (BuildKit required) # pnpm-workspace.yaml ikut di-copy: memuat allowBuilds protobufjs (dibutuhkan # pnpm 10+/12; pnpm 9 mengabaikannya — single-package workspace). +# pnpm 12 di-install dari tag next-12 (latest npm masih menunjuk pnpm 11). COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ pnpm install --frozen-lockfile --prod