Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

必需工作流

可以指定哪些工作流将在组织中的所有存储库或所选存储库中作为必需状态检查运行。

注意:所需工作流目前处于 beta 版本阶段,可能会更改。

概述

可以为针对默认分支打开的所有拉取请求配置必须在组织的存储库中运行的工作流。 使用必需工作流,可实现组织范围的 CI/CD 策略,这些策略适用于当前和未来的存储库。 必需工作流由拉取请求事件触发,并显示为必需状态检查,在此情况下,在必需工作流成功之前,无法合并拉取请求。

显示用于查找必需工作流的控件的屏幕截图

必需工作流与可重用工作流不同。 可重用工作流可由另一个工作流调用。 必需工作流由组织所有者在存储库上强制执行。

先决条件

在配置必需工作流之前,请注意以下先决条件:

  • 必须在组织设置中为存储库启用 GitHub Actions 才能运行必需工作流。 在组织级别启用必需工作流后,即使在存储库设置中禁用了 GitHub Actions,必需工作流也会运行。 有关管理组织存储库中的 GitHub Actions 的详细信息,请参阅“管理组织的 GitHub Actions 权限”。
  • 必需工作流适用于组织,并且仅在组织计划支持必需状态检查的存储库中可用。 如果不支持必需状态检查,工作流仍将运行,但它不是必需检查,也不会阻止合并。 有关支持必需状态检查的详细信息,请参阅“关于受保护的分支”。
  • 存储库的默认分支必须与组织的默认分支设置匹配,必需工作流才能作为必需状态检查运行。 如果默认分支名称不匹配,工作流仍将运行,但它不是必需检查。 有关管理默认分支名称的详细信息,请参阅“管理组织中存储库的默认分支名称”和“更改默认分支”。
  • 要运行必需工作流,拉取请求的源存储库必须与目标存储库位于同一组织中。 GitHub 将从包含工作流的存储库的默认分支的 HEAD 提交中获取必需工作流。
  • 应在组织级别或目标存储库中创建必需工作流中使用的机密。
  • 当工作流在目标存储库中运行时,不会提取源存储库中的机密。

源存储库的限制和行为

请注意源存储库和工作流的以下限制和行为:

  • 必需工作流可以存储在任何存储库文件夹中,而不像普通工作流那样限制于 .github/workflows 文件夹。 如果必需工作流调用可重用工作流,则必须将可重用工作流存储在 .github/workflows 文件夹中。 调用可重用工作流时,必需工作流必须使用完整路径,并引用该可重用工作流。 例如,{owner}/{repo}/.github/workflows/{filename}@{ref}
  • 如果必需工作流包含在专用存储库中,则必须确保存储库中的工作流可由组织中的其他存储库访问。 有关详细信息,请参阅“允许访问专用存储库中的组件”。
  • 可以将存储在公共存储库中的工作流配置为组织中任何存储库的必需工作流。 可以将存储在专用存储库中的工作流配置为组织中其他专用存储库的必需工作流。
  • 必需工作流不支持 CodeQL,因为 CodeQL 需要在存储库级别进行配置。 有关配置代码扫描的详细信息,请参阅“为存储库配置代码扫描”。

目标存储库的限制和行为

请注意目标存储库的以下限制和行为:

  • 将必需工作流配置为在所有或所选存储库上运行时,包含必需工作流的存储库的可见性会影响组织中运行工作流的存储库。 存储在公共存储库中的必需工作流将在所有存储库上运行。 存储在专用存储库中的必需工作流将仅在其他专用存储库上运行。
  • 无法将必需工作流配置为在创建工作流的存储库中运行。 应考虑创建单独的存储库来存储必需工作流。
  • 将必需工作流配置为在所有或所选存储库上运行时,必需工作流不会在组织设置中禁用了其中的操作的存储库中运行。

查看必需工作流的工作流运行

在存储库中至少运行一次必需工作流后,可以在该存储库的“操作”选项卡中查看其工作流运行。若要对组织中配置为必需的工作流进行更改,必须联系组织所有者。 若要对必需工作流本身进行更改,对包含必需工作流的存储库具有写入权限的任何人都可以对其进行更改。

  1. 在 GitHub.com 上,导航到存储库的主页。 1. 在你的存储库名称下,单击 “操作”。 主存储库导航中的“操作”选项卡

  2. 在左边栏中,可以在“必需工作流”下查看必需工作流的工作流运行。

    显示必需工作流的屏幕截图

向组织添加必需工作流

组织所有者可以在其组织中配置必需工作流。 有关详细信息,请参阅“禁用或限制组织的 GitHub Actions”。