Python 2.7 CI 테스트 시간, 13분에서 3분으로

by DD
5개월 전
조회수 12

Python 2.7 기반 CI 테스트의 13분 소요 문제를 해결하기 위해 불필요한 작업 제거 및 캐싱 전략을 도입함

Docker Image 활용, PowerShell 제거, APT/pip 캐싱을 통해 테스트 환경을 최적화함

결과적으로 CI 테스트 시간을 13분에서 3분으로 75% 단축하여 개발 생산성을 향상시킴

CI 파이프라인 병목 현상 분석

CI 파이프라인의 실행 시간 13분의 주된 원인은 ci-test 단계의 과도한 시간 소요였다. 구체적으로 Python 2.7 빌드, 불필요한 패키지 설치, 중복 테스트 실행이 문제로 지적되었다. 따라서 불필요한 작업을 제거하고, 캐싱 전략을 도입하여 전체 CI 시간 단축을 목표로 했다.

캐싱 전략을 통한 CI 성능 개선

GitHub Actions 환경에서 APT 및 pip 패키지 캐싱을 위해 $GITHUB_WORKSPACE 경로를 활용했다. APT 캐시는 다운로드 전용으로 설정하고, pip 패키지는 설치된 site-packages를 캐싱하여 불필요한 설치 시간을 줄였다. 반면, MySQL 테스트는 tmpfs를 사용하여 디스크 I/O 병목 현상을 해결했다.

Pre-built Docker 이미지 활용

궁극적인 CI 시간 단축을 위해 Pre-built Docker 이미지를 활용하는 방안을 제시했다. Dockerfile.ci를 통해 필요한 모든 패키지를 미리 설치하고, CI 워크플로우에서 해당 이미지를 사용한다. 따라서 패키지 설치 단계 자체를 제거하여 더욱 빠른 CI 환경을 구축하고, Python 2.7 환경의 한계를 극복할 수 있다.

Python 2.7 서버의 CI Test 개선 - 13분에서 3분으로