我有一个在 GitHub actions 中运行的管道工作流程。在此管道的末尾,我添加了一个作业,该作业在其他任何操作失败时运行(使用
if: failure()
)并向我发送有关失败的消息。
如果可能,我希望消息包含作业的名称,甚至是导致工作流程失败的步骤。
我在 GitHub 文档中没有找到任何与此相关的内容。这里有人知道一些上下文变量或其他功能可以帮助我吗?
我知道您可以使用
jobs.<job_id>.result
获得某个作业的结果,甚至可以使用 steps.<step_id>.outcome
获得某个步骤的结果,但我不想手动检查工作流程中的每项作业 - 它也应该自动工作新添加的作业/步骤。
我也不想通过手动导出每个作业的某种失败结果来创建手动解决方法,以防它失败。如果这是唯一的方法,我宁愿将此信息从消息中删除。
您可以使用 GitHub CLI,它存在于 ubuntu 最新的运行程序上:
gh api /repos/$GITHUB_REPOSITORY/actions/runs/$RUN_ID/jobs | jq '.jobs[]| select (.conclusion == "failure") | .name, .head_branch, (.steps[]|select(.conclusion == "failure")|.name)'
您将得到三行:
job name
branch
step name