GitHub Actions Trigger 유형과 CI/CD 활용 시나리오

2026. 5. 15. 09:21·위클리페이퍼

GitHub Actions에서 Trigger는 "언제 워크 플로우를 실행할 것인가"를 결정하는 조건입니다.

 

워크플로우 파일에서는 on 키워드로 정의합니다.

name: CI

on:
  push:
    branches: [main]

main 브랜치에 push 할때 워크 플로우를 실행하고싶을때는 위와같이 나타냅니다.

 

GitHub 공식 문서 기준으로 워크플로우는 GitHub 이벤트, 예약시간, 수동 실행등에 의해 실행될 수 있고 다양한 이벤트 기반 트리거를 제공합니다.


1. push: 코드가 브랜치나 태그에 push 될때 실행됩니다.

on:
  push:
    branches:
      - main
      - develop
  • develop 브랜치에 push 되면 테스트 실행
  • main 브랜치에 merge되면 빌드 후 배포
  • v1.0.0 같은 태그가 push 되면 릴리즈 배포

예를 들어 백엔드 프로젝트에서 main 브랜치에 push 될때 Docker 이미지를 빌드하고, ECS나 EC2에 배포하는 흐름에 자주 사용합니다.

 

 

2. pull_request: PR이 생성되거나, 커밋이 추가되거나, 다시 열릴때 실행

on:
  pull_request:
    branches:
      - develop
      - main
  • PR 생성시 테스트 실행
  • 빌드 가능 여부 확인
  • 리뷰전에 깨진 코드가 들어오는것을 방지

실무에서는 pull_request를 CI 검증용으로 많이 사용한다고 합니다. 배포보다는 이 코드가 merge되어도 안전한가를 확인하는 용도로 많이 사용한다고 합니다.

 

 

3. workflow_dispatch: GitHub Actions 화면에서 사람이 직접 실행할 수 있는 수동 트리거

on:
  workflow_dispatch:
    inputs:
      environment:
        description: '배포 환경'
        required: true
        default: 'dev'
  • 입력값도 받을 수 있다.
  • 운영 배포를 수동 승인 후 실행
  • 특정 브랜치를 원하는 시점에 배포
  • 장애 대응용 재배포

즉, 자동화는 하되 실행 타이밍은 사람이 통제하고 싶을때 사용한다.

GitHub Actions 탭에 [Run workflow] 버튼이 생기고, 사용자는 dev, prod, stage와 같은 값을 입력하고 실행하게 된다.

운영 배포는 위험하기 때문에 이러한 과정을 통해서 배포에서 실수를 최소화한다고 합니다.

 


4. schedule: cron 표현식으로 정해진 시간에 워크 플로우를 실행

on:
  schedule:
    - cron: '0 0 * * *'
  • 매일 새벽 테스트 실행
  • 매주 보안 점검
  • 정기 배치 작업
  • 오래된 artifact 정리
  • 주기적인 헬스 체크

cron은 기본적으로 UTC 기준이라서 매일 새벽 3시마다 API 테스트를 돌리고 싶다면 한국 시간 기준으로 UTC 변환을 고려해야한다.

 

5. release: Github Release가 생성, 수정, 게시될때 실행

on:
  release:
    types: [published]
  • 릴리즈가 발행되면 운영 배포
  • 릴리즈 노트 생성
  • 배포 파일 업로드
  • Docker 이미지에 버전 태그 부여

push의 tag 기반 배포와 비슷하지만, release는 GitHub Release라는 명확한 릴리즈 행위를 기준으로 동작합니다.

 

6. workflow_run: 다른 워크플로우가 완료된 후 실행

on:
  workflow_run:
    workflows: ["CI"]
    types:
      - completed
  • CI가 성공하면 CD 실행
  • 테스트 워크플로우 완료 후 배포 워크플로우 실행
  • 빌드와 배포 워크플로우 분리

예를 들어 CI 워크플로우에서 테스트와 빌드를 수행하고, 성공한 경우에만 Deploy 워크플로우가 실행되도록 구성할 수 있습니다.

CI와 CD의 책임을 분리할 수 있다는 장점이 있다.

'위클리페이퍼' 카테고리의 다른 글

AWS RDS를 활용하는 이점과 EC2에 직접 DB 설치 비교  (0) 2026.05.12
Spring MVC에서 클라이언트의 요청 처리 흐름.(@Controller/@RestController)  (0) 2026.02.23
Spring boot에서 사용되는 다양한 Bean 등록 방법들  (0) 2026.02.06
웹 서버와 WAS(Web Application Server)의 차이  (0) 2026.02.02
프레임워크와 라이브러리의 차이점?  (0) 2026.01.27
'위클리페이퍼' 카테고리의 다른 글
  • AWS RDS를 활용하는 이점과 EC2에 직접 DB 설치 비교
  • Spring MVC에서 클라이언트의 요청 처리 흐름.(@Controller/@RestController)
  • Spring boot에서 사용되는 다양한 Bean 등록 방법들
  • 웹 서버와 WAS(Web Application Server)의 차이
과컴
과컴
벡엔드 개발자 최소기준 맞추겠습니다.
  • 과컴
    곽의 프로그램
    과컴
  • 전체
    오늘
    어제
    • 분류 전체보기 (76)
      • 위클리페이퍼 (6)
      • 파이썬 (4)
      • 코드잇 스프린트 (48)
        • Spring 이론 (7)
        • Java이론 (11)
        • 실습 (23)
      • 백엔드 개발자 최소기준 (1)
      • 코딩테스트 (5)
        • 알고리즘 (0)
        • SQL (1)
      • Git (5)
      • 스프링부트 핵심가이드 (1)
      • 트러블 슈팅 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬기초
    파이썬입문
    백준2576
    백준1075번
    백준1152
    혼공파
    파이썬
    문자열
    백준브론즈
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
과컴
GitHub Actions Trigger 유형과 CI/CD 활용 시나리오
상단으로

티스토리툴바