Skip to main content

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

워크플로에서 자체 호스트형 실행기 사용

워크플로에서 자체 호스트형 실행기를 사용하려면 레이블 또는 그룹을(를) 사용하여 작업에 대한 실행기를 지정할 수 있습니다.

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

실행기에 할당된 레이블 또는 해당 그룹 멤버 자격 또는 이러한 의 조합을 기반으로 워크플로에서 사용할 자체 호스트형 실행기를 대상으로 지정할 수 있습니다.

Note

작업 실행기 컨트롤러는 여러 레이블을 지원하지 않으며, 레이블 대신 실행기의 이름만 사용할 수 있습니다.

자체 호스트형 실행기 레이블 정보

레이블을 사용하면 공유 특성에 따라 특정 유형의 자체 호스트형 실행기에 워크플로 작업을 보낼 수 있습니다. 예를 들어 작업에 특정 하드웨어 구성 요소 또는 소프트웨어 패키지가 필요한 경우 실행기에 사용자 지정 레이블을 할당한 다음, 해당 레이블이 있는 실행기에서만 실행되도록 작업을 구성할 수 있습니다.

작업에 대한 자체 호스팅 실행기를 지정하려면 자체 호스팅 실행기 레이블을 사용하여 워크플로 파일에서 runs-on을 구성합니다.

자체 호스트형 실행기에는 self-hosted 레이블이 있을 수 있습니다. 자체 호스트형 실행기를 설정할 때 기본적으로 self-hosted 레이블이 포함됩니다. 자체 호스트형 레이블이 적용되지 않도록 --no-default-labels 플래그를 전달할 수 있습니다. 레이블은 운영 체제 또는 아키텍처와 같은 실행기에 대한 타겟팅 옵션을 만드는 데 사용할 수 있으며, self-hosted로 시작하는 레이블 배열(먼저 나열해야 함)을 제공한 다음 필요에 따라 추가 레이블을 포함하는 것이 좋습니다. 레이블 배열을 지정하면 지정한 모든 레이블이 있는 실행기에서 작업이 큐에 대기됩니다.

Action-runner-controller는 다중 레이블을 지원하지 않으며 self-hosted 레이블을 지원하지 않는다는 점에 유의하세요.

사용자 지정 및 기본 레이블을 만드는 방법에 대한 자세한 내용은 "자체 호스트형 실행기로 레이블 사용"을 참조하세요.

자체 호스트형 실행기 그룹 정보

조직 또는 엔터프라이즈 수준에 정의된 자체 호스트형 실행기의 경우 공유 특성으로 실행기를 단일 실행기 그룹으로 그룹화한 다음, 실행기 그룹을 대상으로 지정하도록 작업을 구성할 수 있습니다.

작업에 대한 자체 호스트형 실행기 그룹을 지정하려면 워크플로 파일에서 runs-on.group을 구성합니다.

실행기 그룹 만들기 및 관리에 대한 자세한 내용은 "그룹을 사용하여 자체 호스트형 실행기에 대한 액세스 관리"을 참조하세요.

기본 레이블을 사용하여 작업 라우팅

자체 호스트형 실행기는 GitHub Actions에 추가된 특정 레이블을 자동으로 받습니다. 이 레이블은 운영 체제와 하드웨어 플랫폼을 나타내는 데 사용됩니다.

  • self-hosted: 자체 호스트형 실행기에 적용되는 기본 레이블입니다.
  • linux, windows 또는 macOS: 운영 체제에 따라 적용됩니다.
  • x64, ARM 또는 ARM64: 하드웨어 아키텍처에 따라 적용됩니다.

워크플로의 YAML을 사용하여 이 레이블의 조합에 작업을 보낼 수 있습니다. 이 예시에서는 다음 3개 레이블과 모두 일치하는 자체 호스트형 실행기에서 작업을 실행할 수 있습니다.

runs-on: [self-hosted, linux, ARM64]
  • self-hosted - 자체 호스트형 실행기에서 이 작업을 실행합니다.
  • linux - Linux 기반 실행기만 사용합니다.
  • ARM64 - ARM64 하드웨어 기반의 실행기만 사용합니다.

기본 레이블 없이 개별 자체 호스트형 실행기를 만들려면 실행기를 만들 때 --no-default-labels 플래그를 전달합니다. 작업 실행기 컨트롤러는 여러 레이블을 지원하지 않습니다.

사용자 지정 레이블을 사용하여 작업 라우팅

언제든지 사용자 지정 레이블을 만들어 자체 호스트형 실행기에 할당할 수 있습니다. 사용자 지정 레이블을 사용하면 레이블 지정 방법에 따라 특정 유형의 자체 호스트형 실행기에 작업을 보낼 수 있습니다.

예를 들어 특정 유형의 그래픽 하드웨어가 필요한 작업이 있는 경우 gpu라는 사용자 지정 레이블을 생성하여 하드웨어가 설치된 실행기에 할당할 수 있습니다. 그런 다음, 할당된 모든 레이블과 일치하는 자체 호스트형 실행기에서 작업을 실행할 수 있습니다.

다음 예시에서는 기본 레이블과 사용자 지정 레이블을 결합하는 작업을 보여줍니다.

runs-on: [self-hosted, linux, x64, gpu]
  • self-hosted - 자체 호스트형 실행기에서 이 작업을 실행합니다.
  • linux - Linux 기반 실행기만 사용합니다.
  • x64 - x64 하드웨어 기반의 실행기만 사용합니다.
  • gpu - 이 사용자 지정 레이블은 GPU 하드웨어가 설치된 자체 호스트형 실행기에 수동으로 할당되었습니다.

이러한 레이블은 누적해서 작동하므로 4개의 레이블이 모두 있어야 자체 호스트형 실행기에서 작업을 처리할 수 있습니다.

그룹을 사용하여 작업 라우팅

이 예제에서는 Ubuntu 실행기라는 ubuntu-runners 그룹에 추가되었습니다. runs-on 키는 ubuntu-runners 그룹에서 사용 가능한 모든 실행기로 작업을 보냅니다.

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on: 
      group: ubuntu-runners
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

레이블 및 그룹을 사용하여 작업 라우팅

그룹과 레이블을 결합할 때, 실행기는 작업을 실행할 수 있도록 두 요구 사항을 모두 충족해야 합니다.

이 예제에서 ubuntu-runners 실행기 그룹은 ubuntu-20.04-16core 레이블이 할당된 Ubuntu 실행기로 채워집니다. runs-on 키가 group, labels와 결합되어 작업이 일치하는 레이블이 있는 그룹 내에서 사용 가능한 모든 실행기로 라우팅됩니다.

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on:
      group: ubuntu-runners
      labels: ubuntu-20.04-16core
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

자체 호스트형 실행기의 라우팅 우선 순위

작업을 자체 호스트형 실행기로 라우팅할 때 GitHub은(는) 작업의 runs-on 레이블 및/또는 그룹과(와) 일치하는 실행기를 찾습니다.

  • GitHub이(가) 작업의 runs-on 레이블 및/또는 그룹과(와) 일치하는 온라인 유휴 실행기를 찾으면 작업이 실행기에 할당되어 전송됩니다.
    • 실행기에서 할당된 작업을 60초 이내에 선택하지 않으면 새 실행기가 수락할 수 있도록 작업이 다시 큐에 대기됩니다.
  • GitHub이(가) 작업의 runs-on 레이블 및/또는 그룹과(와) 일치하는 온라인 유휴 실행기를 찾지 못하면 실행기 중 하나가 온라인 상태가 될 때까지 작업이 큐에서 대기합니다.
  • 24시간 넘게 큐에서 대기한 작업은 실패합니다.