Runtime 골라, 버전 잠가
Node 는 활성 runtime 세 개: Node.js (클래식), Deno, Bun. 대부분 prod 앱은 아직 Node.js. 패키지 매니저: npm (기본), pnpm (빠름, content-addressed), yarn (아직 있음), bun (엄청 빠르고 runtime 도 됨).
Default Node CI 모양:
- Checkout.
actions/setup-node@v4+ pinned version + 패키지 매니저 cache.npm ci(또는pnpm install --frozen-lockfile,yarn install --immutable,bun install) — lockfile 에서 깨끗 재현 가능 install.- Lint:
eslint나biome. - Type check:
tsc --noEmit. - Test:
vitest run,jest, 또는node --test.
흔한 함정
- CI 에서
npm install은 틀려 — lockfile 을 조용히 업데이트할 수 있어.npm ci써. actions/setup-node의 기본 cache key 는 lockfile hash. Monorepo 에 lockfile 여러 개면cache-dependency-path:명시.- Matrix cell 마다 별도
npm install돌리지 마 — 버전이 다르지 않으면 matrix 간에 install 공유.