Featured image of post GitHub Actions 트리거와 시나리오

GitHub Actions 트리거와 시나리오

자동화된 CI/CD 파이프라인

📌개요

CI/CD 자동화는 트리거(Trigger)를 어떻게 설정하느냐에 따라 큰 차이가 있다.

GitHub Actions에서 사용 가능한 다양한 트리거 유형과 각 트리거가 적합한 실전 시나리오를 정리해보자. 워크플로우 실행 조건을 전략적으로 설정하면 효율적이고 예측 가능한 자동화를 구현할 수 있다.

📌내용

GitHub Actions 트리거 유형과 용도

트리거 유형설명대표 시나리오
push브랜치나 태그에 push될 때 작동main 브랜치 병합 후 자동 배포
pull_requestPR 생성/수정 시 작동PR 단위로 빌드 및 테스트
workflow_dispatch수동 실행 버튼QA 테스트 후 직접 배포
schedulecron 표현식 기반 정기 실행새벽마다 DB 백업, 주간 리포트 생성
repository_dispatch외부 앱의 API 호출로 작동CMS 수정 시 블로그 자동 재배포
workflow_call다른 워크플로우에서 호출공통 빌드/테스트 재사용
issue_comment특정 댓글이 달릴 때“/deploy” 댓글로 수동 배포
releaseGitHub Release 생성 시태그 기반 배포
create / delete브랜치/태그 생성 또는 삭제 시브랜치 생성 시 테스트 환경 설정

시나리오 예시

1. 자동 테스트와 빌드

PR 생성 시마다 테스트 자동 실행

1
2
3
on:
  pull_request:
    branches: [main, develop]

2. 배포 자동화

main 브랜치로 push 시 프로덕션 자동 배포

1
2
3
on:
  push:
    branches: [main]

3. 수동 배포 버튼

QA 검증 완료 후 사람이 버튼을 눌러 배포

1
2
on:
  workflow_dispatch:

4. 정기 실행 자동화

새벽마다 DB 백업 스크립트 실행

1
2
3
on:
  schedule:
    - cron: '0 3 * * *' # 매일 03:00

5. 댓글 기반 배포 자동화

이슈나 PR에 /deploy 댓글 달리면 배포

1
2
3
4
5
6
on:
  issue_comment:
    types: [created]
jobs:
  deploy:
    if: github.event.comment.body == '/deploy'

🎯결론

CI/CD 자동화는 ‘언제’ 실행할지를 똑똑하게 고르는 것이 핵심이다.

GitHub Actions의 트리거를 전략적으로 활용하면 반복 작업을 줄이고, 안정적인 자동화 파이프라인을 구성할 수 있다.

⚙️EndNote

사전 지식

  • GitHub 저장소와 브랜치 개념
  • YAML 문법
  • CI/CD 개요

더 알아보기