gpt4 book ai didi

github - 如何获取Github Actions中最新失败步骤的stderr

转载 作者:行者123 更新时间:2023-12-05 04:21:58 29 4
gpt4 key购买 nike

在处理 Github 操作时,我需要了解我需要做什么才能在任何步骤出现错误时捕获日志行,并在后续作业中将这些发送到外部系统。

让我们设定下一个场景:

jobs:
job1:
name: job 1
steps:
- name: step1
...
- name: step2
...
- name: step3
...
...
job2:
name: job 2
needs: [job1]
if: always()
steps:
- name: Send error lines to third party system
...

在 job1 的执行过程中,其中一个步骤失败,因此在 stdout 和 stderr 中设置了一些错误日志。


捕获 job2 中那些错误日志行的方法是什么,以便对它们采取一些措施?例如将它们发送到外部系统。

最佳答案

我解决类似需求的方法是使用 tee:

    steps:
- name: Run Tool
run: |
some_tool | tee output.log
shell: bash

这会导致您获得始终在 GitHub Actions 控制台中看到的相同日志,同时还将它们保存到磁盘。如果你也想要 stderr,做

some_tool 2>&1 | tee output.log

然后,在同一作业的后续步骤中,您可以使用 if: ${{ failure() }} syntax 对这些日志做任何您喜欢的事情。 :

    steps:
- name: Persist logs
if: ${{ failure() }}
run: |
cat output.log | do_something_with_logs
shell: bash

如果您需要跨作业边界保留日志,您可以使用 artifacts .

关于github - 如何获取Github Actions中最新失败步骤的stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74112918/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com