Skip to main content

조직의 워크플로 템플릿 만들기

팀의 사용자가 새 워크플로를 더 쉽게 추가할 수 있도록 워크플로 템플릿을 만드는 방법을 알아봅니다.

참고 항목

GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다.

워크플로 템플릿 만들기

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

  1. 아직 없는 경우 조직에서 .github로 명명된 새 리포지토리를 만듭니다.

  2. 이름이 workflow-templates인 하위 디렉터리를 만듭니다.

  3.        `workflow-templates` 디렉터리 내에 새 워크플로 파일을 만듭니다.
    

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

    참고 항목

           `runs-on` 키의 다음 값은 자리 표시자로도 처리됩니다.
    
           `ubuntu-latest`가 `[ self-hosted ]`로 바뀝니다.
    
           `windows-latest`가 `[ self-hosted, windows ]`로 바뀝니다.
    
             `macos-latest` 이 으로 `[ self-hosted, macOS ]` 대체되었습니다.
    

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

    YAML
    name: Octo Organization CI
    
    on:
      push:
        branches: [ $default-branch ]
      pull_request:
        branches: [ $default-branch ]
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v5
    
          - name: Run a one-line script
            run: echo Hello from Octo Organization
    
  4.        `workflow-templates` 디렉터리 내에 메타데이터 파일을 만듭니다. 메타데이터 파일의 이름은 워크플로 파일과 동일해야 하지만 `.yml` 확장명 대신 `.properties.json`을 추가해야 합니다. 예를 들어, `octo-organization-ci.properties.json`이라는 이름의 이 파일에는 다음과 같이 워크플로 파일에 대한 `octo-organization-ci.yml`라는 이름의 메타데이터가 포함됩니다.
    
    JSON
    {
        "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 집합의 아이콘입니다. 옥시콘을 참조하려면 값이 octicon <icon name>여야 합니다. 예: octicon smiley.
    •         `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`
               - 
              **선택 사항**. 사용자 리포지토리의 루트 디렉터리에 정의된 정규식과 일치하는 파일이 있는 경우 워크플로를 사용할 수 있도록 합니다.
      
  5. 다른 워크플로 템플릿을 추가하려면 파일을 동일한 workflow-templates 디렉터리에 추가합니다.

다음 단계