【问题标题】:Github Actions - Is there a way to continue on error while still getting correct feedback?Github Actions - 有没有办法继续出错,同时仍然获得正确的反馈?
【发布时间】:2020-09-14 15:54:00
【问题描述】:

我是 Github Actions 的新手,我正在尝试找到一种方法来实现以下功能: 每当一个步骤失败时,它会显示它失败(将提供正确的反馈)但仍会继续执行其他步骤。

此刻,失败导致步骤停止:

我看到最流行的建议是使用 continue-on-error,但这似乎使该步骤的结论为“成功”,除非您进入日志,否则不会显示它失败。

在上面的屏幕截图中,“秘密”步骤失败了,但除非输入日志,否则它似乎是成功的。

在阅读 this thread 时,我开始怀疑 GH 操作中可能还不存在此功能。

我还尝试对每个步骤和/或工作使用条件。 例如,我尝试过: if: ${{ success() }} || ${{ failure() }} - 这根本没有提供所需的功能,步骤失败,下一步没有开始。

if: succeeded() || failed() - 从上面的 Github 社区线程中获取此语法,但它产生了语法错误(这是有道理的,因为它与指定的语法不兼容 here)。

总而言之,我正在寻找一种方法,使失败的步骤表明它们失败,并且仍然使工作流程继续到下一步。

谢谢!

【问题讨论】:

  • 代替succeeded() || failure(),试试always()。无论上一步是否失败,都可以在需要运行的后续步骤中使用它
  • always() 似乎有效,谢谢!

标签: continuous-integration continuous-deployment github-actions


【解决方案1】:

令我惊讶的是,感谢@smac89 的建议 - 添加if: always() 似乎可以解决问题。 我仍然想知道为什么if: ${{ success() }} || ${{ failure() }} 失败了,但该解决方案目前似乎有效。 感谢您的帮助!

【讨论】:

  • 我认为if: ${{ success() || failure() }} 会起作用。请注意只有一组大括号。根据我对文档的阅读,if: always() 在作业取消以及通过或失败时运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-11
  • 2022-07-14
  • 1970-01-01
  • 1970-01-01
  • 2020-01-08
  • 2021-02-06
相关资源
最近更新 更多