注意
GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。
初始故障排除建议
可通过多种方式排查工作流运行失败的问题。
使用工作流运行日志
每个工作流程运行都会生成活动日志,您可以查看、搜索和下载这些日志。 有关详细信息,请参阅“使用工作流运行日志”。
启用调试日志记录
如果工作流程日志没有提供足够的详细信息来诊断工作流程、作业或步骤未按预期工作的原因,您可以启用额外的调试日志。 有关详细信息,请参阅“启用调试日志记录”。
如果工作流使用特定工具或操作,则启用其调试或详细日志记录选项有助于生成更详细的输出,以便进行故障排除。
例如,可以将 npm install --verbose
用于 npm,或将 GIT_TRACE=1 GIT_CURL_VERBOSE=1 git ...
用于 git。
排查工作流触发器问题
可查看工作流的 on:
字段,以了解触发工作流的预期内容。 有关详细信息,请参阅“触发工作流程”。
有关可用事件的完整列表,请参阅“触发工作流的事件”。
触发事件条件
某些触发事件仅从默认分支(即 issues
和 schedule
)运行。 位于默认分支之外的工作流文件版本不会响应这些事件的触发。
如果拉取请求存在合并冲突,工作流将不会在 pull_request
活动上运行。
如果提交信息中包含跳过注释,则触发 push
或 pull_request
活动的工作流将不会运行。 有关详细信息,请参阅“跳过工作流程运行”。
计划内工作流在意外时间运行
计划内事件在 GitHub Actions 工作流运行期间负载过高时可能会被延迟。
高负载时间包括每小时的开始时间。 如果负载足够高,可能会删除一些排队作业。 为了降低延迟的可能性,将您的工作流程安排在不同时间运行。 有关详细信息,请参阅“触发工作流的事件”。
筛选和差异限制
特定事件支持你自定义按分支、标签和/或路径进行筛选。 如果应用筛选条件筛选掉工作流,则不会创建该工作流运行。
可在筛选器中使用特殊字符。 有关详细信息,请参阅“GitHub Actions 的工作流语法”。
对于路径筛选,评估差异仅限于前 300 个文件。 如果更改的文件与筛选器返回的前 300 个文件不匹配,则工作流将不会运行。 有关详细信息,请参阅“GitHub Actions 的工作流语法”。
排查工作流执行问题
工作流执行涉及在触发工作流并创建工作流运行后出现的任何问题。
取消工作流
如果通过 UI 或 API 的常规取消操作未按预期执行,可能是正在运行的工作流作业配置了某个条件语句,导致其无法被取消。
在这些情况下,可以利用 API 强制取消运行。 有关详细信息,请参阅“工作流运行的 REST API 终结点”。
常见原因可能是使用了 always()
状态检查函数,该函数即使在取消操作时也会返回 true
。 另一种方法是使用 cancelled()
函数的反函数 ${{ !cancelled() }}
。
有关详细信息,请参阅 使用条件控制作业执行 和 取消工作流程运行。
排查运行器错误
定义运行器标签
GitHub-托管运行器利用通过 actions/runner-images
仓库维护的预设标签。
建议对大型自托管运行器使用唯一的标签名称。 如果某个标签与现有的预设标签匹配,可能会出现运行器分配问题,导致无法保证作业将在哪个匹配的运行器上运行。
自托管运行器
如果您使用自托管运行器,则可以查看其活动并诊断常见问题。
有关详细信息,请参阅“对自托管运行程序进行监视和故障排除”。