Github Actions로 업무 자동화 도입하기 #1 : Github Actions란?
현재 나의 목표가 하나 있다.회사 내 앱에 Github Actions를 도입하여 앱 검수 요청까지 완료하기 !!그러기 위해선 우선 Github Actions가 무엇인지 확인해봐야 한다. 참고: https://docs.github.com/ko/actions/lear
anovice-dp.tistory.com
챕터 1에서는 Github Actions가 무엇인지를 정리했다. (글 상단 링크 참고)
이번 글에서는 챕터 1에서 잠깐 언급된 Github Actions 구성요소에 대한 자세한 설명을 차근차근 정리해보려고 한다.
그전에 앞서 구성요소는 어떤 것들이 있는지 간략하게 정리하자면 아래와 같다.
- 이벤트(Event): 저장소에서 Pull-Request가 열리거나 이슈가 생성되는 등의 이벤트가 발생하면 GitHub Actions Workflows가 트리거 됨
- 워크플로(Workflows): 이벤트가 발생할 때 실행되는 자동화된 작업의 모음. 워크플로는 하나 이상의 작업(Job)으로 구성
- 작업(Job): 워크플로 내에서 실행되는 개별 작업 단위. 작업은 순차적으로 실행되거나 병렬로 실행될 수 있다.
- 러너(Runner): 각 작업은 자체 가상 머신 러너 또는 컨테이너 내에서 실행
- 단계(Step): 각 작업 내에서 실행되는 개별 명령어 또는 스크립트입니다. 단계는 직접 정의한 스크립트를 실행하거나, 워크플로를 간소화할 수 있는 재사용 가능한 확장인 액션(Action)을 실행할 수 있다.
참고: https://docs.github.com/ko/actions/using-workflows/about-workflows
1. Workflows (워크플로우) 란?
워크플로우(Workflows)는 하나 이상의 작업을 자동으로 실행하는 구성 가능한 프로세스이다.
Workflows는 저장소에 체크인된 YAML 파일로 정의되며, 저장소에서 이벤트가 발생할 때, 수동으로, 또는 정해진 일정에 따라 실행될 수 있다.
Workflows는 저장소의 .github/workflows 디렉토리에 정의되며, 하나의 저장소에는 여러 개의 워크플로우가 존재할 수 있습니다. 각 워크플로우는 서로 다른 작업을 수행할 수 있다.
예를 들어, 풀 리퀘스트를 빌드하고 테스트하는 Workflows, Release가 생성될 때마다 애플리케이션을 배포하는 Workflows, 누군가 새로운 이슈를 열 때마다 라벨을 추가하는 Workflows를 각각 가질 수 있다.
또한, 한 워크플로우 내에서 다른 워크플로우를 참조할 수도 있다.
2. Workflows 기본 구성 요소
- Workflows를 트리거하는 하나의 Event
- 하나 이상의 Job이며, 각 작업은 Runner에서 실행되고, 하나의 Step을 실행 (1:1:1)
- 각 단계에서는 Workflows를 간소화할 수 있는 재사용 가능한 확장 작업을 정의하거나 실행하는 스크립트를 실행할 수 있음
3. Workflows Trigger
Workflows Trigger는 워크플로우를 실행하게 하는 이벤트들이다.
해당 이벤트들은 아래와 같다.
- Workflows Repository에서 발생하는 이벤트
- Github 외부에서 발생하고 Github에서 repository_dispatch 이벤트를 트리거하는 이벤트
- 예약된 시간
- 수동
예를 들어 Repository의 기본 분기로 푸시되거나, Release가 생성되거나, 이슈가 열리면 실행되도록 구성 가능하다.
- 시간 기반 트리거 (스케줄러)
- 특정 시간, 날짜, 요일, 또는 주기적으로 워크플로를 실행한다.
- 예: 매일 오전 9시에 데이터 백업 작업을 시작한다.
- 데이터 변경 트리거
- 데이터베이스나 특정 데이터 소스에서 데이터가 추가되거나 수정될 때 트리거된다.
- 예: 새로운 고객 정보가 데이터베이스에 추가되면 환영 이메일을 발송한다.
- 파일 시스템 트리거
- 특정 디렉토리에 파일이 추가되거나 변경될 때 트리거된다.
- 예: 특정 폴더에 파일이 업로드되면 파일 처리 워크플로를 시작한다.
- 웹훅(Webhook)
- 외부 시스템에서 HTTP 요청을 통해 워크플로를 트리거한다.
- 예: 결제 시스템에서 결제가 완료되면 영수증 발송 워크플로를 시작한다.
- 이메일 트리거
- 특정 이메일 주소로 이메일이 수신될 때 트리거된다.
- 예: 고객 지원 이메일이 도착하면 지원 티켓 생성 워크플로를 시작한다.
- 사용자 동작 트리거
- 사용자가 애플리케이션 내에서 특정 동작을 수행할 때 트리거된다.
- 예: 사용자가 폼을 제출하면 승인 프로세스 워크플로를 시작한다.
- API 호출 트리거
- 외부 시스템에서 API 호출을 통해 워크플로를 트리거한다.
- 예: 외부 애플리케이션에서 API를 호출하여 데이터 동기화 워크플로를 시작한다.
- 센서 및 IoT 트리거
- IoT 디바이스나 센서에서 특정 상태나 이벤트가 감지될 때 트리거된다.
- 예: 온도 센서가 특정 온도를 초과하면 냉각 시스템 워크플로를 시작한다.
이와 같은 다양한 트리거 이벤트를 통해 워크플로를 자동화함으로써 업무 효율성을 높이고, 오류를 줄이며,
실시간 대응 능력을 향상할 수 있다.
각 트리거 이벤트는 특정 비즈니스 요구사항에 맞게 설정되고 조정될 수 있다.
4. Workflows 파일 시각화

5. Workflows 실행에 대한 작업 보기
워크플로우가 트리거 되면 워크플로우를 실행하는 워크플로우 실행이 만들어진다.
워크플로우 실행이 시작된 후 Github에서 실행 진행률 시각화 그래프를 확인하고 각 단계의 작업을 볼 수 있다.
- Github.com 에서 레파지토리 기본 페이지로 이동
- 레파지토리 이름 아래에서 Actions 작업 클릭
- 왼쪽 사이드바에서 확인할 워크플로우 클릭
- 워크플로우 실행 목록에서 실행 이름을 클릭하여 실행 요약 확인
- 왼쪽 사이드바 또는 시각화 그래프에서 확인할 작업 클릭
- Step의 결과를 보려면 Step 클림
내가 이걸 정리하면서 느낀 점은...
이걸 굳이 이렇게 줄줄이 정리할 필요가 있을까?
흠...
'개발 > 버전 관리' 카테고리의 다른 글
[libs.version.toml] Gradle Version Catalogs를 사용하여 gradle 개선하기 (0) | 2025.02.12 |
---|---|
Github Actions로 업무 자동화 도입하기 #4. Jobs, Step, Actions, Runners (0) | 2024.08.05 |
Github Actions로 업무 자동화 도입하기 #3 : Workflows를 트리거 하는 이벤트 (0) | 2024.07.31 |
Github Actions로 업무 자동화 도입하기 #1 : Github Actions란? (0) | 2024.07.29 |
[Git] Git에서 rebase vs merge 차이 알아보기 (0) | 2024.07.02 |