在 CLI 中观看 GH Actions 工作流输出?
Posted
技术标签:
【中文标题】在 CLI 中观看 GH Actions 工作流输出?【英文标题】:Watch GH Actions workflow output in CLI? 【发布时间】:2021-12-21 21:46:10 【问题描述】:我正在尝试通过 CLI 在特定分支上执行 github 工作流。此处提供了相关文档https://cli.github.com/manual/gh_workflow_run
是否有可能以某种方式获得与终端中的浏览器 UI 相同的日志?我想以编程方式与之交互。
如果可以使用他们的 rest api,那就更好了。
https://docs.github.com/en/rest/reference/actions#create-a-workflow-dispatch-event 根据文档,它只返回一个 Status: 204 No Content
。
【问题讨论】:
【参考方案1】:可以使用 Github API 和您提到的 dispatch_event API 远程触发工作流。
Github CLI 有各种工作流命令(run
、list
、view
、enable
或 disable
)。您可以在official documentation找到更多信息
要从 Github CLI as explained here 获取日志,您可以使用以下命令:
gh run view run-id --log
请注意,如果您不指定 run-id,GitHub CLI 会返回一个交互式菜单供您选择最近的运行,然后返回另一个交互式菜单供您从运行中选择一个作业。 em>
您还可以使用--job
标志来指定作业ID。将 job-id
替换为您要查看其日志的作业的 ID。
gh run view --job job-id --log
您可以使用grep
搜索日志。例如,此命令将返回所有包含单词 error 的日志条目。
gh run view --job job-id --log | grep error
要过滤任何失败步骤的日志,请使用--log-failed
而不是--log
。
gh run view --job job-id --log-failed
请注意,您可以获得workflow run id from the Github API as well。
因此,由于您应该已经拥有工作流文件中的 job_id
,因此可以通过 API 使用 dispatch_event
启动工作流,然后从工作流运行列表 API 中获取工作流 run_id
好吧,然后在循环中使用 Github CLI 命令来获取日志。
它并不漂亮,但它应该可以将所有这些步骤收集到一个脚本中作为一种解决方法。
【讨论】:
但这只会让我触发工作流程。这已经可以通过 cli 和 api 实现。我想要的是工作流的输出,在 cli 中。 好的,我已经更新了答案。如果您知道工作流程run_id
,您实际上也可以使用 Github CLI。您可以从 API 中获取。
是的,但这不会与工作流程的进度同步
加上工作流的任何调用(通过 cli 或其余 api 不返回作业 ID)
您还没有工作流文件中的job_id
吗?我知道可以通过 API 使用 dispatch_event
启动工作流,然后从工作流运行列表 API 中获取工作流 run_id
,并在循环中使用 Github CLI
命令来获取日志(它不漂亮,但它应该可以在脚本中收集所有这些步骤)。以上是关于在 CLI 中观看 GH Actions 工作流输出?的主要内容,如果未能解决你的问题,请参考以下文章
在运行 XNA 游戏时在 Visual Studio 中观看控制台输出面板
如何使用 Github-actions 在 Docker 上使用 Mysql 运行 Prisma 迁移