首页 > 解决方案 > DevOps:如何在拉取请求中正确使用分支过滤器

问题描述

我们的 repo 具有以下分支结构 - 功能分支 -> QA -> master。我们也有 3 个构建管道,1 个用于 QA,1 个用于 master,1 个用于处理所有功能分支的 Dev。构建管道是一个简单的 YAML 文件,没有发布管道,因为这是一个 Web 应用程序,构建管道有一个AzureRmWebAppDeployment步骤。管道只包含namepoolvariablessteps,这是标准的 nuget/build/publish 任务。

我正在使用触发器来启用 CI,但是当我完成从 QA 到 master 分支的拉取请求时,我看到 master 分支的构建启动,以及 dev/feature 分支的构建启动。如何避免构建 dev/feature 分支?

这是为 Dev 管道定义的触发器:

在此处输入图像描述

主构建管道的触发器Include = master只有。

标签: azure-devops

解决方案


谢谢,我确实在 DC论坛上发过帖子,结果证明是设计使然。据记载,如果添加Exclude过滤器,则必须添加Include过滤器。

  • 如果您不设置路径过滤器,则默认情况下会隐式包含 repo 的根文件夹。
  • 添加显式路径过滤器时,会删除根文件夹的隐式包含。因此,请确保明确包含构建所需的所有文件夹。

为了解决我的问题,我简单地添加了Include = *,这避免了在完成对 QA 和 master 分支的拉取请求时构建开发管道。


推荐阅读