매트릭스는 단순한 데카르트 곱 그 이상이야
매트릭스는 나열한 차원의 모든 조합을 확장해. 하지만 보통 전체 곱을 그대로 돌리기보다는 결과를 원하는 대로 모양짓고 싶을 거야. 이걸 제어하는 세 가지 방법이 있어.
include:— 데카르트 곱 위에 특정 셀을 추가해. 추가 필드도 포함할 수 있어.exclude:— 데카르트 곱에서 특정 셀을 제거해.fail-fast: false— 하나가 실패해도 모든 셀을 계속 실행해. 기본값은 true야.
자주 쓰는 패턴
- 플래그와 함께 실험 셀 추가하기. 3.10부터 3.12 외에
continue-on-error: true로 Python 3.13을 추가하면 PR을 막지 않아. - 해당하지 않는 조합 건너뛰기. Postgres 16과 Python 3.10 조합은 드라이버가 지원하지 않을 수 있어. 이럴 땐 exclude를 써.
- 셀마다 추가 설정 주입하기. 다른 DB 연결 문자열이나 타임아웃, 테스트 마커를 줄 수 있어.
- 동적 매트릭스. 이전 작업의
jobs.outputs에서 매트릭스를 생성할 수 있어. 이건 재사용 트랙에서 다뤄.
빠른 실패 트레이드오프
fail-fast: true(기본값)는 셀 하나가 실패하면 즉시 나머지 셀을 취소해. 시간은 절약되지만 정보는 손실돼. 반면 fail-fast: false는 모든 셀이 완료될 때까지 실행해. PR에서는 true로 빠른 피드백을 얻고, main 브랜치에서는 false로 전체 결과를 확인하는 게 좋아.