'on' 블록이 스케줄러야
모든 워크플로는 on: 아래에 실행 조건을 선언해. 자주 쓰는 실행 조건들을 대략 쓰는 순서대로 나열해볼게:
push— 푸시할 때마다 실행돼. 브랜치, 태그, 경로로 필터링할 수 있어.pull_request— PR을 열거나, 새 커밋을 올리거나, 다시 열 때 실행돼. 브랜치, 경로, 타입으로 필터링할 수 있어.schedule— cron 형식이고 UTC 기준이야.'0 6 * * *'는 매일 06:00 UTC를 뜻해.workflow_dispatch— UI, API, CLI에서 수동으로 실행해. 입력값을 기본적으로 지원해.release— 릴리스 이벤트(생성, 게시, 편집)가 일어날 때 실행돼.workflow_call— 다른 워크플로에서 호출할 수 있게 해줘(재사용 가능한 워크플로).repository_dispatch— 외부 시스템에서 POST 요청으로 실행해.merge_group— 병합 큐 안에서 실행돼.
필터로 실행 조건을 좁혀
그냥 on: push만 쓰는 건 거의 없어. 보통 main 브랜치로 푸시할 때나 소스 파일이 변경된 푸시만 잡고 싶잖아. 각 이벤트 아래에 필터를 둬:
branches/branches-ignoretags/tags-ignorepaths/paths-ignore— 변경된 파일에 매칭되는 glob 패턴이야.types— 하위 타입이 있는 이벤트(PR 열기/동기화/다시 열기)에 써.