2 분 소요

깃허브 액션(GitHub Actions)는 깃허브 리포지토리 워크플로의 액션 집합입니다. 이러한 작업을 통해 소프트웨어 개발 워크플로를 사용 자 지정하고 실행할 수 있습니다. 작업을 생성 하거나 기존 작업을 활용 하고 워크플로를 생성 및 사용자 지정하여 액션을 수행하거나 지속적 통합 및 전달을 포함한 소프트웨어 개발 수명 주기 프로세스를 자동화할 수 있습니다. 이 글은 깃허브 액션이란 무엇인가에 대해 알아보도록 하겠습니다.

1.3 깃허브 액션 소개

액션은 워크플로를 만들기 위해 결합할 수 있는 개별적인 액션 작업입니다. 워크플로는 깃허브 리포지토리에 저장할 수 있는 YAML 파일에 구성된 작업이 있는 하나 이상의 자동화된 액션입니다. 각 주요 개념에 대해서는 정리하자면 다음과 같습니다.

Action

워크플로의 가장 작은 구성 요소는 개별 단위 작업(task)으로 식별할 수 있는 액션(action)으로 구성되어 있습니다. 이러한 단위 작업이나 단계를 결합하여 워크플로에서 실행할 수 있는 작업(job)을 만들 수 있습니다. 마켓플레이스의 기존 액션은 작업 및 워크플로를 생성할 수 있으며, 사용자 지정하거나 고유한 액션들을 생성할 수 있습니다. 또한 액션은 워크플로에서 사용할 하나의 작업의 단계로 사용해야 합니다. 따라서, 리포지토리를 체크아웃하고 아티팩트를 빌드 및 게시할 수 있는 워크플로를 구성하려면 하나의 작업을 액션으로 결합해야 합니다.

Artifacts

소프트웨어 프로젝트를 빌드하거나 소프트웨어 프로젝트를 테스트할 때 생성되는 파일은 아티팩트(artifact)입니다. 아티팩트에는 소프트웨어를 배포하는 데 필요한 바이너리 패키지와 배포 활동에 필요한 구성 또는 인프라 스크립트와 같은 지원 파일이 포함될 수 있습니다. 하나의 작업에서 아티팩트를 만들고 워크플로의 배포 작업에 대해 다른 작업에서 사용할 수 있습니다.

Job

하나의 작업은 단일 실행기에서 실행되도록 설정된 일련의 단계입니다. 작업은 하나 이상의 작업으로 구성될 수 있습니다. 작업은 단일 워크플로에서 병렬로 실행할 수 있으며 종속성을 설정하여 작업을 순차적으로 실행할 수 있습니다. 종속성이 실패하면 종속 작업이 실행되지 않습니다. 워크플로의 각 작업은 실행기의 새로운 인스턴스에서 실행됩니다. 작업은 러너의 운영체제와 버전을 지정해야 합니다.

Step

액션 또는 명령(command)인 단위 작업(task)은 하나의 단계(step)로 식별됩니다. 작업의 모든 단계는 동일한 실행기에서 실행됩니다. 파일 시스템의 정보는 단일 작업에서 액션 및 명령을 포함한 여러 단계와 공유됩니다.

Event

이벤트(Event)는 깃허브 액션에서 워크플로를 트리거합니다. 코드 변경이 푸시되거나 풀 요청이 이루어지면 깃허브 액션에서 이벤트를 설정하여 워크플로를 트리거할 수 있습니다. 하나의 리포지토리 디스패치 웹훅을 사용하여 외부 트리거를 구성할 수 있습니다. 배포, 워크플로 디스패치 및 확인 실행과 같은 다른 많은 웹훅을 사용할 수도 있습니다.

GitHub-Hosted Runners

호스팅된 러너(Hosted Runner)는 애저 데브옵스 파이프라인의 호스팅된 에이전트와 유사한 시스템입니다. 윈도우, 리눅스 및 맥OS에서 지원됩니다. 이러한 머신에는 일반적으로 사용되는 소프트웨어가 사전 설치되어 있습니다. 호스팅 러너의 하드웨어 구성은 사용자 지정할 수 없습니다. 깃허브 호스팅 러너 가상 환경에는 하드웨어 구성, 운영 체제 및 설치된 소프트웨어 정보가 포함되어 있습니다. 설치된 소프트웨어 및 운영체제 정보는 여기에서 찾을 수 있습니다.

Self-Hosted Runner

셀프-호스트 러너(Self-Hosted Runner)는 가상 또는 물리적 머신에서 자체 호스팅 러너를 설정하고, 깃허브 리포지토리에 연결하여 작업을 실행할 수 있습니다. 셀프 호스팅 러너는 응용 프로그램을 빌드하거나 작업을 실행하기 위한 특별한 하드웨어 구성 또는 소프트웨어 요구 사항이 있는 경우에 유용합니다.

Workflow

깃허브 리포지토리에서 빌드, 테스트, 패키지 또는 배포 작업을 정의하는 YAML 파일에 설정된 프로세스를 워크플로(Workflow)라고 합니다. 워크플로는 애저 데브옵스 빌드 및 릴리스와 유사하게 트리거/이벤트를 기반으로 실행되도록 예약됩니다. 워크플로에는 요구 사항에 따라 순차적으로 또는 병렬로 실행되도록 설정된 하나 이상의 작업이 포함될 수 있습니다.

  • Workflow File: 깃허브 리포지토리의 github/workflows/folder에 저장된 YAML 파일은 워크플로 파일입니다. 하나의 워크플로 파일은 이벤트를 기반으로 실행되는 워크플로로 정의됩니다.
  • Workflow Run: 워크플로는 미리 구성된 트리거/이벤트를 기반으로 실행됩니다. 워크플로 실행은 애저 데브옵스에서 실행되는 빌드 또는 릴리스 파이프라인과 유사합니다. 로그들은 실패한 작업들 또는 성공적인 작업 활동에 대해 알려줍니다. 각 워크플로는 실행된 작업 및 액션 또는 명령에 대한 로그를 실행합니다.

글을 마치며

이번 컬럼에서는 깃허브 액션의 몇 가지 중요한 핵심 개념을 살펴보았습니다.

업데이트: