Cypress + github Actions

Joseph·2024년 11월 7일

Cypress 도입

Cypress 를 도입하면서 다양한 테스트를 작성하였다.
해당 테스트들을 pull request 등을 할 때 뿐만 아니라, github actions을 활용하여 자동화할 필요성을 느꼈다.

github Actions 에서 정기적 실행(scheduler)

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에 적혀 있다.)

참조 사이트 : https://docs.github.com/ko/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows

profile
안녕하세요 프론트와 백 둘다 관심있는 웹개발자 이창무입니다.

0개의 댓글