# 조직용 워크플로 템플릿 생성

팀 구성원이 새 워크플로를 더 쉽게 추가할 수 있도록 돕는 워크플로 템플릿 생성 방법을 알아보세요.

> \[!NOTE]
> GitHub Enterprise Server 호스트 실행기는 현재 GitHub에서 지원되지 않습니다.

## 워크플로 템플릿 만들기

이 절차에서는 워크플로 템플릿 및 메타데이터 파일을 만드는 방법을 보여 줍니다. 메타데이터 파일은 새 워크플로를 만들 때 사용자에게 워크플로 템플릿이 표시되는 방식을 설명합니다.

1. 아직 존재하지 않는 경우, 조직 내에서 공개 리포지토리`.github`를 새로 만드세요.
2. 이름이 `workflow-templates`인 하위 디렉터리를 만듭니다.
3. `workflow-templates` 디렉터리 내에 새 워크플로 파일을 만듭니다.

   리포지토리의 기본 분기를 참조해야 하는 경우 `$default-branch` 자리 표시자를 사용할 수 있습니다. 워크플로가 생성될 때 자리 표시자는 리포지토리의 기본 분기 이름으로 자동으로 대체됩니다.

   > \[!NOTE]
   > `runs-on` 키의 다음 값은 자리 표시자로도 처리됩니다.
   >
   > *

`ubuntu-latest`이 `[ self-hosted ]`로 바뀝니다.

> \*
> `windows-latest`이 `[ self-hosted, windows ]`로 바뀝니다.
> \*
> `macos-latest` 가 `[ self-hosted, macOS ]`로 대체됩니다

예를 들어 이름이 `octo-organization-ci.yml`로 지정된 이 파일은 기본 워크플로를 보여 줍니다.

```yaml copy
name: Octo Organization CI

on:
  push:
    branches: [ $default-branch ]
  pull_request:
    branches: [ $default-branch ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v6

      - name: Run a one-line script
        run: echo Hello from Octo Organization
```

1. `workflow-templates` 디렉터리 내에 메타데이터 파일을 만듭니다. 메타데이터 파일의 이름은 워크플로 파일과 동일해야 하지만 `.yml` 확장명 대신 `.properties.json`을 추가해야 합니다. 예를 들어, `octo-organization-ci.properties.json`이라는 이름의 이 파일에는 다음과 같이 워크플로 파일에 대한 `octo-organization-ci.yml`라는 이름의 메타데이터가 포함됩니다.

   ```json copy
   {
       "name": "Octo Organization Workflow",
       "description": "Octo Organization CI workflow template.",
       "iconName": "example-icon",
       "categories": [
           "Go"
       ],
       "filePatterns": [
           "package.json$",
           "^Dockerfile",
           ".*\\.md$"
       ]
   }
   ```

   * `name`

   - **필수입니다**. 워크플로의 이름입니다. 사용 가능한 워크플로 목록에 표시됩니다.

   * `description`

   - **필수입니다**. 워크플로 설명입니다. 사용 가능한 워크플로 목록에 표시됩니다.

   * `iconName`

   - **선택 사항**. 워크플로 목록에 표시되는 워크플로의 아이콘을 지정합니다.
     `iconName` 은 다음 형식 중 하나일 수 있습니다.
     * `workflow-templates` 디렉터리에 저장된 SVG 파일입니다. 파일을 참조하려면 파일 확장명 없이 파일 이름이 값이어야 합니다. 예를 들어, `example-icon.svg`이라는 SVG 파일은 `example-icon`로 참조됩니다.
     * GitHub의 [Octicons](https://primer.style/octicons/) 집합의 아이콘입니다. 옥시콘을 참조하려면 값이 `octicon <icon name>`여야 합니다. 예: `octicon smiley`.

   * `categories`

   - **선택 사항**. 워크플로가 표시되는 범주를 정의합니다. 다음 목록에서 범주 이름을 사용할 수 있습니다.
     * 시작 워크플로 리포지토리의 [일반 범주 이름입니다](https://github.com/actions/starter-workflows/blob/main/README.md#categories) .

     * [linguist](https://github.com/github-linguist/linguist/blob/main/lib/linguist/languages.yml) 리포지토리에 있는 목록의 Linguist 언어입니다.

     * [starter-workflows](https://github.com/github-starter-workflows/repo-analysis-partner/blob/main/tech_stacks.yml) 리포지토리의 목록에서 지원되는 기술 스택입니다.

   * `filePatterns`

   - **선택 사항**. 사용자 리포지토리의 루트 디렉터리에 정의된 정규식과 일치하는 파일이 있는 경우 워크플로를 사용할 수 있도록 합니다.

2. 다른 워크플로 템플릿을 추가하려면 파일을 동일한 `workflow-templates` 디렉터리에 추가합니다.

## 다음 단계

* 워크플로 템플릿에 대한 참조 정보는 [워크플로 구성 재사용](/ko/enterprise-server@3.22/actions/reference/workflows-and-actions/reusing-workflow-configurations#workflow-templates)을(를) 참조하세요.