목록 보기
뱅크샐러드 Web chapter에서 GitHub Action 기반의 CI 속도를 개선한 방법
데브옵스

뱅크샐러드 Web chapter에서 GitHub Action 기반의 CI 속도를 개선한 방법

뱅크샐러드
뱅크샐러드
2022년 8월 29일

두줄요약

GitHub Action에서 의존성 캐싱과 job 병렬화로 CI 대기 시간을 줄였습니다. 변경 파일 검사와 Nx 영향 분석으로 불필요한 lint·test·build를 줄였습니다.

문제 상황

  • Node.js·npm 기반 CI에서 의존성 설치에 긴 시간 소요
  • lint, test, build의 순차 실행으로 결과 확인 지연 및 앞선 실패에 따른 후속 결과 미확인

해결 방법

  • package-lock.json 해시를 키로 node_modules를 캐싱하고 캐시 미스 때만 npm ci 수행
  • lint, test, build를 별도 job으로 분리해 병렬 실행
  • git diff, Jest changedSince, Nx affected로 변경 또는 영향 범위만 검사·빌드

성능/운영 포인트

  • 의존성 캐싱 후 설치 시간 1분 8초에서 21초 수준으로 단축
  • 변경 파일 대상 검사로 lint 26초, test 2분 18초 감소 사례
  • 브랜치 첫 커밋의 캐시 부재, 캐시 저장 용량·보존 기간, job 증가에 따른 실행 비용 고려

적용해볼 점

  • 순서 의존성이 없는 CI 단계의 병렬 job 구성
  • 모노레포 또는 다중 프로젝트 환경에서 Nx 캐시와 영향 분석 위임

다음 읽기

#GitHub Actions 주제를 이어서 읽기

뱅크샐러드 Web chapter에서 GitHub Action 기반의 CI 속도를 개선한 방법

GitHub Action 기반 CI 속도 개선 사례를 소개한 글입니다. Node.js와 Npm을 사용하는 웹 프론트엔드 환경에서의 개선 맥락을 다룹니다.

뱅크샐러드
뱅크샐러드
데브옵스
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...