개요
GitHub Actions은 PR을 만들거나 이슈를 열거나 커밋을 푸시하는 행위가 발생할 때 트리거될 수 있는데, 이 트리거 조건은 on 키워드를 통해 설정할 수 있다. 이번 글에서는 on 키워드를 통해 Github Actions 트리거 조건을 어떻게 설정할 수 있는지 정리해두려고 한다.
on
Workflow는 on 키워드를 통해 트리거 이벤트를 정의할 수 있다. 이벤트는 하나 또는 여러 개 정의하거나 스케쥴을 설정할 수 있다. 또는 특정 파일이나 태그, 브랜치에 변경이 있을 때만 실행되도록 제한할 수도 있다.
단일 이벤트
on: push
조건 없이 push로 지정하면 어떤 브랜치든 push가 발생하면 실행하겠다는 의미이다.
여러 이벤트
이벤트를 여럿 지정할 때는 대괄호로 감싼다.
on: [push, fork]
사용 예시
on.<event_name>.types
types를 사용하면 트리거 이벤트의 유형을 정의할 수 있다.
예로 들어, issue_comment 이벤트에는 생성, 편집, 삭제 유형이 존재하는데, type을 별도로 지정하지 않고 issue_comment로만 지정하게 되면, issue_comment가 생성이 되든 삭제가 되든 Worflow가 실행된다. 하지만 type으로 유형을 지정하게 되면 지정한 유형의 이벤트가 발생한 경우에만 Worflow가 실행된다.
on:
label:
types:
- created
필터링
일부 이벤트에는 Worflow 실행 시기를 보다 명확하게 지정할 수 있도록 하는 필터가 존재하는데, 바로 push 이벤트의 branches가 대표적인 예시이다.
on:
push:
branches:
- main
- 'releases/**'
branches 필터를 사용하는 임의 브랜치에 push 이벤트가 발생했을 때가 아니라, 원하는 브랜치에 push 이벤트가 발생했을 때만 workflow가 동작하도록 지정할 수 있다.
참고 문서
https://docs.github.com/ko/actions/reference/workflows-and-actions/workflow-syntax#on
https://docs.github.com/ko/actions/reference/workflows-and-actions/events-that-trigger-workflows