Skip to main content
설명서에 자주 업데이트를 게시하며 이 페이지의 번역이 계속 진행 중일 수 있습니다. 최신 정보는 영어 설명서를 참조하세요.

이 버전의 GitHub Enterprise는 다음 날짜에 중단됩니다. 2023-03-15. 중요한 보안 문제에 대해서도 패치 릴리스가 이루어지지 않습니다. 성능 향상, 향상된 보안, 새로운 기능을 위해 최신 버전의 GitHub Enterprise로 업그레이드합니다. 업그레이드에 대한 도움말은 GitHub Enterprise 지원에 문의하세요.

GitHub Actions 이해

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

참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.

개요

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

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

GitHub Enterprise Server 인스턴스에 대한 워크플로를 실행하려면 사용자 고유의 Linux, Windows 또는 macOS 가상 머신을 호스트해야 합니다. 자체 호스팅 실행기는 물리적, 가상, 컨테이너, 온-프레미스 또는 클라우드에 있을 수 있습니다.

엔터프라이즈에 GitHub Actions를 도입하는 방법에 대한 자세한 내용은 “엔터프라이즈에 GitHub Actions 도입”을 참조하세요.

GitHub Actions의 구성 요소

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

워크플로 개요

워크플로

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

워크플로는 리포지토리의 .github/workflows 디렉터리에 정의되며 리포지토리에는 여러 워크플로가 있을 수 있으며, 각 워크플로는 다른 작업 세트를 수행할 수 있습니다. 예를 들어 끌어오기 요청을 빌드 및 테스트하는 워크플로, 릴리스가 생성될 때마다 애플리케이션을 배포하는 워크플로, 누군가가 새 이슈를 열 때마다 레이블을 추가하는 워크플로가 있을 수 있습니다.

다른 워크플로 내에서 워크플로를 참조할 수 있습니다. "워크플로 다시 사용"을 참조하세요.

워크플로에 대한 자세한 내용은 “워크플로 사용”을 참조하세요.

이벤트

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

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

작업

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

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

작업에 대한 자세한 내용은 “작업 사용”을 참조하세요.

동작

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

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

자세한 내용은 “작업 만들기”를 참조하세요.

실행기

실행기는 트리거될 때 워크플로를 실행하는 서버입니다. 각 실행기는 한 번에 하나의 작업을 실행할 수 있습니다. 사용자 고유의 GitHub Enterprise Server용 실행기를 호스트해야 합니다. 자세한 내용은 “사용자 고유의 실행기 호스트”를 참조하세요.

예제 워크로드 만들기

GitHub Actions는 YAML 구문을 사용하여 워크플로를 정의합니다. 각 워크플로는 코드 리포지토리의 .github/workflows 디렉터리에 별도의 YAML 파일로 저장됩니다.

리포지토리에서 코드가 푸시될 때마다 일련의 명령을 자동으로 트리거하는 예제 워크플로를 만들 수 있습니다. 이 워크플로에서 GitHub Actions는 푸시된 코드를 체크 아웃하고 bats 테스트 프레임워크를 설치하고, 기본 명령 bats -v를 실행하여 bats 버전을 출력합니다.

  1. 리포지토리에서 워크플로 파일을 저장할 .github/workflows/ 디렉터리를 만듭니다.

  2. .github/workflows/ 디렉터리에서 learn-github-actions.yml이라는 새 파일을 만들고 다음 코드를 추가합니다.

    YAML
    name: learn-github-actions
    on: [push]
    jobs:
      check-bats-version:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - uses: actions/setup-node@v2
            with:
              node-version: '14'
          - run: npm install -g bats
          - run: bats -v
  3. 변경 내용을 커밋하고 GitHub 리포지토리에 푸시합니다.

이제 새 GitHub Actions 워크플로 파일이 리포지토리에 설치되고, 누군가가 리포지토리에 변경 내용을 푸시할 때마다 자동으로 실행됩니다. 워크플로의 실행 기록에 관한 세부 정보를 보려면 “워크플로 실행에 대한 작업 보기”를 참조하세요.

워크플로 파일 이해

YAML 구문을 사용하여 워크플로 파일을 만드는 방법의 이해를 돕기 위해 이 섹션에서는 소개 예제의 각 줄에 대해 설명합니다.

name: learn-github-actions
선택적 - GitHub 리포지토리의 "작업" 탭에 표시되는 워크플로의 이름입니다.
on: [push]
이 워크플로의 트리거를 지정합니다. 이 예제에서는 push 이벤트를 사용하므로 누군가가 리포지토리에 변경 내용을 푸시하거나 끌어오기 요청을 병합할 때마다 워크플로 실행이 트리거됩니다. 모든 분기에 대한 푸시로 트리거됩니다. 특정 분기, 경로 또는 태그에 푸시할 때만 실행되는 구문의 예제는 “GitHub Actions의 워크플로 구문”을 참조하세요.
jobs:
learn-github-actions 워크플로에서 실행되는 모든 작업을 그룹화합니다.
check-bats-version:
check-bats-version이라는 작업을 정의합니다. 자식 키는 작업의 속성을 정의합니다.
  runs-on: ubuntu-latest
Ubuntu Linux 실행기의 최신 버전에서 실행되도록 작업을 구성합니다. 즉, GitHub에서 호스트된 새 가상 머신에서 작업이 실행됩니다. 다른 실행기를 사용하는 구문 예제는 “GitHub Actions의 워크플로 구문”을 참조하세요.
  steps:
check-bats-version 작업에서 실행되는 모든 단계를 그룹화합니다. 이 섹션 아래에 중첩된 각 항목은 별도의 작업 또는 셸 스크립트입니다.
    - uses: actions/checkout@v2
uses 키워드는 이 단계에서 actions/checkout 작업의 v3를 실행하도록 지정합니다. 이 작업은 리포지토리를 실행기로 체크 아웃하여 스크립트 또는 코드에 대한 기타 작업(예: 빌드 및 테스트 도구)을 실행할 수 있도록 합니다. 워크플로가 리포지토리의 코드에 대해 실행될 때마다 체크 아웃 작업을 사용해야 합니다.
    - uses: actions/setup-node@v2
      with:
        node-version: '14'
이 단계에서는 actions/setup-node@v2 작업을 사용하여 지정된 버전의 Node.js를 설치합니다(이 예제에서는 v14 사용). 이렇게 하면 nodenpm 명령이 모두 PATH에 배치됩니다.
    - run: npm install -g bats
run 키워드는 실행기에서 명령을 실행하도록 작업에 지시합니다. 이 예제에서는 npm을 사용하여 bats 소프트웨어 테스트 패키지를 설치합니다.
    - run: bats -v
최종적으로, 소프트웨어 버전을 출력하는 매개 변수와 함께 bats 명령을 실행합니다.

워크플로 파일 시각화

아래 다이어그램에서, 방금 만든 워크플로 파일 및 GitHub Actions 구성 요소가 계층 구조로 구성된 방식을 확인할 수 있습니다. 각 단계는 단일 작업 또는 셸 스크립트를 실행합니다. 1단계와 2단계는 작업을 실행하는 반면, 3단계와 4단계는 셸 스크립트를 실행합니다. 워크플로에 대해 미리 빌드된 작업을 더 찾으려면 “작업 찾기 및 사용자 지정”을 참조하세요.

워크플로 개요

워크플로 실행에 대한 작업 보기

워크플로가 트리거되면 워크플로를 실행하는 워크플로 실행이 만들어집니다. 워크플로 실행이 시작된 후 GitHub에서 실행 진행률 시각화 그래프를 확인하고 각 단계의 작업을 볼 수 있습니다.

  1. GitHub Enterprise Server 인스턴스에서 리포지토리의 기본 페이지로 이동합니다.

  2. 리포지토리 이름 아래에 있는 작업을 클릭합니다.

    리포지토리로 이동

  3. 왼쪽 사이드바에서 확인할 워크플로를 클릭합니다.

    워크플로 결과 스크린샷

  4. “워크플로 실행”에서 확인할 실행의 이름을 클릭합니다.

    워크플로 실행 스크린샷

  5. 작업 또는 시각화 그래프에서 보려는 작업을 클릭합니다.

    작업 선택

  6. 각 단계의 결과를 봅니다.

    워크플로 실행 세부 정보 스크린샷

다음 단계

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

  • 코드를 빌드하고 테스트하는 CI(연속 통합) 워크플로는 "빌드 및 테스트 자동화"를 참조하세요.
  • 패키지를 빌드하고 게시하려면 "패키지 게시"를 참조하세요.
  • 프로젝트를 배포하려면 "배포"를 참조하세요.
  • GitHub에서 작업 및 프로세스를 자동화하려면 "문제 및 끌어오기 요청 관리"를 참조하세요.
  • 위의 많은 사용 사례를 포함하여 GitHub Actions의 더 복잡한 기능을 보여 주는 예제는 "예제"를 참조하세요. 실행기에서 코드를 테스트하고, GitHub CLI에 액세스하고, 동시성 및 테스트 매트릭스와 같은 고급 기능을 사용하는 방법을 설명하는 자세한 예제를 볼 수 있습니다.

고객 지원팀에 연락

구문, GitHub 호스팅 실행기 또는 빌드 작업과 같은 워크플로 구성과 관련된 사항에 대한 도움이 필요한 경우 기존 토픽을 찾거나 GitHub Community's GitHub Actions 및 GitHub Packages 범주에서 새 토픽을 시작합니다.

GitHub Actions에 대한 피드백 또는 기능 요청이 있는 경우 GitHub Actions 대한 GitHub 커뮤니티 토론에서 공유하세요.

사용 또는 용도가 사용량 한도 범주에 속하는지 여부에 관계없이 다음과 같은 경우 사이트 관리자에 문의하세요.

  • 계정이 잘못 제한되었다고 생각되는 경우
  • 작업 중 하나를 실행할 때 예기치 않은 오류가 발생하는 경우
  • 기존 동작이 항상 문서화되지는 않는 예상 동작과 상반되는 상황이 발생하는 경우

추가 참고 자료