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

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

배포에 환경 사용

보호 규칙 및 비밀을 사용하여 환경을 구성할 수 있습니다. 환경을 참조하는 워크플로 작업은 환경에 대한 모든 보호 규칙을 따라야 환경의 비밀을 실행하거나 액세스할 수 있습니다.

환경, 환경 비밀, 환경 보호 규칙은 모든 제품의 퍼블릭 리포지토리에서 사용할 수 있습니다. 프라이빗 또는 내부 리포지토리의 환경, 환경 비밀 및 배포 분기에 액세스하려면 GitHub Pro, GitHub Team, GitHub Enterprise를 사용해야 합니다. 프라이빗 또는 내부 리포지토리의 기타 환경 보호 규칙에 액세스하려면 GitHub Enterprise를 사용해야 합니다.

환경 정보

환경은 일반적인 배포 대상(예: production, staging 또는 development)을 설명하는 데 사용됩니다. GitHub Actions 워크플로가 환경에 배포되면 환경이 리포지토리의 기본 페이지에 표시됩니다. 환경에 대한 배포 보기에 대한 자세한 내용은 “배포 기록 보기”를 참조하세요.

보호 규칙 및 비밀을 사용하여 환경을 구성할 수 있습니다. 워크플로 작업이 환경을 참조하는 경우 환경의 모든 보호 규칙이 통과될 때까지 작업이 시작되지 않습니다. 또한 작업은 모든 환경 보호 규칙이 통과될 때까지 환경에 정의된 비밀에 액세스할 수 없습니다.

환경 보호 규칙

환경 보호 규칙에는 환경을 참조하는 작업이 계속 진행되기 전에 전달해야 하는 특정 조건이 필요합니다. 환경 보호 규칙을 사용하여 수동 승인을 요구하거나, 작업을 지연시키거나, 환경을 특정 분기로 제한할 수 있습니다.

필수 검토자

필수 검토자를 사용하여 특정 사용자 또는 팀이 환경을 참조하는 워크플로 작업을 승인하도록 요구합니다. 최대 6명의 사용자 또는 팀을 검토자로 나열할 수 있습니다. 검토자는 적어도 리포지토리에 대한 읽기 권한이 있어야 합니다. 작업을 계속하려면 필수 검토자 중 한 명만 작업을 승인하면 됩니다.

필수 검토자가 있는 환경을 참조하는 작업을 검토하는 방법에 대한 자세한 내용은 “배포 검토”를 참조하세요.

대기 타이머

대기 타이머를 사용하여 작업이 처음 트리거된 후 특정 시간 동안 작업을 지연시킵니다. 시간(분)은 0에서 43,200(30일) 사이의 정수여야 합니다.

배포 분기

배포 분기를 사용하여 환경에 배포할 수 있는 분기를 제한합니다. 환경에 대한 배포 분기에 대한 옵션은 다음과 같습니다.

  • 모든 분기: 리포지토리의 모든 분기가 환경에 배포할 수 있습니다.

  • 보호된 분기: 분기 보호 규칙이 설정된 분기만 환경에 배포할 수 있습니다. 리포지토리의 모든 분기에 정의된 분기 보호 규칙이 없는 경우 모든 분기를 배포할 수 있습니다. 분기 보호 규칙에 대한 자세한 내용은 “보호된 분기 정보”를 참조하세요.

  • 선택한 분기: 지정된 이름 패턴과 일치하는 분기만 환경에 배포할 수 있습니다.

    예를 들어 releases/*를 배포 분기 규칙으로 지정하는 경우 이름이 releases/로 시작되는 분기만 환경에 배포할 수 있습니다. (와일드카드 문자가 /와 일치하지 않습니다. release/로 시작되고 추가 단일 슬래시를 포함하는 분기를 일치시키려면 release/*/*를 사용합니다.) main을 배포 분기 규칙으로 추가하는 경우 main으로 명명된 분기도 환경에 배포할 수 있습니다. 배포 분기에 대한 구문 옵션에 대한 자세한 내용은 Ruby File.fnmatch 설명서를 참조하세요.

환경 비밀

환경에 저장된 비밀은 환경을 참조하는 워크플로 작업에서만 사용할 수 있습니다. 환경에 승인이 필요한 경우 필수 검토자 중 한 명이 승인할 때까지 작업에서 환경 비밀에 액세스할 수 없습니다. 비밀에 대한 자세한 내용은 “암호화된 비밀”을 참조하세요.

참고: 자체 호스팅 실행기에서 실행되는 워크플로는 환경을 사용하는 경우에도 격리된 컨테이너에서 실행되지 않습니다. 환경 비밀을 리포지토리 및 조직 비밀과 동일한 수준의 보안으로 취급해야 합니다. 자세한 내용은 “GitHub Actions의 보안 강화”를 참조하세요.

환경 생성

개인 계정 리포지토리에서 환경을 구성하려면 리포지토리 소유자여야 합니다. 조직 리포지토리에서 환경을 구성하려면 admin 액세스 권한이 있어야 합니다.

  1. GitHub Enterprise Server 인스턴스에서 리포지토리의 기본 페이지로 이동합니다. 1. 리포지토리 이름 아래에서 설정을 클릭합니다. 리포지토리 설정 단추 1. 왼쪽 사이드바에서 환경을 클릭합니다. 1. 새 환경을 클릭합니다. 1. 환경의 이름을 입력한 다음 환경 구성을 클릭합니다. 환경 이름은 대/소문자를 구분하지 않습니다. 환경 이름은 255자를 초과하지 않아야 하며 리포지토리 내에서 고유해야 합니다.
  2. 필요에 따라 이 환경을 사용하는 워크플로 작업을 승인해야 하는 사용자 또는 팀을 지정합니다.
    1. 필수 검토자를 선택합니다.
    2. 최대 6명 또는 팀을 입력합니다. 작업을 계속하려면 필수 검토자 중 한 명만 작업을 승인하면 됩니다.
    3. 보호 규칙 저장을 클릭합니다.
  3. 필요에 따라 이 환경을 사용하는 워크플로 작업을 계속 진행하도록 허용하기 전에 대기할 시간을 지정합니다.
    1. 대기 타이머를 선택합니다.
    2. 대기할 시간(분)을 입력합니다.
    3. 보호 규칙 저장을 클릭합니다.
  4. 필요에 따라 이 환경에 배포할 수 있는 분기를 지정합니다. 가능한 값에 대한 자세한 내용은 “배포 분기”를 참조하세요.
    1. 배포 분기 드롭다운에서 원하는 옵션을 선택합니다.
    2. 선택한 분기를 선택한 경우 허용하려는 분기 이름 패턴을 입력합니다.
  5. 필요에 따라 환경 비밀을 추가합니다. 해당 비밀은 환경을 사용하는 워크플로 작업에서만 사용할 수 있습니다. 또한 이 환경을 사용하는 워크플로 작업은 구성된 규칙(예: 필수 검토자)이 통과한 후에만 해당 비밀에 액세스할 수 있습니다. 비밀에 대한 자세한 내용은 “암호화된 비밀”을 참조하세요.
    1. 환경 비밀에서 비밀 추가를 클릭합니다.
    2. 비밀 이름을 입력합니다.
    3. 비밀 값을 입력합니다.
    4. 비밀 추가를 클릭합니다.

REST API를 통해 환경을 만들고 구성할 수도 있습니다. 자세한 내용은 "배포 환경", "GitHub Actions 비밀", 및 "배포 분기 정책"을 참조하세요.

존재하지 않는 환경을 참조하는 워크플로를 실행하면 참조된 이름을 가진 환경이 생성됩니다. 새로 만든 환경에는 보호 규칙이나 비밀이 구성되지 않습니다. 리포지토리에서 워크플로를 편집할 수 있는 사람은 누구나 워크플로 파일을 통해 환경을 만들 수 있지만 리포지토리 관리자만 환경을 구성할 수 있습니다.

환경 사용

워크플로의 각 작업은 단일 환경을 참조할 수 있습니다. 환경을 참조하는 작업이 실행기에 전송되기 전에 환경에 대해 구성된 모든 보호 규칙이 전달되어야 합니다. 실행기에 작업이 전송된 후에만 작업이 환경의 비밀에 액세스할 수 있습니다.

워크플로가 환경을 참조하면 환경이 리포지토리의 배포에 표시됩니다. 현재 및 이전 배포 보기에 대한 자세한 내용은 “배포 기록 보기”를 참조하세요.

워크플로의 각 작업에 대한 환경을 지정할 수 있습니다. 이렇게 하려면 jobs.<job_id>.environment 키 뒤에 환경 이름을 추가합니다.

예를 들어 이 워크플로는 production이라는 환경을 사용합니다.

name: Deployment

on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: deploy
        # ...deployment-specific steps

위의 워크플로가 실행되면 deployment 작업에는 production 환경에 대해 구성된 모든 규칙이 적용됩니다. 예를 들어 환경에 검토자가 필요한 경우 검토자 중 한 명이 작업을 승인할 때까지 작업이 일시 중지됩니다.

환경에 대한 URL을 지정할 수도 있습니다. 지정된 URL은 리포지토리의 배포 페이지(리포지토리의 홈페이지에서 Environments(환경)를 클릭하여 액세스됨) 및 워크플로 실행에 대한 시각화 그래프에 표시됩니다. 끌어오기 요청이 워크플로를 트리거한 경우 URL은 끌어오기 요청 타임라인에 View deployment(배포 보기) 단추로도 표시됩니다.

name: Deployment

on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: 
      name: production
      url: https://github.com
    steps:
      - name: deploy
        # ...deployment-specific steps

URL이 있는 워크플로 그래프

환경 삭제

개인 계정 리포지토리에서 환경을 구성하려면 리포지토리 소유자여야 합니다. 조직 리포지토리에서 환경을 구성하려면 admin 액세스 권한이 있어야 합니다.

환경을 삭제하면 환경과 연결된 모든 비밀 및 보호 규칙이 삭제됩니다. 삭제된 환경의 보호 규칙으로 인해 현재 대기 중인 모든 작업은 자동으로 실패합니다.

  1. GitHub Enterprise Server 인스턴스에서 리포지토리의 기본 페이지로 이동합니다. 1. 리포지토리 이름 아래에서 설정을 클릭합니다. 리포지토리 설정 단추 1. 왼쪽 사이드바에서 환경을 클릭합니다.
  2. 삭제하려는 환경 옆에 있는 을 클릭합니다.
  3. 이해했습니다. 이 환경을 삭제합니다를 클릭합니다.

REST API를 통해 환경을 삭제할 수도 있습니다. 자세한 정보는 “환경”을 참조하세요.

환경과 배포 간의 관계

환경을 참조하는 워크플로 작업이 실행되면 환경 이름으로 설정된 environment 속성이 있는 배포 개체를 만듭니다. 워크플로가 진행됨에 따라 환경 이름으로 설정된 environment 속성, 환경의 URL로 설정된 environment_url 속성(워크플로에 지정된 경우), 작업의 상태로 설정된 state 속성이 있는 배포 상태 개체도 만듭니다.

REST API 또는 GraphQL API를 통해 해당 개체에 액세스할 수 있습니다. 해당 웹후크 이벤트를 구독할 수도 있습니다. 자세한 내용은 “리포지토리”(REST API), “개체”(GraphQL API) 또는 “웹후크 이벤트 및 페이로드”를 참조하세요.

다음 단계

GitHub Actions는 배포를 관리하기 위한 몇 가지 기능을 제공합니다. 자세한 내용은 “GitHub Actions를 사용하여 배포”를 참조하세요.