워크플로 살펴보기

워크플로 살펴보기

GitHub Actions 워크플로에 대한 높은 수준의 개요를 트리거, 문법, 고급 기능까지 함께 알아볼게요.

출처: Workflows

본문

워크플로 소개

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

워크플로는 리포지토리의 .github/workflows 디렉토리에 정의돼요. 리포지토리는 여러 워크플로를 가질 수 있으며, 각 워크플로는 다음과 같은 서로 다른 작업 집합을 수행할 수 있어요:

  • 풀 리퀘스트 빌드 및 테스트
  • 릴리스가 생성될 때마다 애플리케이션 배포
  • 새 이슈가 열릴 때마다 라벨 추가

워크플로 기본

워크플로는 다음 기본 구성 요소를 포함해야 해요:

  1. 워크플로를 트리거할 하나 이상의 이벤트.
  2. 각각 러너(runner) 머신에서 실행되고 하나 이상의 단계(step) 시리즈를 실행하는 하나 이상의 작업(job).
  3. 각 단계는 정의한 스크립트를 실행하거나, 워크플로를 단순화할 수 있는 재사용 가능한 확장인 액션(action)을 실행할 수 있어요.

이 기본 구성 요소에 대한 자세한 내용은 GitHub Actions 이해하기를 참고하세요.

이벤트가 러너 1을 트리거해 작업 1을 실행하고, 작업 1이 러너 2를 트리거해 작업 2를 실행하는 다이어그램. 각 작업은 여러 단계로 나뉘어 있음.

워크플로 트리거

워크플로 트리거는 워크플로를 실행하게 하는 이벤트예요. 이 이벤트는 다음과 같을 수 있어요:

  • 워크플로의 리포지토리에서 발생하는 이벤트
  • GitHub 밖에서 발생하고 GitHub에 repository_dispatch 이벤트를 트리거하는 이벤트
  • 예약된 시간
  • 수동

예를 들어 리포지토리의 기본 분기에 푸시가 발생할 때, 릴리스가 생성될 때, 또는 이슈가 열릴 때 워크플로가 실행되도록 구성할 수 있어요.

워크플로 트리거는 on 키로 정의돼요. 자세한 내용은 GitHub Actions 워크플로 문법을 참고하세요.

워크플로 실행을 트리거하기 위해 다음 단계가 발생해요:

  1. 리포지토리에서 이벤트가 발생해요. 이벤트에는 연결된 커밋 SHA와 Git ref가 있어요.
  2. GitHub은 리포지토리 루트의 .github/workflows 디렉토리에서 이벤트의 연결된 커밋 SHA 또는 Git ref에 존재하는 워크플로 파일을 검색해요.
  3. on: 값이 트리거 이벤트와 일치하는 모든 워크플로에 대해 워크플로 실행이 트리거돼요. 일부 이벤트는 실행되려면 워크플로 파일이 리포지토리의 기본 분기에 존재해야 하기도 해요.

각 워크플로 실행은 이벤트의 연결된 커밋 SHA 또는 Git ref에 존재하는 워크플로 버전을 사용해요. 워크플로가 실행되면 GitHub은 러너 환경에 GITHUB_SHA(커밋 SHA)와 GITHUB_REF(Git ref) 환경 변수를 설정해요. 자세한 내용은 변수에 정보 저장하기를 참고하세요.

자세한 내용은 워크플로 트리거하기를 참고하세요.

다음 단계

첫 번째 워크플로를 만들려면 예시 워크플로 만들기를 참고하세요.

더 알아보기 (Learn more)