8가지 레버
CI 속도를 높이려면 대략적인 우선순위에 따라 다음 항목 중 하나 이상을 공략해:
- 작업 병렬화 — 독립적인 작업을 병렬 작업으로 나눠 실제 소요 시간을 줄여.
- 적극적인 캐싱 — 설치, 빌드 출력값, Docker 레이어, 모델 가중치를 캐싱해.
- 더 큰 러너 사용 — CPU 바운드 단계에서 코어를 두 배로 늘리면 시간이 절반으로 줄 때가 많아. 비용은 선형으로 늘고 시간은 그보다 덜 늘면? 승리지.
- 해당 없는 건 건너뛰기 — 경로 필터와 조건부 작업을 활용해.
- 동시 실행에서 진행 중인 작업 취소 — 오래된 실행을 중단해.
- PR에 더 작은 테스트 묶음 적용 — PR에서는 스모크 테스트만, main에서는 전체 테스트를 돌려.
- 더 빠른 설치 도구 — uv와 pip, pnpm과 npm, 캐시된 docker buildx를 비교해 봐.
- 테스트 분할 — 느린 테스트 묶음을 러너들에 나눠서 돌려.
추측 말고 측정해
최적화하기 전에 실행 타임라인부터 봐. 가장 오래 걸리는 단계가 최적화 후보야. GitHub 실행 페이지에서 단계별 소요 시간을 보여주고, gh run view --log로 원본 타이밍을 확인할 수 있어. 가장 안 좋은 부분을 최적화하고, 다시 측정하고, 반복해.