Skip to main content

GitHub Actions 이해

핵심 개념 및 필수 용어를 포함하여 GitHub Actions의 기본 사항을 알아봅니다.

개요

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

GitHub Actions은(는) 단순한 DevOps 수준을 넘어 리포지토리에서 다른 이벤트가 발생할 때 워크플로를 실행할 수 있도록 합니다. 예를 들어 누군가가 리포지토리에서 새 이슈를 만들 때마다 워크플로를 실행하여 적절한 레이블을 자동으로 추가할 수 있습니다.

GitHub에서 워크플로를 실행할 Linux, Windows, macOS 가상 머신을 제공하거나, 사용자 고유의 데이터 센터 또는 클라우드 인프라에서 자체 호스트형 실행기를 호스트할 수 있습니다.

엔터프라이즈에 GitHub Actions 도입에 대한 자세한 내용은 "엔터프라이즈에 GitHub Actions 도입"을 참조하세요.

GitHub Actions의 구성 요소

끌어오기 요청이 열리거나 이슈가 생성되는 것과 같은 ‘이벤트’가 리포지토리에서 발생할 때 트리거되도록 GitHub Actions ‘워크플로’를 구성할 수 있습니다.******** 워크플로는 순차적 또는 병렬로 실행될 수 있는 ‘작업’을 하나 이상 포함합니다.**** 각 작업은 자체 가상 머신 ‘실행기’ 또는 컨테이너 내에서 실행되며, 정의한 스크립트를 실행하거나 워크플로를 간소화할 수 있는 재사용 가능한 확장인 ‘작업’을 실행하는 ‘단계’를 하나 이상 포함합니다.************

실행기 1이 작업 1을 실행하도록 트리거하고, 실행기 2가 작업 2를 실행하도록 트리거하는 이벤트의 다이어그램입니다. 각 작업은 여러 단계로 구분됩니다.

워크플로

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

워크플로는 리포지토리의 .github/workflows 디렉터리에 정의됩니다. 리포지토리에 다음과 같은 각각의 다른 작업 집합을 수행하는 여러 워크플로가 있을 수 있습니다.

  • 끌어오기 요청을 빌드하고 테스트합니다.
  • 릴리스가 생성될 때마다 애플리케이션을 배포합니다.
  • 새 문제가 보고될 때마다 레이블을 추가합니다.

다른 워크플로 내에서 워크플로를 참조할 수 있습니다. 자세한 정보는 "워크플로 다시 사용"을(를) 참조하세요.

자세한 정보는 "워크플로 작성"을(를) 참조하세요.

이벤트

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

워크플로를 트리거하는 데 사용할 수 있는 이벤트의 전체 목록은 워크플로를 트리거하는 이벤트를 참조하세요.

작업

작업은 동일한 실행기에서 실행되는 워크플로의 단계 집합입니다. 각 단계는 실행되는 셸 스크립트 또는 실행되는 ‘작업’입니다.**** 단계는 순서대로 실행되며 서로 종속됩니다. 각 단계가 동일한 실행기에서 실행되므로 단계 간에 데이터를 공유할 수 있습니다. 예를 들어 애플리케이션을 빌드하는 단계 뒤에 빌드된 애플리케이션을 테스트하는 단계가 있을 수 있습니다.

작업 간 종속성을 구성할 수 있습니다. 기본적으로 작업은 종속성이 없으며 병렬로 실행됩니다. 작업이 다른 작업에 종속되면 작업은 실행하기 전에 종속 작업이 완료되기를 기다립니다.

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

자세한 내용은 "워크플로에서 수행하는 작업 선택"을(를) 참조하세요.

actions

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

사용자 고유의 작업을 작성하거나, GitHub Marketplace에서 워크플로에 사용할 작업을 찾을 수 있습니다.

작업을 공개적으로 게시하지 않고 엔터프라이즈에서 작업을 공유하려면 내부 리포지토리에 작업을 저장한 다음, 엔터프라이즈 내 동일한 조직 또는 모든 조직이 소유한 다른 리포지토리의 GitHub Actions 워크플로에 액세스할 수 있도록 리포지토리를 구성하면 됩니다. 자세한 정보는 "엔터프라이즈와 작업 및 워크플로 공유"을(를) 참조하세요.

작업에 대한 자세한 내용은 "자동화 공유 중"을(를) 참조하세요.

실행기

실행기는 트리거될 때 워크플로를 실행하는 서버입니다. 각 실행자는 한 번에 하나의 작업을 실행할 수 있습니다. GitHub은(는) 워크플로를 실행할 Ubuntu Linux, Microsoft Windows, macOS 실행기를 제공합니다. 각 워크플로 실행은 새로 프로비저닝된 새 가상 머신에서 실행됩니다.

또한 GitHub에서는 더 큰 구성에서 사용할 수 있는 더 큰 실행기을(를) 제공합니다. 자세한 내용은 "대규모 실행기 정보"을(를) 참조하세요.

다른 운영 체제가 필요하거나 특정 하드웨어 구성이 필요한 경우 자체 실행기를 호스트할 수 있습니다.

자체 호스팅 실행에 대한 자세한 내용은 "사용자 고유의 실행기 호스팅"을 참조하세요.

다음 단계

GitHub Actions은(는) 애플리케이션 개발 프로세스의 거의 모든 측면을 자동화하는 데 도움이 될 수 있습니다. 시작할 준비가 되셨나요? GitHub Actions을(를) 사용하여 다음 단계를 수행하는 데 유용한 리소스는 다음과 같습니다.

  • GitHub Actions 워크플로를 만드는 방법은 "Using workflow templates"을 참조하세요.
  • 연속 통합(CI, continuous integration) 워크플로는 "AUTOTITLE"을 참조하세요.
  • 패키지를 빌드하고 게시하려면 "패키지 게시"을 참조하세요.
  • 프로젝트를 배포하려면 "사용 사례 및 예제"을 참조하세요.
  • GitHub에서 작업 및 프로세스를 자동화하려면 "프로젝트 관리"을 참조하세요.
  • GitHub Actions의 더 복잡한 기능을 보여 주는 예제는 “사용 사례 및 예제”을 참조하세요. 이러한 예제를 통해 실행기에서 코드를 테스트하고, GitHub CLI에 액세스하고, 동시성 및 테스트 매트릭스와 같은 고급 기능을 사용하는 방법을 볼 수 있습니다.
  • GitHub Actions을(를) 사용한 워크플로 자동화 및 개발 가속화에 대한 숙련도를 인증하려면 GitHub Certifications을(를) 통해 GitHub Actions 인증서를 획득합니다. 자세한 내용은 "GitHub Certifications 정보"을 참조하세요.

추가 참고 자료