Workflow Trigger Events
Workflow는 Trigger Events에 의해 Trigger된다. 이번 글에서는 유용한 Trigger Events들에 대해 알아볼 것이다.
저장소 기반
push : 저장소에 push 되었을 때 Trigger 시키기
만약 저장소의 어떤 브랜치든 push 되었을 때 Workflow를 Trigger 시키고 싶다면 다음과 같이 쓰면 된다.
on: push
만약 특정 브랜치에 push 되었을 경우에만 Workflow를 Trigger 시키고 싶다면 다음과 같이 쓰면 된다. 아래 예시에서는 main과 release/ 로 시작하는 모든 브랜치에 푸시되었을 경우에 trigger 시키도록 하였다.
on:
push:
branches:
- main
- release/**
pull_request: Pull Request가 생성 되었을 때 Trigger 시키기
만약 Pull Request 가 생성 되었을 때 Workflow를 Trigger해서 작업을 돌리고 싶다면 위의 push 예제에서 push를 pull_request로 바꾸기만 하면 된다. 저장소는 대부분 같은 파라미터(branches 등)를 가진다.
on:
pull_request:
branches:
- main
- release/**
시간 기반
schedule : 매일, 매주 등등 시간 기반으로 Workflow를 실행해야 하는 경우
schedule: 후 - cron: 을 사용하면 시간 기반으로 Workflow를 실행할 수 있다.
on:
schedule:
- cron: '30 5 * * 1,3'
- cron: '30 5 * * 2,4'
cron 뒤에는 5개의 필드가 오게 되는데 이들 각각은 분, 시, 일, 월, 요일을 뜻한다.
┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
│ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
* * * * *
사용 예시)
예시 | 설명 |
10 * * * * | 분침이 10분에 멈출 때마다 실행. *10분마다가 아니다. 헷갈리지 말자 |
2,15 4,5 * * * | 시침이 4 또는 5에 멈출 때 and 분침이 2 또는 15에 멈출 때 실행 |
30 4-6 * * * | 시침이 4부터 6사이에 멈출 때 and 분침이 30에 멈출 때 실행 |
10/15 * * * * | 10분, 25분, 40분, 55분에 실행 |
참고자료
https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#about-workflow-triggers
반응형