Chore: CI/CD 워크플로우 캐시 최적화 - #201
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 30 minutes and 6 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
🎉 구현한 기능 Preview: https://nitrogen-front-pbrorj1s1-ssilver01s-projects.vercel.app |
📝 PR 유형
✅ 작업 목록
문제점
여러 워크플로우에서 pnpm + Node.js 셋업 로직이 중복되고 있었고,
ci.yml의 job들이 순차 실행되어 파이프라인 시간이 불필요하게 길었습니다. 또한actionlint검증 중 보안 취약점과 쉘 문법 이슈가 발견되어 함께 수정했습니다.변경 내용
1. Composite Action 추출 —
.github/actions/setup-node-pnpm/action.yml워크플로우마다 반복되던 pnpm + Node.js 셋업을 composite action으로 추출했습니다.
적용된 워크플로우:
chromatic.yml,ci.yml,pr-preview.yml2.
ci.yml— 병렬 실행 구조로 개선--frozen-lockfile플래그 추가로 lockfile 불일치 감지check-types와lint를 병렬 실행 후build로 합류3.
pr-preview.yml— 패키지 매니저 통일npm→pnpm으로 변경 (프로젝트 전반과 일관성 확보)--frozen-lockfile추가4. 보안 및 쉘 문법 이슈 수정
pr-notification.yml— Script Injection 취약점 차단${{ github.event.pull_request.title }}를 인라인 스크립트에 직접 주입하면, PR 제목에 악성 쉘 명령어가 들어갔을 때 그대로 실행될 위험이 있었습니다.env:블록으로 전달하도록 변경해 환경변수로 처리로 수정했습니다.pr-preview.yml$GITHUB_OUTPUT경로에 공백이 있을 경우 쉘이 단어를 분리해 오동작할 가능성 배제캐시 동작 참고
cache: 'pnpm'설정은 Node.js나 pnpm CLI가 아닌 **~/.pnpm-store(전역 패키지 저장소)**를pnpm-lock.yaml해시 기준으로 캐시~/.pnpm-store패키지병렬 job들은 각 runner에서 독립적으로 같은 캐시를 복원하므로, 패키지를 여러 번 다운로드하지 않습니다.
검증 방법