이벤트 탐색

완료됨

GitHub Actions 워크플로는 리포지토리 또는 일정에 따라 발생하는 특정 활동인 이벤트에 의해 트리거됩니다. 이벤트는 워크플로 정의의 on 절에 의해 정의되며 자동화가 실행되는 시기를 결정합니다.

예약된 이벤트

cron 구문을 사용하여 특정 시간에 실행되도록 워크플로를 예약합니다. 이는 유지 관리 작업, 일반 보고서 또는 야간 빌드에 적합합니다.

on:
  schedule:
    # Runs every weekday at 8 AM UTC
    - cron: "0 8 * * 1-5"
    # Runs every Sunday at midnight UTC
    - cron: "0 0 * * 0"

Cron 구문 분석:

  • (0-59) | 시간 (0-23) | (1-31) | (1-12) | 평일 (0-6, 일요일=0)
  • 월 이름 사용: JAN-DEC 및 일 이름: SUN-SAT
  • "any"에는 *을 사용합니다(YAML에서 cron 문자열을 인용).

:

  • '0 9-17 * * 1-5' - 1시간마다 오전 9시부터 오후 5시까지, Monday-Friday
  • '30 2 * * *' - 매일 오전 2:30
  • '0 0 1 * *' - 매월 첫째 날 자정

코드 리포지토리 이벤트

가장 일반적인 트리거는 리포지토리의 코드 변경에 응답합니다.

기본 푸시 및 끌어오기 요청 이벤트

on:
  # Single event
  push

  # Multiple events
  pull_request

# Or as a list
on: [push, pull_request]

분기 및 경로를 사용하여 필터링된 이벤트

on:
  push:
    branches: [main, develop]
    paths: ["src/**", "!docs/**"]
  pull_request:
    branches: [main]
    types: [opened, synchronize, reopened]

일반적인 리포지토리 이벤트

Event Trigger 사용 사례
push 브랜치에 푸시된 코드 CI/CD, 자동화된 테스트
pull_request PR 열림/업데이트됨 코드 검토 자동화
release 릴리스 게시됨 프로덕션에 배포
create 분기/태그 생성됨 환경을 초기화하기
delete 분기/태그 삭제됨 리소스 정리

수동 이벤트

다음을 사용하여 workflow_dispatchGitHub Actions 탭에서 워크플로를 수동으로 트리거합니다.

on:
  workflow_dispatch:
    inputs:
      environment:
        description: "Deployment environment"
        required: true
        default: "staging"
        type: choice
        options:
          - staging
          - production
      version:
        description: "Version to deploy"
        required: true
        type: string

비고

워크플로 파일이 수동 트리거 UI에 표시되려면 기본 분기에 있어야 합니다.

웹후크 이벤트

GitHub는 리포지토리 작업에 대한 많은 웹후크 이벤트를 제공합니다.

on:
  # Wiki page created or updated
  gollum

  # Issues opened, closed, or edited
  issues:
    types: [opened, edited, closed]

  # New release published
  release:
    types: [published]

외부 이벤트

GitHub의 REST API를 통해 외부 시스템에서 워크플로를 트리거하는 데 사용합니다 repository_dispatch .

on:
  repository_dispatch:
    types: [deploy-staging, run-tests]

외부에서 동작 유도하기:

curl -X POST \
  -H "Authorization: token YOUR_TOKEN" \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/OWNER/REPO/dispatches \
  -d '{"event_type":"deploy-staging","client_payload":{"environment":"staging"}}'

이벤트에 대한 모범 사례

  • 구체적으로: 분기 및 경로 필터를 사용하여 불필요한 실행을 방지합니다.
  • 관련 이벤트 결합: 하나의 워크플로에서 유사한 트리거 그룹화
  • 적절한 이벤트 유형 사용: 요구 사항에 가장 구체적인 이벤트 유형 선택
  • 수동으로 먼저 테스트: 개발 중에 사용 workflow_dispatch
  • 사용량 모니터링: 워크플로 실행을 검토하여 이벤트 구성 최적화

전체 이벤트 설명서는 워크플로를 트리거하는 이벤트를 참조하세요.