재사용 가능한 워크플로 정보
워크플로를 복사하여 다른 워크플로로 붙여넣는 대신 워크플로를 재사용할 수 있습니다. 사용자와 재사용 가능한 워크플로에 대한 액세스 권한이 있는 사용자는 다른 워크플로에서 재사용 가능한 워크플로를 호출할 수 있습니다.
워크플로를 다시 사용하면 중복을 방지할 수 있습니다. 이렇게 하면 워크플로를 더 쉽게 유지 관리할 수 있으며 작업과 마찬가지로 다른 사용자의 작업을 기반으로 하여 새 워크플로를 더 빠르게 만들 수 있습니다. 워크플로 재사용은 또한 잘 설계되고 이미 테스트되어 효과적인 것으로 입증된 워크플로를 사용할 수 있도록 지원하여 모범 사례를 촉진합니다. 조직은 중앙에서 유지 관리할 수 있는 재사용 가능한 워크플로 라이브러리를 빌드할 수 있습니다.
아래의 다이어그램은 재사용 가능한 워크플로를 사용하는 진행 중인 워크플로 실행을 보여 줍니다.
- 다이어그램의 왼쪽에 있는 세 개의 빌드 작업이 각각 성공적으로 완료되면 "배포"라는 종속 작업이 실행됩니다.
- 이 "배포" 작업은 "스테이징", "검토", "프로덕션"의 세 가지 작업이 포함된 재사용 가능한 워크플로를 호출합니다.
- “프로덕션” 배포 작업은 “스테이징” 작업이 성공적으로 완료된 후에만 실행됩니다.
- 작업이 환경을 대상으로 하는 경우, 워크플로 실행은 작업의 단계 수를 보여 주는 진행률 표시줄을 표시합니다. 아래의 다이어그램에서 "프로덕션" 작업에는 8단계가 포함되어 있으며 6단계는 현재 처리 중입니다.
- 재사용 가능한 워크플로를 사용하여 배포 작업을 실행하면 워크플로에서 코드를 복제하지 않고 각 빌드에 대해 해당 작업을 실행할 수 있습니다.
다른 워크플로를 사용하는 워크플로를 “호출자” 워크플로라고 합니다. 재사용 가능한 워크플로는 “호출된” 워크플로입니다. 한 호출자 워크플로는 여러 호출된 워크플로를 사용할 수 있습니다. 호출된 각 워크플로는 한 줄에 참조됩니다. 그 결과 호출자 워크플로 파일에는 몇 줄의 YAML만 포함될 수 있지만 실행할 때 많은 수의 작업을 수행할 수 있습니다. 워크플로를 다시 사용하면 호출자 워크플로의 일부인 것처럼 호출된 전체 워크플로가 사용됩니다.
다른 리포지토리의 워크플로를 다시 사용하는 경우 호출된 워크플로의 모든 작업은 호출자 워크플로의 일부인 것처럼 실행됩니다. 예를 들어 호출된 워크플로 actions/checkout
을 사용하는 경우 작업은 호출된 워크플로가 아닌 호출자 워크플로를 호스트하는 리포지토리의 콘텐츠를 확인합니다.
GitHub Actions 워크플로에서 참조된 재사용된 워크플로우를 워크플로가 포함된 리포지토리의 종속성 그래프에 표시된 종속성으로 볼 수 있습니다. 자세한 내용은 "종속성 그래프 정보"를 참조하세요.
재사용 가능한 워크플로와 복합 작업 비교
재사용 가능한 워크플로와 복합 작업 모두 워크플로 콘텐츠가 중복되는 것을 방지하는 데 도움이 됩니다. 재사용 가능한 워크플로를 사용하면 여러 작업 및 단계를 사용하여 전체 워크플로를 재사용할 수 있지만 복합 작업은 다른 작업과 마찬가지로 작업 단계 내에서 실행할 수 있는 여러 단계를 결합합니다.
각 솔루션의 몇 가지 측면을 비교해 보겠습니다.
- 워크플로 작업 - 복합 작업에는 호출자 워크플로 내에서 단일 단계로 실행되는 일련의 단계가 포함됩니다. 재사용 가능한 워크플로와 달리 작업을 포함할 수 없습니다.
- 로깅 - 복합 작업이 실행되면 로그는 복합 작업 내의 개별 단계가 아니라 복합 작업을 실행한 호출자 워크플로의 단계만 표시합니다. 재사용 가능한 워크플로를 사용하면 모든 작업과 단계가 별도로 기록됩니다.
- 실행기 지정 - 재사용 가능한 워크플로에는 하나 이상의 작업이 포함됩니다. 모든 워크플로 작업과 마찬가지로 재사용 가능한 워크플로의 작업은 작업이 실행될 컴퓨터 유형을 지정합니다. 따라서 호출 워크플로 작업에 대해 선택한 컴퓨터와 다를 수 있는 컴퓨터 유형에서 단계를 실행해야 하는 경우 복합 작업이 아닌 재사용 가능한 워크플로를 사용해야 합니다.
- 단계에 출력 전달 - 복합 작업은 워크플로 작업 내에서 한 단계로 실행되며 복합 작업을 실행하는 단계 전후에 여러 단계를 수행할 수 있습니다. 재사용 가능한 워크플로는 작업 단계 내에서 호출되는 것이 아니라 작업 내에서 직접 호출됩니다. 재사용 가능한 워크플로를 호출한 후에는 작업에 단계를 추가할 수 없으므로
GITHUB_ENV
를 사용하여 호출자 워크플로의 후속 작업 단계에 값을 전달할 수 없습니다.
재사용 가능한 워크플로와 복합 작업 간의 주요 차이점
재사용 가능한 워크플로 | 복합 작업 |
---|---|
모든 표준 워크플로 파일과 매우 유사한 YAML 파일 | 워크플로 단계 번들을 포함하는 작업 |
재사용 가능한 각 워크플로는 리포지토리의 .github/workflows 디렉터리에 있는 단일 파일임 | 각 복합 작업은 별도의 리포지토리 또는 디렉터리로, action.yml 파일과 선택적으로 다른 파일을 포함함 |
특정 YAML 파일을 참조하여 호출됨 | 작업이 정의된 리포지토리 또는 디렉터리를 참조하여 호출됨 |
단계가 아닌 작업 내에서 직접 호출됨 | 작업 내에서 한 단계로 실행 |
여러 작업을 포함할 수 있음 | 작업이 포함하지 않음 |
각 단계는 실시간으로 기록됨 | 여러 단계가 포함된 경우에도 한 단계로 기록됨 |
최대 4개 수준의 워크플로를 연결할 수 있음 | 하나의 워크플로에 최대 10개의 복합 작업을 포함하도록 중첩할 수 있음 |
비밀을 사용할 수 있음 | 비밀을 사용할 수 없음 |
재사용 가능한 워크플로 및 워크플로 템플릿
워크플로 템플릿을 사용하면 워크플로를 만들 수 있는 권한이 있는 조직의 모든 사용자가 더 빠르고 쉽게 워크플로를 만들 수 있습니다. 사용자가 새 워크플로를 만들 때 워크플로 템플릿을 선택할 수 있으며 워크플로 작성 작업의 일부 또는 전부가 해당 워크플로에 대해 수행됩니다. 워크플로 템플릿 내에서 재사용 가능한 워크플로를 참조하여 사용자가 중앙 관리형 워크플로 코드를 쉽게 재사용할 수 있도록 할 수 있습니다.
재사용 가능한 워크플로를 참조할 때 태그 또는 커밋 SHA를 사용하는 경우 해당 워크플로를 다시 사용하는 모든 사용자가 항상 동일한 YAML 코드를 사용하도록 할 수 있습니다. 그러나 태그 또는 분기로 재사용 가능한 워크플로를 참조하는 경우 해당 버전의 워크플로를 신뢰할 수 있어야 합니다. 자세한 내용은 보안 사용 참조을(를) 참조하세요.
GitHub는 다양한 언어와 도구에 대한 워크플로 템플릿을 제공합니다. 리포지토리에서 워크플로를 설정할 때 GitHub는 리포지토리의 코드를 분석하고 리포지토리의 언어와 프레임워크에 따라 워크플로를 권장합니다. 예를 들어 Node.js를 사용하는 경우 GitHub는 Node.js 패키지를 설치하고 테스트를 실행하는 워크플로 템플릿 파일을 제안합니다. 관련 워크플로 템플릿은 검색하고 필터링하여 찾을 수 있습니다.
GitHub은(는) 다음과 같은 상위 수준 범주에 즉시 사용할 수 있는 워크플로 템플릿을 제공합니다.
- 배포(CD). 자세한 내용은 연속 배포을(를) 참조하세요.
- 보안. 자세한 내용은 코드 스캔을 위한 고급 설정 구성을(를) 참조하세요.
- CI(연속 통합). 자세한 내용은 연속 통합을(를) 참조하세요.
- 자동화. 자동화 워크플로 템플릿은 끌어오기 요청을 심사하고 끌어오기 요청에서 수정된 경로를 기반으로 레이블을 적용하거나 리포지토리에 처음 기여하는 사용자에게 인사말을 하는 등 워크플로를 자동화하기 위한 솔루션을 제공합니다.
워크플로 템플릿을 시작 위치로 사용하여 사용자 지정 워크플로를 빌드하거나 있는 그대로 사용할 수 있습니다. actions/starter-workflows 리포지토리에서 워크플로 템플릿의 전체 목록을 찾아볼 수 있습니다.
자세한 내용은 조직의 워크플로 템플릿 만들기을(를) 참조하세요.
다음 단계
워크플로 재사용을 시작하려면 워크플로 다시 사용을(를) 참조하세요.
워크플로 재사용의 복잡성에 대한 정보를 찾으려면 재사용 가능한 워크플로 참조을(를) 참조하세요.