【问题标题】:How can I prevent a GitHub action from running in parallel for the same branch, including pull requests?如何防止 GitHub 操作为同一分支并行运行,包括拉取请求?
【发布时间】:2022-10-13 04:25:43
【问题描述】:

我有一个 GitHub 操作。它可以从分支、拉取请求或手动触发。我想实现以下目标:永远不能有两个从同一个分支并行运行的操作实例,包括来自分支的拉取请求。

我最好的想法是这样做(伪代码):

concurrency: {{ if github.head_ref is nonempty then github.head_ref else github.ref }}

当从 PR 触发作业时,github.head_ref 包含源分支的名称。从分支触发作业时,github.ref 包含分支名称。所以上面的表达式应该可以解决我的问题,除了它不是有效的 GitHub 操作代码,我不知道是否可以做出这样的表达式。

我可以写一个表达式或表达式组合来实现上述目的吗?或者我可以通过其他方式解决我的根本问题吗?

【问题讨论】:

    标签: github-actions


    【解决方案1】:

    正如文档中所建议的那样,在this 示例中,您可以定义一个备用/默认值,因此请尝试:

    concurrency: {{ github.head_ref ||  github.ref }}
    
    

    【讨论】:

    • 通过添加有关代码的作用以及它如何帮助 OP 的更多信息,可以改进您的答案。
    • 谢谢@Tyler2P 我添加了一些上下文
    猜你喜欢
    • 2020-06-25
    • 2021-07-24
    • 2020-01-30
    • 1970-01-01
    • 2021-09-24
    • 2022-11-03
    • 2020-12-28
    • 2022-08-13
    • 1970-01-01
    相关资源
    最近更新 更多