본문 바로가기
Programming

Github Action 특정시간 동작

by 느리게 걷는 즐거움 2024. 7. 28.
반응형

GitHub Actions는 소프트웨어 개발 워크플로우를 자동화하는 데 매우 유용한 도구입니다. 특정 시간에 워크플로우를 실행하고 싶을 때가 있는데, 이 글에서는 GitHub Actions를 사용하여 특정 시간에 동작하도록 설정하는 방법을 설명하겠습니다.

GitHub Actions 기본 개념

GitHub Actions는 이벤트 기반으로 동작하는 자동화 도구입니다. 다양한 이벤트(예: push, pull request 등)에 의해 트리거될 수 있으며, 다양한 작업(Job)을 수행할 수 있습니다. 이 중 특정 시간에 워크플로우를 실행하려면 `schedule` 이벤트를 사용해야 합니다.

Crontab 형식 소개

`schedule` 이벤트는 cron 형식의 구문을 사용하여 시간을 설정합니다. cron 형식은 다음과 같은 구조를 가집니다:

* * * * *
| | | | |
| | | | +----- 요일 (0 - 7) (일요일은 0 또는 7)
| | | +------- 월 (1 - 12)
| | +--------- 일 (1 - 31)
| +----------- 시 (0 - 23)
+------------- 분 (0 - 59)

예를 들어, 매일 오전 9시에 작업을 실행하고 싶다면, cron 표현식은 `0 9 * * *`가 됩니다.

GitHub Actions 설정 파일 작성

GitHub Actions 워크플로우 파일은 `.github/workflows` 디렉토리에 YAML 형식으로 저장됩니다. 이제 특정 시간에 동작하는 워크플로우 파일을 작성해보겠습니다.

1. 기본 워크플로우 파일 생성

먼저, 워크플로우 파일을 생성합니다. 파일 경로는 `.github/workflows/scheduled_workflow.yml`로 하겠습니다.

name: Scheduled Workflow

on:
  schedule:
    - cron: '0 9 * * *'  # 매일 오전 9시에 실행

jobs:
  example_job:
    runs-on: ubuntu-latest

    steps:
      - name: Check out repository
        uses: actions/checkout@v2

      - name: Run a script
        run: echo "This is a scheduled task running at 9 AM every day!"
2. 워크플로우 파일 설명
name 워크플로우의 이름을 지정합니다.
on 워크플로우를 트리거하는 이벤트를 지정합니다. 여기서는 `schedule` 이벤트를 사용하여 특정 시간에 트리거되도록 설정합니다.
schedule cron 형식을 사용하여 일정한 시간 간격으로 워크플로우를 실행합니다. 여기서는 매일 오전 9시에 실행되도록 설정했습니다.
jobs 워크플로우가 수행할 작업을 정의합니다.
example_job 작업의 이름입니다.
runs-on 작업이 실행될 환경을 지정합니다. 여기서는 최신 Ubuntu 버전을 사용합니다.
steps 작업의 세부 단계를 정의합니다.
actions/checkout@v2 저장소를 체크아웃합니다.
run 스크립트를 실행합니다. 여기서는 간단한 메시지를 출력하는 예제를 사용했습니다.
   

이번에는 매주 월요일 오전 10시에 실행되는 워크플로우를 작성해보겠습니다.

name: Weekly Scheduled Workflow

on:
  schedule:
    - cron: '0 10 * * 1'  # 매주 월요일 오전 10시에 실행

jobs:
  weekly_job:
    runs-on: ubuntu-latest

    steps:
      - name: Check out repository
        uses: actions/checkout@v2

      - name: Run a script
        run: echo "This is a scheduled task running at 10 AM every Monday!"

이와 같이 간단한 cron 표현식을 사용하여 원하는 시간에 GitHub Actions 워크플로우를 설정할 수 있습니다.

 

반응형