CI\CD/Github Actions
Github Actions - schedule
hustle_D
2025. 9. 29. 16:02
반응형
schedule event의 경우는 POSIX cron 문법으로 특정 시간/주기에 워크플로우를 자동으로 실행하게 하는 이벤트이다.
schedule의 등록은
와 같이 on의 하위로 schedule로 이벤트를 걸고 여기에 - cron으로 시간을 지정한다.
각 시간은
와 같이 자리마다 분, 시간, 날짜, 월, 주 같은 기준이 들어가며 *이 들어가면 매 분, 매 시간 등등에 이벤트가 발생하게 된다.
이는
이렇게 각각의 operator에 대해서 작성되어 있는 기준에 따른다.
그리고 schedule 이벤트의 경우는 default branch에 workflow가 존재하는 경우에만 workflow를 실행한다.
그리고 이 스케쥴에 대한 잡은 씹히는 경우가 종종 발생하는 것 같다.
Github action의 schedule은 최대한의 노력(best-effort)에 대한거지 무조건 시간을 보장하는 것은 아니라고 한다.
큐가 지연되거나 러너가 부족하거나 리포의 비활성화 정책등으로 인해 지연되어 실행되거나 아예 실행 자체가 누락되는 경우가 있으니 꼭 어떤 시간때에 실행되어야만 하는 경우는 github action으로 스케쥴링은 하지 말고 외부에 신뢰성이 높은 스케쥴러를 대신 이용해서 사용하는 것이 좋을 것으로 보인다.
일단 예시를 하나 보여주고 마무리 하겠다
name: scheduled-job
on:
schedule:
# 매일 09:00 KST 실행 (KST=UTC+9 → 00:00 UTC)
- cron: '0 0 * * *'
jobs:
hello:
runs-on: ubuntu-latest
steps:
- run: echo "스케줄 실행!"
반응형