javascript

깃허브 액션을 이용한 스케줄러 작성

개인 메모용

깃허브 액션을 이용해서 스케줄러(Cron job)처럼 실행이 가능하다

아래의 예제는 무료 vercel 서버를 사용한 예제이다

깃허브액션 → Vercel서버에 API 요청을 보내는 예제이다

예제

https://github.com/bluegmlduf2/wallylog/commit/d1197589bb7c87fc88912b3e1faff63f63568861

예제의 테스트 Curl로 API 요청

curl -X POST \
  -H "Authorization: Bearer 구글액션에_설정한_API키" \
  https://요청할_API

깃허브 액션 설명 유튜브

https://www.youtube.com/watch?v=iLqGzEkusIw

참조

https://bloodstrawberry.tistory.com/1339

깃헙액션의 주요 구조 (첨부유튜브 보면 이해됨)

1. 이벤트 (Event)
정의: 워크플로우를 시작하도록 만드는 특정 활동입니다.
예시: 코드를 푸시(push)하거나, 풀 리퀘스트(pull request)를 열거나, 이슈를 생성하는 것 등이 있습니다.

2. 워크플로우 (Workflow)
정의: 하나 이상의 작업(Job)을 포함하는 자동화된 절차입니다.
특징: YAML 파일로 정의되며, 이벤트가 발생하면 실행됩니다.

3. 작업 (Job)
정의: 동일한 러너에서 실행되는 단계(Steps)의 집합입니다.
특징: 기본적으로 서로 독립적으로 실행되지만, 다른 작업에 의존하도록 설정할 수 있습니다.

4. 액션 (Action)
정의: 단계(Step)에서 사용되는 독립적인 명령어들의 조합입니다.
특징: 워크플로우의 가장 작은 구성 요소로, checkout이나 setup-node 같은 재사용 가능한 코드를 제공합니다.

5. 러너 (Runner)
정의: 워크플로우를 실행하는 서버입니다.
특징: 깃허브에서 호스팅하는 러너(GitHub-hosted runner)를 사용하거나, 사용자가 직접 설정한 자체 호스팅 러너(self-hosted runner)를 사용할 수 있습니다.