Skip to main content

故障排除工作流

可以使用 GitHub Actions 中的工具来调试工作流。

初始故障排除建议

可通过多种方式排查工作流运行失败的问题。

注意

如果使用的是 GitHub Copilot 免费版 订阅,则此值将计入每月聊天消息限制。

使用 GitHub Copilot

若要打开与 GitHub Copilot 进行的关于失败工作流运行的聊天,你可以:

  • 在合并框中失败的检查旁边,单击“”,然后单击“ Explain error”。********
  • 在合并框中,单击失败的检查。 在工作流运行摘要页顶部,单击“ Explain error”。****

这将打开与 GitHub Copilot 的聊天窗口,其中将提供解决问题的说明。

使用工作流运行日志

每个工作流程运行都会生成活动日志,您可以查看、搜索和下载这些日志。 有关详细信息,请参阅“使用工作流运行日志”。

启用调试日志记录

如果工作流程日志没有提供足够的详细信息来诊断工作流程、作业或步骤未按预期工作的原因,您可以启用额外的调试日志。 有关详细信息,请参阅“启用调试日志记录”。

如果工作流使用特定工具或操作,则启用其调试或详细日志记录选项有助于生成更详细的输出,以便进行故障排除。 例如,可以将 npm install --verbose 用于 npm,或将 GIT_TRACE=1 GIT_CURL_VERBOSE=1 git ... 用于 git。

查看计费错误

操作使用情况包括工作流项目的运行器分钟数和存储。 有关详细信息,请参阅“GitHub Actions billing”。

设置预算

配置 Actions 预算可能有助于立即恢复因计费或存储错误而中断的工作流。 这将使额外的运行时间和存储使用量可在设定的预算限额内继续计费。 若要了解详细信息,请参阅“Setting up budgets to control spending on metered products”。

通过指标查看 GitHub Actions 活动

若要使用指标分析工作流的效率和可靠性,请参阅“查看 GitHub Actions 指标”。

排查工作流触发器问题

可查看工作流的 on: 字段,以了解触发工作流的预期内容。 有关详细信息,请参阅“触发工作流程”。

有关可用事件的完整列表,请参阅“触发工作流的事件”。

触发事件条件

某些触发事件仅从默认分支(即 issuesschedule)运行。 位于默认分支之外的工作流文件版本不会响应这些事件的触发。

如果拉取请求存在合并冲突,工作流将不会在 pull_request 活动上运行。

如果提交信息中包含跳过注释,则触发 pushpull_request 活动的工作流将不会运行。 有关详细信息,请参阅“跳过工作流程运行”。

计划内工作流在意外时间运行

计划内事件在 GitHub Actions 工作流运行期间负载过高时可能会被延迟。

高负载时间包括每小时的开始时间。 如果负载足够高,可能会删除一些排队作业。 为了降低延迟的可能性,将您的工作流程安排在不同时间运行。 有关详细信息,请参阅“触发工作流的事件”。

筛选和差异限制

特定事件支持你自定义按分支、标签和/或路径进行筛选。 如果应用筛选条件筛选掉工作流,则不会创建该工作流运行。

可在筛选器中使用特殊字符。 有关详细信息,请参阅“GitHub Actions 的工作流语法”。

对于路径筛选,评估差异仅限于前 300 个文件。 如果更改的文件与筛选器返回的前 300 个文件不匹配,则工作流将不会运行。 有关详细信息,请参阅“GitHub Actions 的工作流语法”。

排查工作流执行问题

工作流执行涉及在触发工作流并创建工作流运行后出现的任何问题。

取消工作流

如果通过 UIAPI 的常规取消操作未按预期执行,可能是正在运行的工作流作业配置了某个条件语句,导致其无法被取消。

在这些情况下,可以利用 API 强制取消运行。 有关详细信息,请参阅“工作流运行的 REST API 终结点”。

常见原因可能是使用了 always() 状态检查函数,该函数即使在取消操作时也会返回 true。 另一种方法是使用 cancelled() 函数的反函数 ${{ !cancelled() }}

有关详细信息,请参阅 使用条件控制作业执行取消工作流程运行

排查运行器错误

定义运行器标签

GitHub-托管运行器利用通过 actions/runner-images 仓库维护的预设标签

建议对大型自托管运行器使用唯一的标签名称。 如果某个标签与现有的预设标签匹配,可能会出现运行器分配问题,导致无法保证作业将在哪个匹配的运行器上运行。

自托管运行器

如果您使用自托管运行器,则可以查看其活动并诊断常见问题。

有关详细信息,请参阅“对自托管运行程序进行监视和故障排除”。