跳至主要内容

为您的组织创建工作流模板

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

概述

工作流模板允许组织中所有具有创建工作流权限的人员更快、更轻松地执行此操作。创建新工作流时,可以选择一个工作流模板,并且将为您完成部分或全部编写工作流的工作。您可以使用工作流模板作为构建自定义工作流的起点,或按原样使用它们。这不仅节省了时间,还促进了整个组织的一致性和最佳实践。

GitHub 提供了以下高级别类别的即用型工作流模板

  • 持续集成 (CI)。有关更多信息,请参阅“关于使用 GitHub Actions 进行持续集成”。
  • 自动化。自动化工作流模板提供了用于自动化工作流的解决方案,例如根据拉取请求中修改的路径对拉取请求进行分类并应用标签,或向首次为存储库贡献代码的用户表示欢迎。

注意

由于工作流模板需要一个公共的 .github 存储库,因此企业托管用户无法使用它们。

创建工作流模板

拥有组织的公共.github 存储库写入访问权限的用户可以创建工作流模板。然后,组织成员可以使用这些模板创建工作流(前提是他们拥有创建工作流的权限)。

用户创建的工作流模板只能用于在公共存储库中创建工作流。使用 GitHub Enterprise Cloud 的组织还可以使用工作流模板在私有存储库中创建工作流。有关更多信息,请参阅GitHub Enterprise Cloud 文档

注意

为了避免工作流模板之间的重复,您可以在工作流中调用可重用的工作流。这有助于简化工作流的维护。有关更多信息,请参阅“重用工作流”。

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

  1. 如果尚不存在,请在您的组织中创建一个名为.github 的新公共存储库。

  2. 创建一个名为workflow-templates 的目录。

  3. workflow-templates 目录中创建您的新工作流文件。

    如果您需要引用存储库的默认分支,可以使用$default-branch 占位符。创建工作流时,此占位符将自动替换为存储库默认分支的名称。

    例如,此名为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 集的图标。Octicons。要引用 octicon,值必须为octicon <icon name>。例如,octicon smiley
    • categories - 可选。定义工作流显示的类别。您可以使用以下列表中的类别名称:

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

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

后续步骤

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