기본 6시간 작업 타임아웃은 거의 모든 상황에 어긋나
명시적으로 타임아웃을 정하지 않으면 작업이 최대 6시간까지 돌아. 불안정한 외부 서비스를 기다리는 테스트나 레지스트리 장애로 막힌 docker pull처럼 멈춰버린 프로세스가 반나절 동안 CI 예산을 조용히 갉아먹을 수 있어.
타임아웃을 빡빡하게 설정하자:
- 작업 수준
timeout-minutes:— 전체 작업의 상한선이야. - 단계 수준
timeout-minutes:— 개별 단계의 상한선이야.
합리적인 기본값
| 작업 유형 | 합리적인 상한선 |
|---|---|
| 린트 / 포맷 | 5분 |
| 유닛 테스트 | 10-15분 |
| 통합 / e2e | 30-45분 |
| 배포 | 15-30분 |
| 릴리스 파이프라인 | 60분 |
작업이 상한선에 도달하면 실행이 실패해. 이게 맞는 동작이야. 왜 그렇게 오래 걸렸는지 조사해봐야지.