如果另一个作业失败则停止正在进行的 GitHub 作业(失败时停止)

Gil*_*hen 9 github github-actions

TL; DR:并行运行作业 a、b。如果 a 失败,则停止仍在运行的 b 的执行。

我的公司使用 GitHub Actions 来部署我们的代码。

我们部署的第一步是构建 docker 并将它们推送到 DockerHub。

我们为代码编写了一个测试,希望与构建 Docker 并行运行。

这两项都是独立的工作,根据前两项的成功,我们还有更多的工作。

现在,如果测试作业失败,另一个作业会继续运行,但显然下一个作业不会运行,因为测试作业失败了。

我想做的是,如果测试失败,则在运行时取消 docker 构建作业。

那可能吗?在搜索了网络、StackOverflow 和 GitHub Actions 页面后,我还没有找到一种方法来做到这一点。

谢谢!

ast*_*hun 4

您可以指定needs选项并引用作业名称。请参阅:https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idneeds

一个例子可能是这样的:

jobs:
  build:
    ...
  deploy:
    needs: build
    ...
Run Code Online (Sandbox Code Playgroud)

  • 我正在使用“needs”,但它会使第二个作业等待第一个作业完成,并且我想并行运行两个作业,如果一个作业失败,则停止另一个作业。 (5认同)