반응형
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 워크플로우를 설정할 수 있습니다.
반응형
'Programming' 카테고리의 다른 글
Folium 마커 생성 및 색상 변경하는 방법 (1) | 2024.08.15 |
---|---|
Let the Cat Out of the Bag (0) | 2024.08.01 |
GitHub Actions의 구조와 활용법 (0) | 2024.07.28 |
Use Case Diagram 작성 방법 (1) | 2024.07.26 |
git patch 만들기와 적용하기 (0) | 2024.07.24 |