如何防止同一分支并行运行 GitHub 操作,包括拉取请求?

问题描述 投票:0回答:1

我有一个 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个回答
8
投票

按照文档中的建议,在 this 示例中,您可以定义一个后备/默认值,因此请尝试使用:

concurrency: 
  group: ${{ github.head_ref ||  github.ref }}
© www.soinside.com 2019 - 2024. All rights reserved.