배포용 환경 관리하기

배포용 환경 관리하기

환경을 만들고 배포 보호 규칙으로 그 환경을 안전하게 보호할 수 있어요. 환경을 참조하는 작업은 실행되거나 환경의 시크릿에 접근하기 전에 환경의 모든 보호 규칙을 따라야 해요.

출처: 문서

본문

사전 요구 사항

Note

GitHub Free 플랜 사용자는 공개 저장소에서만 환경을 구성할 수 있어요. 저장소를 공개에서 비공개로 전환하면 구성된 모든 보호 규칙이나 환경 시크릿이 무시되며, 어떤 환경도 구성할 수 없게 돼요. 저장소를 다시 공개로 전환하면 이전에 구성한 모든 보호 규칙과 환경 시크릿에 접근할 수 있어요.

GitHub Team이 있는 조직과 GitHub Pro 사용자는 비공개 저장소에서 환경을 구성할 수 있어요. 자세한 내용은 GitHub 플랜을 참고하세요.

환경 만들기

개인 계정 저장소에서 환경을 구성하려면 저장소 소유자여야 해요. 조직 저장소에서 환경을 구성하려면 admin 접근 권한이 있어야 해요.

Note

  • 비공개 저장소에서 환경을 만드는 것은 GitHub Team이 있는 조직과 GitHub Pro 사용자에게 제공돼요.
  • 환경의 일부 기능은 비공개 저장소에서 제공되지 않거나 제한적으로 제공돼요. 아래 지침에 설명된 기능에 접근할 수 없다면, 관련 단계에 연결된 문서에서 가용성 정보를 확인하세요.
  1. GitHub에서 저장소의 메인 페이지로 이동해요.

  2. 저장소 이름 아래에서 Settings 탭을 클릭해요.

    저장소 헤더의 탭을 보여주는 스크린샷. "Settings" 탭이 진한 주황색 윤곽선으로 강조되어 있어요.

  3. 왼쪽 사이드바에서 Environments을 클릭해요.

  4. New environment을 클릭해요.

  5. 환경 이름을 입력한 다음 Configure environment을 클릭해요. 환경 이름은 대소문자를 구분하지 않아요. 환경 이름은 255자를 초과할 수 없으며 저장소 내에서 고유해야 해요.

  6. 선택적으로, 이 환경을 사용하는 워크플로 작업을 승인해야 하는 사람이나 팀을 지정해요. 자세한 내용은 배포와 환경을 참고하세요.

    1. Required reviewers을 선택해요.
    2. 최대 6명의 사람이나 팀을 입력해요. 필수 검토자 중 한 명만 작업을 승인하면 작업이 진행될 수 있어요.
    3. 선택적으로, 사용자가 자신이 트리거한 워크플로 실행을 승인하지 못하게 하려면 Prevent self-review을 선택해요.
    4. Save protection rules을 클릭해요.
  7. 선택적으로, 이 환경을 사용하는 워크플로 작업이 진행되기 전에 대기할 시간을 지정해요. 자세한 내용은 배포와 환경을 참고하세요.

    1. Wait timer을 선택해요.
    2. 대기할 분(minutes) 수를 입력해요.
    3. Save protection rules을 클릭해요.
  8. 선택적으로, 구성된 보호 규칙 우회를 허용하지 않도록 해요. 자세한 내용은 배포와 환경을 참고하세요.

    1. Allow administrators to bypass configured protection rules을 선택 해제해요.
    2. Save protection rules을 클릭해요.
  9. 선택적으로, GitHub Apps로 만든 커스텀 배포 보호 규칙을 활성화해요. 자세한 내용은 배포와 환경을 참고하세요.

    1. 활성화할 커스텀 보호 규칙을 선택해요.
    2. Save protection rules을 클릭해요.
  10. 선택적으로, 이 환경에 배포할 수 있는 브랜치와 태그를 지정해요. 자세한 내용은 배포와 환경을 참고하세요.

    1. Deployment branches 드롭다운에서 원하는 옵션을 선택해요.

    2. Selected branches and tags을 선택했다면 새 규칙을 추가하려면 Add deployment branch or tag rule을 클릭해요.

    3. "Ref type" 드롭다운 메뉴에서, 적용하려는 규칙에 따라 Branch 또는 Tag을 클릭해요.

    4. 허용하려는 브랜치 또는 태그의 이름 패턴을 입력해요.

    Note

    이름 패턴은 브랜치나 태그에 대해 개별적으로 구성해야 해요.

    1. Add rule을 클릭해요.
  11. 선택적으로, 환경 시크릿을 추가해요. 이 시크릿은 환경을 사용하는 워크플로 작업에만 제공돼요. 또한 이 환경을 사용하는 워크플로 작업은 구성된 규칙(예: 필수 검토자)이 통과한 후에만 이 시크릿에 접근할 수 있어요. 자세한 내용은 배포와 환경을 참고하세요.

    1. Environment secrets 아래에서 Add Secret을 클릭해요.
    2. 시크릿 이름을 입력해요.
    3. 시크릿 값을 입력해요.
    4. Add secret을 클릭해요.
  12. 선택적으로, 환경 변수를 추가해요. 이 변수는 환경을 사용하는 워크플로 작업에만 제공되며, vars 컨텍스트를 통해서만 접근할 수 있어요. 자세한 내용은 배포와 환경을 참고하세요.

    1. Environment variables 아래에서 Add Variable을 클릭해요.
    2. 변수 이름을 입력해요.
    3. 변수 값을 입력해요.
    4. Add variable을 클릭해요.

REST API를 통해서도 환경을 만들고 구성할 수 있어요. 자세한 내용은 배포 환경을 위한 REST API 엔드포인트, GitHub Actions 시크릿을 위한 REST API 엔드포인트, GitHub Actions 변수를 위한 REST API 엔드포인트, 배포 브랜치 정책을 위한 REST API 엔드포인트를 참고하세요.

존재하지 않는 환경을 참조하는 워크플로를 실행하면 참조된 이름의 환경이 만들어져요. 암시적 페이지 빌드(예: 브랜치나 폴더 소스에서)를 실행해 환경이 만들어진 경우, 소스 브랜치가 환경에 보호 규칙으로 추가돼요. 그 외에는 새 환경에 어떤 보호 규칙이나 시크릿도 구성되지 않아요. 저장소에서 워크플로를 편집할 수 있는 모든 사람이 워크플로 파일을 통해 환경을 만들 수 있지만, 환경을 구성할 수 있는 것은 관리자뿐이에요.

환경 삭제하기

개인 계정 저장소에서 환경을 구성하려면 저장소 소유자여야 해요. 조직 저장소에서 환경을 구성하려면 admin 접근 권한이 있어야 해요.

환경을 삭제하면 해당 환경과 연결된 모든 시크릿과 보호 규칙이 삭제돼요. 삭제된 환경의 보호 규칙 때문에 현재 대기 중인 작업은 자동으로 실패해요.

  1. GitHub에서 저장소의 메인 페이지로 이동해요.

  2. 저장소 이름 아래에서 Settings 탭을 클릭해요.

    저장소 헤더의 탭을 보여주는 스크린샷. "Settings" 탭이 진한 주황색 윤곽선으로 강조되어 있어요.

  3. 왼쪽 사이드바에서 Environments을 클릭해요.

  4. 삭제하려는 환경 옆에서 휴지통 아이콘을 클릭해요.

  5. I understand, delete this environment을 클릭해요.

REST API를 통해서도 환경을 삭제할 수 있어요. 자세한 내용은 저장소를 위한 REST API 엔드포인트를 참고하세요.

환경이 배포와 어떻게 관련되는지

환경을 참조하는 워크플로 작업이 실행되면, environment 속성이 환경 이름으로 설정된 배포 객체를 만들어요. 워크플로가 진행되면서 environment 속성이 환경 이름으로, environment_url 속성이 환경의 URL로(워크플로에 지정된 경우), state 속성이 작업 상태로 설정된 배포 상태 객체도 만들어요.

이 객체들은 REST API나 GraphQL API로 접근할 수 있어요. 이 웹훅 이벤트를 구독할 수도 있어요. 자세한 내용은 저장소를 위한 REST API 엔드포인트, 배포 (GraphQL API), 웹훅 이벤트와 페이로드를 참고하세요.

다음 단계

GitHub Actions는 배포를 관리하기 위한 여러 기능을 제공해요. 자세한 내용은 GitHub Actions로 배포하기를 참고하세요.