참고: GitHub은(는) 더 이상 GitHub Actions에 필요한 워크플로를 지원하지 않습니다. 병합하기 전에 워크플로를 통과해야 하는 경우 GitHub Enterprise Server을(를) 최신 버전으로 업그레이드하고 대신 리포지토리 규칙 집합을 사용합니다.
GitHub Enterprise Server 업그레이드에 대한 자세한 내용은 “새 릴리스로 업그레이드 정보”을(를) 참조하세요.
리포지토리 규칙 집합에 대한 자세한 내용은 “규칙 세트에 사용 가능한 규칙”을 참조하세요.
개요
모든 대상 분기에 대해 열린 모든 끌어오기 요청에 대해 조직의 리포지토리에서 실행해야 하는 워크플로를 구성할 수 있습니다. 필요한 워크플로를 사용하면 현재 및 향후 리포지토리에 적용되는 조직 전체 CI/CD 정책을 구현할 수 있습니다. 필수 워크플로는 pull_request
및 pull_request_target
기본 이벤트에 의해 트리거되며 필요한 워크플로가 성공할 때까지 끌어오기 요청을 병합하는 기능을 차단하는 필수적인 상태 확인으로 표시됩니다.
필수적인 워크플로는 재사용 가능한 워크플로와 동일하지 않습니다. 재사용 가능한 워크플로는 다른 워크플로에서 호출할 수 있습니다. 필수적인 워크플로는 조직 소유자 리포지토리에 적용됩니다.
필수 조건
필수적인 워크플로를 구성하기 전에 다음 필수 구성 요소를 확인합니다.
- 필수 워크플로를 실행하려면 조직 설정의 리포지토리에 대해 GitHub Actions을(를) 사용하도록 설정해야 합니다. 조직 수준에서 사용하도록 설정되면 리포지토리의 설정에서 GitHub Actions을(를) 사용하지 않도록 설정한 경우에도 필수 워크플로가 실행됩니다. 조직의 리포지토리에서 GitHub Actions을(를) 관리하는 방법에 대한 자세한 내용은 "조직의 GitHub Actions 사용 안 함 또는 제한"을 참조하세요.
- 필수 워크플로는 조직에서 사용할 수 있으며 조직의 계획에서 필수 상태 확인을 지원하는 리포지토리에서만 사용할 수 있습니다. 필수 상태 확인이 지원되지 않는 경우 워크플로는 계속 실행되지만 필수 확인은 아니며 병합을 차단하지 않습니다. 필수 상태 확인 지원에 대한 자세한 내용은 "보호된 분기 정보"을 참조하세요.
- 필수 워크플로가 필수 상태 확인으로 실행되려면 리포지토리의 기본 분기가 조직의 기본 분기 설정과 일치해야 합니다. 기본 분기 이름이 일치하지 않는 경우 워크플로는 계속 실행되지만 필수 확인은 아닙니다. 기본 분기 이름 관리에 대한 자세한 내용은 "조직의 리포지토리에 대한 기본 분기 이름 관리" 및 "기본 분기 변경"을 참조하세요.
- 필수 워크플로를 실행하려면 끌어오기 요청의 원본 리포지토리가 대상 리포지토리와 동일한 조직에 있어야 합니다. GitHub Enterprise Server은(는) 에서 필수 워크플로를 원본으로 제공하거나 워크플로가 포함된 리포지토리에서 지정된 분기, 태그 또는 커밋 SHA 를 원본으로 제공합니다.
- 필수 워크플로에 사용되는 비밀은 조직 수준 또는 대상 리포지토리에서 만들어야 합니다.
- 워크플로가 대상 리포지토리에서 실행되는 경우 원본 리포지토리의 비밀은 페치되지 않습니다.
- 워크플로가 필수 워크플로로 실행되면
on:
섹션의 모든 필터(예:branches
,branches-ignore
,paths
,types
등)를 무시합니다. 필수 워크플로는 기본pull_request
및pull_request_target
기본 이벤트에 대해서만 실행됩니다. 기본 작업 유형에 대한 자세한 내용은 "워크플로를 트리거하는 이벤트"을 참조하세요. - 필수 워크플로는 예상된 확인으로 자동 표시되더라도 기존 끌어오기 요청에서 자동으로 트리거되지 않습니다. 이미 존재하는 끌어오기 요청에 필수 워크플로를 트리거하려면 해당 끌어오기 요청에 새 변경 사항을 푸시합니다.
원본 리포지토리에 대한 제한 사항 및 동작
원본 리포지토리 및 워크플로에 대한 다음 제한 사항 및 동작에 유의하세요.
-
필수 워크플로는 모든 리포지토리 폴더에 저장할 수 있으며 일반 워크플로와 같은
.github/workflows
폴더로 제한되지 않습니다. 필수 워크플로가 재사용 가능한 워크플로를 호출하는 경우 재사용 가능한 워크플로를.github/workflows
폴더에 저장해야 합니다. 재사용 가능한 워크플로를 호출할 때 필요한 워크플로는 전체 경로를 사용하고 재사용 가능한 워크플로에 대한 참조를 사용해야 합니다. 예들 들어{owner}/{repo}/.github/workflows/{filename}@{ref}
입니다. -
필수 워크플로가 프라이빗 또는 내부 리포지토리에 포함된 경우 조직의 다른 리포지토리에서 리포지토리 내의 워크플로에 액세스할 수 있는지 확인해야 합니다. 자세한 내용은 "리포지토리에 대한 GitHub Actions 설정 관리" 및 "리포지토리에 대한 GitHub Actions 설정 관리"을 참조하세요.
-
퍼블릭 리포지토리에 저장된 워크플로는 조직의 모든 리포지토리에 필요한 워크플로로 구성할 수 있습니다. 프라이빗 리포지토리에 저장된 워크플로는 조직의 모든 기타 프라이빗 리포지토리에 필요한 워크플로로 구성할 수 있습니다. 내부 리포지토리에 저장된 워크플로는 조직의 내부 및 프라이빗 리포지토리에 필요한 워크플로로 구성할 수 있습니다.
-
CodeQL은(는) 리포지토리 수준에서 구성이 필요하므로 CodeQL은(는) 필수 워크플로에서 지원되지 않습니다. 코드 검사 구성에 대한 자세한 내용은 "AUTOTITLE"을 참조하세요.
-
필수 워크플로는 워크플로 파일을 포함하는 리포지토리의 분기, 태그 또는 커밋 SHA를 사용하여 참조할 수 있습니다.
대상 리포지토리에 대한 제한 사항 및 동작
대상 리포지토리에 대한 다음 제한 사항 및 동작에 유의하세요.
- 모든 또는 선택한 리포지토리에서 실행하도록 필수 워크플로를 구성할 때 필수 워크플로가 포함된 리포지토리의 표시 여부는 워크플로가 실행되는 조직의 리포지토리에 영향을 줍니다. 퍼블릭 리포지토리에 저장된 필수 워크플로는 모든 리포지토리에서 실행됩니다. 프라이빗 리포지토리에 저장된 필수 워크플로는 다른 프라이빗 리포지토리에서만 실행됩니다. 내부 리포지토리에 저장된 필수 워크플로는 내부 및 프라이빗 리포지토리에서 실행됩니다.
- 필수 워크플로는 워크플로가 만들어진 리포지토리에서 실행되도록 구성할 수 없습니다. 필수 워크플로를 저장하기 위해 별도의 리포지토리를 만드는 것이 좋습니다.
- 모든 또는 선택한 리포지토리에서 실행하도록 필요한 워크플로를 구성할 때 필수 워크플로는 조직 설정에서 작업이 비활성화된 리포지토리에서 실행되지 않습니다.
필수적인 워크플로에 대한 워크플로 실행 보기
필수적인 워크플로가 리포지토리에서 한 번 이상 실행되면 해당 리포지토리의 "작업" 탭에서 해당 워크플로 실행을 볼 수 있습니다. 조직에서 필요에 따라 구성된 워크플로를 변경하려면 조직 소유자 문의해야 합니다. 필수적인 워크플로 자체를 변경하려면 필수적인 워크플로가 포함된 리포지토리에 대한 쓰기 권한이 있는 모든 사용자가 변경 작업을 수행할 수 있습니다.
-
GitHub에서 리포지토리의 기본 페이지로 이동합니다.
-
리포지토리 이름 아래에서 작업을 클릭합니다.
-
왼쪽 사이드바에서 "필수적인 워크플로"에서 필요한 워크플로에 대한 워크플로 실행을 볼 수 있습니다.
조직에 필수적인 워크플로 추가
조직 소유자는 조직에서 필수적인 워크플로를 구성할 수 있습니다. 자세한 내용은 "조직의 GitHub Actions 사용 안 함 또는 제한"을(를) 참조하세요.