注意:GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。
概述
组织中所有有权创建工作流的人员可利用工作流模板,更快、更轻松地创建工作流。 创建新工作流时,你可以选择工作流模板,系统将为你完成编写工作流的部分或全部工作。 你可以使用工作流模板作为基础来构建自定义工作流,或按原样使用。 这不仅可以节省时间,而且促进了整个组织的一致性和最佳做法。
GitHub 为以下高级类别提供现成的工作流模板:
-
部署 (CD) 。 有关详细信息,请参阅“关于使用 GitHub Actions 进行持续部署”。
-
持续集成 (CI) 。 有关详细信息,请参阅“关于使用 GitHub Actions 进行持续集成”。
-
自动化. 自动化工作流模板提供了自动化工作流的解决方案,例如,对拉取请求分类并根据拉取请求中修改的路径对拉取请求应用标签,或问候首次参与存储库的用户。
Note
由于工作流模板需要公共 .github
存储库,因此它们不适用于 Enterprise Managed Users。
创建工作流模板
工作流模板可由对组织的_公共_ .github
存储库具有写权限的用户创建。 然后,有权限创建工作流程的组织成员便可使用它们。
注意: 为避免工作流模板之间的重复,可以从工作流中调用可重用的工作流。 这有助于使您的工作流程更易于维护。 有关详细信息,请参阅“重新使用工作流”。
此过程演示如何创建工作流模板和元数据文件。 元数据文件描述了在用户创建新工作流时如何向用户显示工作流模板。
-
如果组织中没有名为
.github
的新_公共_存储库,请新建一个。 -
创建名为
workflow-templates
的目录。 -
在
workflow-templates
目录中创建新的工作流文件。如果需要引用存储库的默认分支,可以使用
$default-branch
占位符。 创建工作流程时,占位符将自动替换为仓库默认分支的名称。
注意:runs-on
键中的以下值也被视为占位符:
- 将“ubuntu-latest”替换为“[ self-hosted ]”
- 将“windows-latest”替换为“[ self-hosted, windows ]”
- 将“macos-latest”替换为“[ self-hosted, macOS ]”
例如,名为 octo-organization-ci.yml
的文件演示基本工作流。
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
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
-
在
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": "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
- 可选。 定义用于显示工作流的类别。 可以使用以下列表中的类别名称:- starter-workflows 存储库中的一般类别名称。
- linguist 存储库列表中的 linguist 语言。
- starter-workflows 存储库的列表中支持的技术堆栈。
-
filePatterns
- 可选。 如果用户的存储库在其根目录中具有与定义的正则表达式匹配的文件,则允许使用工作流。
-
若要添加另一个工作流模板,请将文件添加到相同的 workflow-templates
目录。
后续步骤
若要继续了解 GitHub Actions,请参阅“使用工作流模板”。