글

라벨이 GitHub Actions인 게시물 표시

pytest 병렬 실행, pytest-split 잡 개수 정하는 법

이미지
3줄 요약 테스트를 잡으로 쪼개면 파이프라인이 빨라지지만, 어느 지점부터는 벽시계가 거의 안 줄고 청구 분만 늘어납니다. 200개·232초짜리 스위트를 실측한 결과 잡 4개에서 벽시계 120초, 8개에서 90초였고 청구는 8분에서 16분으로 정확히 2배였습니다. 잡 고정비를 60초로 잡았을 때입니다. 잡 수 상한을 전체 테스트 시간 ÷ 잡 고정비 로 먼저 계산하시고, 그 값을 넘기지 않는 선에서 --splitting-algorithm least_duration 을 붙이시면 됩니다.

GitHub Actions fail-fast 끄기 전에 확인할 것

이미지
3줄 요약 fail-fast 는 기본값이 true 라 매트릭스 한 칸이 실패하면 진행 중·대기 중 잡이 전부 취소되고, 취소된 잡은 리포트를 남기지 않습니다. 잡 실행 시간의 절반 지점에서 실패가 난다고 보면, 한 런에서 서로 다른 실패 원인이 2개 이상 나오는 팀부터 fail-fast: false 가 러너 분에서 이득입니다. fail-fast 를 건드리기 전에 리포트 업로드 스텝에 if: always() 를 붙이고 아티팩트 이름에 매트릭스 값을 넣으시면 됩니다.