【发布时间】:2021-08-01 22:48:09
【问题描述】:
TL; DR:并行运行作业 a、b。如果 a 失败,则在 b 仍在运行时停止执行。
我的公司使用 GitHub Actions 来部署我们的代码。
我们部署的第一步是构建 docker 并将它们推送到 DockerHub。
我们为我们的代码编写了一个测试,我们希望与构建 docker 并行运行。
这两个都是独立的工作,我们还有几个工作取决于前两个的成功。
现在,如果测试作业失败,另一个作业会继续运行,但很明显,下一个作业不会运行,因为测试作业失败。
如果测试失败,我想做的是在运行时取消 docker 构建作业。
这可能吗?在搜索了网络、StackOverflow 和 GitHub Actions 页面后,我还没有找到这样做的方法。
谢谢!
【问题讨论】:
-
如果我理解正确,让它并行运行的问题是你可以部署没有经过全面测试的代码(即,如果它在 docker push 之后失败,那就太晚了)。我想你还是想一个接一个地做。
-
另外,查看您的 GitHub 操作以了解您尝试过的内容也会有所帮助。
-
您的工作流程只有作业 a 和 b?有一种方法可以使用 API 取消整个工作流程,但我不确定这是否是您想要的。如果作业 a 出现问题,您可以取消工作流,这意味着作业 b 和以下作业也将停止。
-
我猜你可以将这两个工作分开在不同的工作流程中。然后,如果您的测试工作流程失败,您可以使用 Github API 上的 cancel-a-workflow-run 服务向该工作流程添加一个新工作,以取消另一个工作流程。
-
谢谢大家!但这不是我们想要解决的方式。还是谢谢
标签: github github-actions