github 操作排除来自分支的拉取请求
github actions exclude pull requests from a branch
假设我有一个工作流在每个 PR 上运行以掌握它以:
on:
pull_request:
branches:
- master
如果 PR 来自 depbot
分支,我想跳过所有作业。类似于:
on:
pull_request:
branches:
- master
head_ref-ignore:
- depbot
我认为您可以使用
跳过所有步骤(一次一个)
if: startsWith(github.head_ref, 'depbot') == false
但这不是我想要的,因为它仍然会启动作业。我怎样才能在发布级别实现这一目标?
But it is not what I want, as it would still initiate the job.
这意味着您将需要一个将启动的“看门人”作业(并检查 github.head_ref),并且通过 job dependency,仅当满足正确的条件时才会调用第二个作业.
但重点是:您至少需要一项工作才能开始,以便检查条件。
根据the documentation,至少有两种方法可以在工作流程级别进行:
on:
pull_request:
branches:
- 'master' # matches refs/heads/master
- '!depbot' # excludes refs/heads/depbot
或
on:
pull_request:
branches-ignore:
- 'depbot' # ignore refs/heads/depbot
并不是说您不能在工作流程中对同一事件同时使用 branches
和 branches-ignore
过滤器。当您需要为正匹配过滤分支并排除分支时,请使用分支过滤器。当您只需要排除分支名称时,请使用 branches-ignore 过滤器。
假设我有一个工作流在每个 PR 上运行以掌握它以:
on:
pull_request:
branches:
- master
如果 PR 来自 depbot
分支,我想跳过所有作业。类似于:
on:
pull_request:
branches:
- master
head_ref-ignore:
- depbot
我认为您可以使用
跳过所有步骤(一次一个) if: startsWith(github.head_ref, 'depbot') == false
但这不是我想要的,因为它仍然会启动作业。我怎样才能在发布级别实现这一目标?
But it is not what I want, as it would still initiate the job.
这意味着您将需要一个将启动的“看门人”作业(并检查 github.head_ref),并且通过 job dependency,仅当满足正确的条件时才会调用第二个作业.
但重点是:您至少需要一项工作才能开始,以便检查条件。
根据the documentation,至少有两种方法可以在工作流程级别进行:
on:
pull_request:
branches:
- 'master' # matches refs/heads/master
- '!depbot' # excludes refs/heads/depbot
或
on:
pull_request:
branches-ignore:
- 'depbot' # ignore refs/heads/depbot
并不是说您不能在工作流程中对同一事件同时使用 branches
和 branches-ignore
过滤器。当您需要为正匹配过滤分支并排除分支时,请使用分支过滤器。当您只需要排除分支名称时,请使用 branches-ignore 过滤器。