【问题标题】:Github workflow job not triggered while dependent on other job依赖于其他作业时未触发 Github 工作流作业
【发布时间】:2021-09-30 20:05:18
【问题描述】:

我正在尝试使用基于 needsif 的作业依赖树来实现流程

这是工作流文件,我的问题是即使job3执行成功也没有触发job4。

我找不到任何解释正在发生的事情的文档,但似乎正在幕后构建的 needs 树与 job4 不匹配,因为 job3 上的 needs 未完成(是被if强制)

我有一个解决方法来使用作业输出来解决这个流程,但我想知道为什么这个简单的例子不起作用。谁能解释一下为什么?

谢谢

name: Test Workflow

on:
  push:


jobs:

  job1:
    runs-on: ubuntu-latest
    steps:
      - run: echo Job1


  job2:
    if: cancelled()
    runs-on: ubuntu-latest
    steps:
      - run: echo Job2


  job3:
    if: always()
    needs: [job1, job2]
    runs-on: ubuntu-latest
    steps:
      - run: echo Job3


  job4:
    needs: job3
    runs-on: ubuntu-latest
    steps:
      - run: echo Job4

【问题讨论】:

    标签: github-actions


    【解决方案1】:

    所有相关作业都必须成功。所以你的工作 4 取决于工作 3,它必须是工作 3,而且它所需要的一切都必须成功。

    请查看GitHub issue - Job-level "if" condition not evaluated correctly if job in "needs" property is skipped

    我假设在您的情况下,即使您强制作业 3 运行结果也不是成功,而是有所不同。因此作业 4 没有运行。

    在工作 4 中你可能需要这样的东西。

    
    if: |
          always() &&
          (needs.job3.result == 'success' || needs.job3.result == 'skipped')
    

    【讨论】:

    • 谢谢@krzysztof-madej 那是我。我需要使用作业的输出来检查是否成功。
    • @AlejandroGonzález 如果我的回复对您有帮助,您可以考虑点赞吗?
    猜你喜欢
    • 2018-09-03
    • 1970-01-01
    • 2022-01-14
    • 2021-07-23
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 2022-11-23
    • 2017-03-21
    相关资源
    最近更新 更多