mingming

Github Action 이란? 본문

DevOps

Github Action 이란?

mingming_96 2023. 8. 11. 01:35

Github Action이란?

GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포(CI/CD) 플랫폼입니다. 리포지토리에 대한 모든 풀 요청을 빌드 및 테스트하는 워크플로를 생성하거나 병합된 풀 요청을 프로덕션에 배포할 수 있습니다.

 

Github Action 기본개념

워크플로우

워크플로는 하나 이상의 작업을 실행하는 구성 가능한 자동화 프로세스입니다. 워크플로는 리포지토리에 체크인한 YAML 파일에 의해 정의되며 리포지토리의 이벤트에 의해 트리거될 때 실행되거나 수동으로 또는 정의된 일정에 따라 트리거될 수 있습니다.

워크플로는 리포지토리의 디렉터리에 정의되며 .github/workflows리포지토리에는 각각 다른 작업 집합을 수행할 수 있는 여러 워크플로가 있을 수 있습니다. 예를 들어 풀 리퀘스트를 작성하고 테스트하는 하나의 워크플로, 릴리스가 생성될 때마다 애플리케이션을 배포하는 또 다른 워크플로, 누군가 새 이슈를 열 때마다 레이블을 추가하는 또 다른 워크플로를 가질 수 있습니다.

 

이벤트

이벤트는 워크플로 실행을 트리거하는 리포지토리의 특정 활동입니다. 예를 들어 누군가 풀 요청을 생성하거나 이슈를 열거나 리포지토리에 커밋을 푸시할 때 활동이 GitHub에서 시작될 수 있습니다. REST API에 게시하거나 수동 으로 일정에 따라 실행되도록 워크플로를 트리거할 수도 있습니다 .

 

Jobs

작업은 동일한 실행기에서 실행되는 워크플로우의 일련 의 step입니다. 각 단계는 실행될 쉘 스크립트이거나 실행될 조치 입니다. 단계는 순서대로 실행되며 서로 의존적입니다. 각 단계는 동일한 러너에서 실행되므로 한 step에서 다른 step으로 데이터를 공유할 수 있습니다. 

다른 작업과 작업의 종속성을 구성할 수 있습니다. 기본적으로 작업에는 종속성이 없으며 서로 병렬로 실행됩니다. 작업이 다른 작업에 종속되면 종속 작업이 실행되기 전에 완료될 때까지 기다립니다. 예를 들어 종속성이 없는 서로 다른 아키텍처에 대한 여러 빌드 작업과 이러한 작업에 종속된 패키징 작업이 있을 수 있습니다. 빌드 작업은 병렬로 실행되며 모두 성공적으로 완료되면 패키징 작업이 실행됩니다.

 

Actions

작업  복잡하지만 자주 반복되는 작업을 수행하는 GitHub Actions 플랫폼용 사용자 지정 애플리케이션입니다. 작업을 사용하여 워크플로 파일에 작성하는 반복 코드의 양을 줄이는 데 도움이 됩니다. 작업은 GitHub에서 git 리포지토리를 가져오거나 빌드 환경에 대한 올바른 도구 체인을 설정하거나 클라우드 공급자에 대한 인증을 설정할 수 있습니다.

 

Runners

러너는 트리거될 때 워크플로를 실행하는 서버입니다. 각 러너는 한 번에 하나의 작업을 실행할 수 있습니다. GitHub는 Ubuntu Linux, Microsoft Windows 및 macOS 실행기를 제공하여 워크플로를 실행합니다. 각 워크플로 실행은 새로 프로비저닝된 새로운 가상 머신에서 실행됩니다. GitHub는 또한 더 큰 구성에서 사용할 수 있는 더 큰 러너를 제공합니다. 

 

Github Action은 예시 워크 플로우를 제공하고 있습니다. 

 위와 같이 여러 플랫폼과 호환할 수 있는 예시 워크플로우를 제공합니다.

 

다음 글에선 실제 프로젝트에 사용한 Github action 워크플로우를 소개해보겠습니다.