실행 시점에 매트릭스 계산하기
가끔은 매트릭스를 코드에 직접 박아 넣을 수가 없어. 풀 리퀘스트에서 뭐가 바뀌었는지, 모노레포에 어떤 패키지가 있는지, 어떤 테스트에 태그가 달렸는지, 설정 파일이 어떤 플랫폼을 선언하는지에 따라 달라지니까. 동적 매트릭스를 쓰면 준비 작업에서 매트릭스를 계산한 뒤 후속 매트릭스 작업에 넘겨줄 수 있어.
패턴
- 준비 작업이 저장소를 점검해 (바뀐 파일이나 패키지 목록 등).
- JSON 배열을 작업 출력값으로 내보낸다.
- 후속 매트릭스 작업에서
strategy.matrix.<key>: ${{ fromJSON(needs.setup.outputs.<key>) }}처럼 설정한다. - 각 매트릭스 셀이 실제 작업을 실행한다.
실제 예시
- 모노레포 — 이 풀 리퀘스트에서 코드가 바뀐 패키지만 테스트한다.
- 크로스 플랫폼 빌더 — 저장소에서
platforms.json을 읽어서 항목마다 매트릭스 셀을 실행한다. - 태그 기반 — 테스트 프레임워크에 표시된 테스트 그룹 목록을 가져와 매트릭스 셀로 늘린다.