在Github Actions中,当多个其他工作流程完成时运行一个工作流程

4
例如,在我的存储库中,我有3个GitHub操作工作流:linting(L),unittests(U)和构建(B)工作流。我只想在L和U完成后触发构建工作流程。L和U都会在推送事件上自动触发。如果我在B工作流程中这样做:
  workflow_run:
    workflows: ["Lint", "UnitTests"]
    types: 
      - completed

在我的构建工作流程中,当L完成时,它会被触发一次,而当U完成时,它会再次被触发。 是否可能只在L和U都完成时触发B仅一次?
1个回答

4

这是不能直接实现的。它在这里类似于OR。如果您只想在两个工作流都完成时触发此工作流,则需要引入一种编排程序,在其中存储状态并保留有关已执行工作流的信息。可以使用某些有状态应用程序实现。但是,这是非常大的工作量。


我明白了。那么如果有多个繁重的任务需要同时完成以节省时间,我们该怎么办呢? - Stqs
如果您可以在单个工作流中运行它们,请将它们放入单独的作业中并清除它们的依赖关系。添加第三个作业,它将依赖于前两个作业。你会得到什么?第一和第二个作业将并行执行,第三个作业将等待它们完成。顺便说一句,如果我的回答有帮助,请考虑给它点赞吧? - Krzysztof Madej

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接