Pinterest, Android CI 빌드 시간 36% 단축 성공!

by DD
6개월 전
조회수 4

Android E2E 테스트의 느린 CI 빌드 시간 문제를 해결하기 위해 EC2 기반 에뮬레이터를 활용한 자체 테스트 플랫폼을 구축함

과거 실행 시간을 기반으로 하는 런타임 기반의 테스트 샤딩 메커니즘을 개발하여 테스트 실행 시간을 균등하게 분배함

그 결과, 빌드 시간 36% 단축, 가장 느린 샤드 실행 시간 55% 감소 및 개발자 생산성 향상

런타임 기반 샤딩의 원리

Pinterest는 과거 테스트 실행 시간 데이터를 활용하여 각 테스트에 예상 실행 시간을 할당한다. Greedy 알고리즘을 통해 각 샤드에 테스트를 분배하여, 모든 샤드가 비슷한 시간 내에 완료되도록 설계했다. 따라서 테스트 병렬 실행의 효율성을 극대화하고, 전체 빌드 시간 단축을 달성했다.

FTL vs 자체 테스트 플랫폼

FTL(Firebase Test Lab)은 초기 설정 시간 및 인프라 불안정성으로 인해 빌드 시간 증가의 원인이 되었다. 자체 테스트 플랫폼 구축을 통해 에뮬레이터 제어테스트 샤딩을 직접 관리할 수 있게 되었다. 반면, 자체 플랫폼 구축은 초기 개발 비용유지보수 부담을 수반한다.

CI/CD 파이프라인 적용 가이드

Pinterest는 Buildkite를 활용하여 CI/CD 파이프라인을 구축하고, Metro를 통해 테스트 결과를 관리한다. 런타임 기반 샤딩 알고리즘을 적용하여, 테스트 실행 시간을 예측하고, 플래키 테스트를 처리한다. 따라서, 지속적인 테스트 결과 분석을 통해 CI/CD 파이프라인의 효율성을 개선해야 한다.

Slashing CI Wait Times: How Pinterest Cut Android Testing Build Times by 36%+

댓글 0

첫 번째 댓글을 남겨보세요!