GIthub Actions 속도 개선

ejoo·2024년 9월 29일

Github Actions 종속성 캐싱으로 빌드 속도 향상

  1. 테스트 병렬화
    GitHub Actions에서 matrix 전략을 사용하여 테스트를 병렬로 실행해 전체 테스트 시간을 단축
    Junit은 Surefire 또는 Failsafe 플러그인 설정을 수정하여 테스트를 병렬로 실행

  2. 캐시 활용
    GitHub Actions에서 actions/cache를 사용하여 종속성 및 빌드 결과를 캐싱

  3. 테스트 스코프 줄이기
    CI에서 전체 테스트를 매번 실행하지 않도록 설정하고, 변경된 부분만 테스트하는 방식으로 설정
    (git diff 명령어를 사용하여 변경된 파일만 테스트하도록 구성)

  4. 테스트 환경 최적화
    Docker Compose에서 MySQL과 같은 데이터베이스 컨테이너를 사용할 때, MySQL의 Dockerfile 설정에서 innodb_buffer_pool_size 등을 조정하여 테스트 시 데이터베이스 성능을 최적화
    Nginx, Certbot을 테스트 시 굳이 실행할 필요가 없다면 해당 컨테이너들을 제외하고 실행

  5. Spring Boot 테스트 속도 개선
    Spring Boot에서 @SpringBootTest 대신 @WebMvcTest, @DataJpaTest와 같은 슬라이스 테스트를 사용하여 특정 영역만 테스트
    test와 integrationTest를 분리하여 CI에서는 test만 실행하고, integrationTest는 특정 조건에서만 실행하도록 구성

  6. 멀티스테이지 빌드 (Multi-stage Build) 사용
    Docker의 멀티스테이지 빌드를 사용하여 빌드 환경과 실행 환경을 분리

profile
안녕하세요

0개의 댓글