한 workflow, 여러 caller
Reusable workflow 는 on: workflow_call 가진 workflow 파일. 다른 workflow 가 uses: 로 참조. 호출된 workflow 는 자기 job 으로 자기 runner 에서 돌지만, caller 에서 secret 과 변수 상속.
왜 이게 중앙화 메커니즘인가
12 repo 가 다 같은 'build, test, GHCR push, smoke deploy' 시퀀스 필요하면 12 카피 유지하기 싫어. Single repo (org/.github 나 org/ci) 에 workflow 넣고 workflow_call 로 노출, 모든 consumer 가 거기를 가리키게.
Input, output, secret
inputs— caller 의 typed 매개변수 (string, boolean, number).outputs— 호출된 workflow 가 생산, caller 의 downstream job 이 읽음.secrets— 명시적으로 상속 또는 하나씩 명명. 단순한 경우secrets: inherit사용.
알아둘 제약
- 중첩 4 레벨까지 (a 가 b 호출, b 가 c, c 가 d).
- Reusable workflow 를 step 에서 호출 불가 (job 에서만).
- 호출된 workflow 의
permissions:블록 적용, caller 의 게 아님.