Github Action이란
GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포(CI/CD) 플랫폼이다. 레포지토리에 대한 모든 풀 리퀘스트를 빌드하고 테스트하는 워크플로를 만들거나 병합된 풀 리퀘스트를 프로덕션에 배포할 수 있다.
GitHub Action을 사용하는 이유
- Github와 하나로 통일된 환경에서 CI 수행이 가능하다.
- 중앙에서 관리하는 Github Actions Runner에 지속적으로 트러블 슈팅하여 원활한 CI 환경 구성이 가능하다.
- 프로젝트마다 개별 Runner를 통한 빌드 테스트가 가능하다.
- Github Actions Runner 기동을 하기 위해 친숙한 문법의 YAML 파일로 간단하게 파이프라인 구성이 가능하다.
- 깃허브가 public 형태의 레포지터리인 경우 Github action의 비용은 무료이다.
Github Actions의 구성 요소
GitHub Actions는 코드 저장소에서 이벤트를 감지하고 해당 이벤트에 대한 작업을 실행하는 데 사용된다.
https://docs.github.com/ko/actions/learn-github-actions/understanding-github-actions
Workflow
Workflow란 Github Actions에서 수행되는 일련의 작업들을 정의한다.
하나 이상의 Job으로 구성되어 있으며, Push나 PR과 같은 이벤트에 의해 실행될 수도 있고 특정 시간대에 실행될 수도 있다.
빌드, 테스트, 배포 등 각각의 역할에 맞는 Workflow를 추가할 수 있고,.github/workflows
디렉토리에 YAML 형태로 저장한다.Event
Event란 Workflow를 실행시키는 Push, Pull Request, Commit 등의 특정 행동을 의미한다. 이벤트는 YAML 파일 내에서 ‘on’ 키워드를 사용하여 정의되며, 특정 브랜치에 대한 푸시와 같은 세부사항을 추가로 지정할 수 있다.Job
Job이란 동일한 Runner에서 실행되는 여러 Step의 집합을 의미합니다.
보통 빌드, 테스트, 배포 등과 같이 연관된 작업들을 하나의 Job으로 묶어서 관리한다.
기본적으로 하나의 Workflow 내의 여러 Job은 독립적으로 실행되지만, 필요에 따라 의존 관계를 설정하여 순서를 지정해줄 수 있습니다.
예를 들어 빌드 작업을 수행하는 Job과 테스트를 수행하는 Job이 하나의 Workflow에 있다고 생각했을때, 여기서 의존관계를 설정해 빌드 Job이 성공적으로 끝나야 테스트 Job도 수행할 수 있도록 지정할 수 있다.
따라서 만약 빌드가 실패할 시에는 테스트 Job도 실행되지 않는다.Step
Step이란 커맨드를 실행할 수 있는 각각의 Task를 의미하는데, Shell 커맨드가 될 수도 있고, 하나의 Action이 될 수도 있다.
하나의 Job 내에서 각각의 Step은 다양한 Task로 인해 생성된 데이터를 공유할 수 있다.
Step은 Workflow에서 정의된 순서대로 실행되며, 각 Step이 성공적으로 완료되어야 다음 Step이 실행된다.Action
Action이란 Job을 만들기 위해 Step을 결합한 독립적인 커맨드로, 재사용이 가능한 Workflow의 가장 작은 단위의 블럭이다.
직접 만든 Action을 사용하거나 Github Community에 의해 생성된 Action을 불러와 사용할 수 있다.Runner
Runner란 Github Actions Workflow 내에 있는 Job을 실행시키기 위한 애플리케이션이다.
Runner Application은 Github에서 호스팅하는 가상 환경 또는 직접 호스팅하는 가상 환경에서 실행 가능하며, Github에서 호스팅하는 가상 인스턴스의 경우에는 메모리 및 용량 제한이 존재한다.
정리해보면 Github Actions의 빌드는 Event를 통해 실행이 된다. 여기서 Event란 push, pull, PR 등 Github에서 일어날 수 있는 모든 Event를 말한다.
Event가 발생되면 Runner는 해당 프로젝트의 빌드를 시작하게 된다.
빌드가 시작 되면 Runner에는 Workflow가 담기게 되며 Runner는 해당 Workflow를 실행하게 된다.
Workfow는 Job과 Step으로 구성되어 있으며 Step은 Workflow를 이루는 최소 단위이다.
Step이 모두 정상적으로 실행되어야 상위 단위인 Job이 성공되어지고 Job이 성공해야 Workflow가 성공하여 최종적으로 빌드가 완료되었다고 판단할 수 있다.
'DevOps > Git' 카테고리의 다른 글
[Git] Git 파일 관리 : add, status, rm (0) | 2025.04.16 |
---|---|
[Git] Git 저장소 생성 및 연결 : init, clone, remote (0) | 2025.04.15 |
[Git] Git 설치 및 초기 설정 : config (0) | 2025.04.14 |
[Git] Git이란 무엇인가요? (0) | 2025.04.13 |
GitHub Action CI/CD 파이프라인 구축하기(1) (0) | 2023.11.26 |