피드로 돌아가기
Dev.toDevOps
원문 읽기
pnpm store-dir 명시적 설정을 통한 CI 빌드 시간 40분에서 8분으로 단축
pnpm workspaces: the CI cache that survived the fix and cost me 40 minutes per build
AI 요약
Context
GitHub Actions 환경에서 pnpm workspaces 기반 monorepo를 운용하며 캐시 미스로 인한 빌드 지연 발생. setup-node의 기본 pnpm 캐시 설정이 root 레벨의 node_modules만 처리하여 각 workspace의 symlink 구조를 반영하지 못하는 한계 노출.
Technical Solution
- PNPM_STORE_PATH 환경 변수를 통한 store 경로의 고정으로 actions/cache의 일관된 매칭 보장
- pnpm config set store-dir 명령을 통한 런타임 내 store 경로 명시적 지정
- root 및 모든 하위 workspace의 lockfile을 포함하는 **/pnpm-lock.yaml glob 패턴 적용으로 캐시 무효화 전략 정밀화
- actions/cache@v4를 이용한 store-dir 직접 캐싱으로 node_modules 재생성 오버헤드 제거
- 정적 경로 기반의 restore-keys 설정을 통한 점진적 캐시 복구 메커니즘 구현
실천 포인트
- setup-node의 cache: 'pnpm' 옵션 대신 store-dir를 직접 제어하는 수동 캐싱 전략 검토 - monorepo 내 모든 lockfile의 변경 사항을 감지하도록 hashFiles 패턴 설정 - CI 성공 여부(Green check) 외에 실제 빌드 타임 수치를 트래킹하여 캐시 효율성 검증