Cypress 를 도입하면서 다양한 테스트를 작성하였다.
해당 테스트들을 pull request 등을 할 때 뿐만 아니라, github actions을 활용하여 자동화할 필요성을 느꼈다.
github Actions docs에서는 cron 이라는 속성으로 정기적으로 workflow를 실행할 수 있게끔 했다.
(cron tab은 이전에 백엔드 작업을 할 때 사용했어서 익숙했다.)
예시 코드는 아래와 같다.
on:
schedule:
- cron: '30 5 * * * *'
jobs:
test_schedule:
runs-on: ubuntu-latest
steps:
- name: Not on Monday or Wednesday
if: github.event.schedule != '30 5 * * 1,3'
run: echo "This step will be skipped on Monday and Wednesday"
- name: Every time
run: echo "This step will always run"
매일 5:30 UTC 에 workflow 가 실행되도록 하는 내용이다.
cron 에서 작성할 때 UTC 기준 시간을 작성해야 하므로, 한국 시간에 맞추려면 + 9 시간을 해주어야 한다.
적용이 잘 안되는 어려움이 있었다.
Pull Request, Push 등의 이벤트는 잘 인식했지만,
cron 의 경우 github Repo 의 github Actions에 해당 yml 파일이 아예 인식되지 않는 현상이 있었다.
한참 헤매다 이유를 docs에서 찾을 수 있었다.

cron scheduler의 경우 이미지와 같이 default 브랜치에 반영이 되어야 해당 workflow가 trigger가 되는 것이다.
다른 이벤트의 경우, 일반 브랜치에 반영이되어도 yml 파일이 인식되었기 때문에 더 헤맸던 것 같다.
(결국 모든 이유는 docs에 적혀 있다.)