Skip to main content

为组织创建工作流模板

了解如何创建工作流模板,以帮助团队中的人员更轻松地添加新工作流。

谁可以使用此功能?

Write access to the organization's public .github repository. Templates can be used by organization members who have permission to create workflows.

注意

GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。

注意

  • 由于工作流模板需要公共 .github 存储库,因此它们不适用于 Enterprise Managed Users。
  • 为避免工作流模板之间的重复,可以从工作流中调用可重用的工作流。 这有助于使您的工作流程更易于维护。 有关详细信息,请参阅“重用工作流”。

此过程演示如何创建工作流模板和元数据文件。 元数据文件描述了在用户创建新工作流时如何向用户显示工作流模板。

  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@v4
    
          - 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,该值必须为 octicon <icon name>。 例如 octicon smiley
    • categories - 可选。 定义用于显示工作流的类别。 可以使用以下列表中的类别名称:

    • filePatterns - 可选。 如果用户的存储库在其根目录中具有与定义的正则表达式匹配的文件,则允许使用工作流。

若要添加另一个工作流模板,请将文件添加到相同的 workflow-templates 目录。

后续步骤

若要继续了解 GitHub Actions,请参阅“使用工作流模板”。