작업 및 워크플로 관리
여기서는 GitHub 작업 및 워크플로를 공유하고 엔터프라이즈 내에서의 사용을 관리하기 위해 GitHub Enterprise Cloud 및 GitHub Enterprise Server에서 사용할 수 있는 다양한 도구와 전략을 살펴봅니다.
콘텐츠는 제공되는 도구를 사용할 수 있는 수준(엔터프라이즈 수준 또는 조직 수준)을 중심으로 구성됩니다.
엔터프라이즈 수준
GitHub Actions 사용 정책 구성
GitHub Actions 워크플로에는 일반적으로 워크플로 내에서 실행할 독립 실행형 명령의 집합인 작업이 포함됩니다. 워크플로를 생성할 때, GitHub Marketplace에서 제공하는 공용 커뮤니티 작업을 사용하거나 참조할 수 있는 사용자 고유 작업을 생성할 수 있습니다. 이러한 이유로 기업의 워크플로 및 작업에 대한 사용 정책을 구성하는 것은 사용자가 악의적인 타사 작업을 사용하지 못하도록 하는 데 필수적입니다.
엔터프라이즈 설정에서 GitHub Connect를 사용하도록 설정된 경우, Enterprise Cloud 및 Enterprise Server에서 정책을 구성하기 위한 여러 옵션이 있습니다.
엔터프라이즈에 대해 GitHub Actions를 구성하려면, 엔터프라이즈 계정으로 이동한 다음, 사이드바에서 정책 > 작업으로 이동합니다. 다음 옵션이 표시됩니다.
모든 조직에서 사용이라는 맨 위에 있는 드롭다운에서 GitHub Actions를 사용할 수 있는 엔터프라이즈의 조직(모두, 일부, 모두 사용 안함)을 결정하고, 아래 세 가지 옵션을 사용하여 이러한 조직 내에서 GitHub Actions의 제한 수준을 정의할 수 있습니다.
엔터프라이즈 내에서 특정 작업만 사용하도록 설정하려면 엔터프라이즈 허용, 엔터프라이즈가 아닌 작업 및 재사용 가능한 워크플로 선택을 선택하고 사용 사례에 해당하는 옵션을 선택합니다.
수동으로 Enterprise Server에 대한 공용 작업 동기화
GitHub에서 작성된 대부분의 공식 작업은 Enterprise Server와 함께 자동으로 제공되며, GitHub Marketplace에서 특정 시점에 캡처됩니다. 여기에는 actions/checkout
, actions/upload-artifact
, actions/download-artifact
, actions/labeler
및 다양한 actions/setup-
작업이 포함됩니다. 엔터프라이즈 인스턴스에 포함된 모든 공식 작업을 받으려면, 인스턴스의 작업 조직 https://HOSTNAME/actions.로 이동합니다.
GitHub Actions 사용 정책 구성 섹션에서 언급한 대로, GitHub Marketplace에서 사용할 수 있는 공용 작업에 자동으로 액세스하도록 Enterprise Server를 구성하고 해당 정책에 대한 사용 정책을 구성할 수 있습니다. 그러나, 엔터프라이즈에서 사용할 수 있어야 하는 공용 작업을 보다 강력하게 제어하려는 경우, actions-sync
도구를 사용하여 엔터프라이즈 인스턴스에 작업을 수동으로 다운로드하고 동기화 할 수 있습니다.
조직 수준
회사 표준 문서화
GitHub Actions 워크플로 만들기에는 여러 파일을 작성하고 워크플로 자체를 지정하는 여러 리포지토리를 만드는 작업이 포함되는 경우가 많습니다. 만들기에는 워크플로에서 사용할 작업, 컨테이너 및/또는 실행기도 포함됩니다. Enterprise Cloud 또는 Enterprise Server 인스턴스의 사용자 수에 따라, GitHub Actions 워크플로를 생성하기 위한 회사 표준이 없는 경우에는 작업이 쉽게 망가질 수 있습니다.
모범 사례로, 조직 내 모든 사용자가 액세스할 수 있는 리포지토리의 markdown 파일 또는 GitHub wiki에 다음을 문서화하는 것을 권장합니다.
- 스토리지에 대한 리포지토리
- 파일/폴더 명명 규칙
- 공유 구성 요소의 위치
- 지속적인 유지 관리 계획
- 기여 지침
워크플로 템플릿 생성
워크플로 템플릿은 엔터프라이즈에서 자동화를 다시 사용하고 유지 관리할 수 있는 좋은 방법입니다. Enterprise Cloud 및 Enterprise Server 모두에서 조직의 .github
리포지토리에 대한 쓰기 권한이 있는 사용자는 동일한 쓰기 권한을 가진 다른 조직의 구성원이 사용할 수 있는 워크플로 템플릿을 생성할 수 있습니다. 그런 다음 워크플로 템플릿을 사용하여 조직의 공용 및 개인 리포지토리에 새 워크플로를 생성할 수 있습니다.
워크플로 템플릿 생성은 다음 두 단계로 수행됩니다.
yml
워크플로 파일을 생성합니다.워크플로를 생성할 때 사용자에게 템플릿을 표시하는 방법을 설명하는
json
메타데이터 파일을 생성합니다.참고 항목
메타데이터 파일의 이름은 워크플로 파일과 동일해야 합니다.
.yml
확장 대신에.properties.json
를 추가해야 합니다. 예를 들어,octo-organization-ci.properties.json
이라는 이름의 파일에는 워크플로 파일에 대한octo-organization-ci.yml
라는 이름의 메타데이터가 포함됩니다.
두 파일 모두 공용 .github
리포지토리와 workflow-templates
라는 이름의 디렉터리에 배치해야 합니다. 조직에 아직 이들이 없는 경우, 생성해야 할 수도 있습니다.
다음은 기본 워크플로 파일의 예입니다.
name: Octo Organization CI
on:
push:
branches: [ $default-branch ]
pull_request:
branches: [ $default-branch ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run a one-line script
run: echo Hello from Octo Organization
앞선 파일은 $default-branch
자리 표시자를 사용합니다. 템플릿을 사용하여 워크플로를 생성할 때, 이 자리 표시자는 리포지토리의 기본 분기 이름으로 자동으로 대체됩니다.
다음은 워크플로 파일에 대해 생성하는 메타데이터 파일입니다.
{
"name": "Octo Organization Workflow",
"description": "Octo Organization CI workflow template.",
"iconName": "example-icon",
"categories": [
"Go"
],
"filePatterns": [
"package.json$",
"^Dockerfile",
".*\\.md$"
]
}
메타데이터 파일은 다음 매개 변수를 사용합니다.
매개 변수 | 설명 | 필수 |
---|---|---|
name |
사용 가능한 템플릿 목록에 표시되는 워크플로 템플릿의 이름. | 예 |
description |
사용 가능한 템플릿 목록에 표시되는 워크플로 템플릿에 대한 설명. | 예 |
iconName |
템플릿 목록에서 워크플로 항목의 아이콘을 정의합니다. 동일한 이름의 SVG 아이콘이어야 하며, workflow-templates 디렉터리에 저장되어야 합니다. 예를 들어, example-icon.svg 이라는 SVG 파일은 example-icon 로 참조됩니다. |
예 |
categories |
워크플로의 언어 범주를 정의합니다. 사용자가 사용 가능한 템플릿을 볼 때, 동일한 언어로 된 템플릿이 더 명확하게 기능합니다. | 아니요 |
filePatterns |
사용자 리포지토리의 루트 디렉터리에 정의된 정규식과 일치하는 파일이 있는 경우, 템플릿을 사용할 수 있도록 합니다. | 아니요 |
워크플로 템플릿이 생성되면 조직의 사용자는 Actions > New workflow > Workflows created by _your_organization_name 아래에서 이를 찾을 수 있습니다.