[英]Azure DevOps trigger pull request for only specific PR's
用例:
我有一个 GitHub 存储库,它由基于区域的多个业务部门共享。 每个区域业务部门都有自己的 ADO 管道,在他们自己的 ADO 项目上创建,但都共享同一个存储库。
问题:
这两个 ADO 项目都使用相同的存储库,Team-A 提出的 PR 需要触发 Project-A ADO 管道,目前它也会触发 Team-B ADO 管道。 这需要解决。
解决方案:
我们只需要为特定于每个区域业务部门的特定拉取请求触发 ADO 管道。
对于管道触发器,您可能可以使用路径过滤器将其限制为每个区域配置的子文件夹。
几个分支策略提供路径过滤器。 如果设置了路径过滤器,则该策略仅适用于与路径过滤器匹配的文件。 将此字段留空意味着该策略适用于分支中的所有文件。
您可以指定绝对路径和通配符。 例子:
- /WebApp/模型/Data.cs
- /网络应用程序/*
- *。CS
您可以使用指定多个路径; 作为分隔符。 例子:
- /WebApp/Models/Data.cs;ClientApp/Models/Data.cs
路径前缀为。 如果它们本来会被包括在内,则被排除在外:示例:
- /WebApp/ ;!/WebApp/Tests/包括 /WebApp 中的所有文件,但 /WebApp/Tests 中的文件除外
- ,/WebApp/Tests/* 不指定任何文件,因为首先不包含任何文件
过滤器的顺序很重要。 过滤器从左到右应用。
对于 yaml 管道,您可能可以使用路径包含/排除将其限制为每个区域配置的子文件夹。
trigger:
batch: true
branches:
include:
- features/*
exclude:
- features/experimental/*
paths:
exclude:
- README.md
对于经典的设计器管道,您可能可以使用路径过滤器将其限制为将按区域配置的子文件夹。
- 路径总是相对于存储库的根指定的。 - 如果您不设置路径过滤器,则默认情况下会隐式包含 repo 的根文件夹。
- 如果排除路径,则不能同时包含它,除非将其限定为更深的文件夹。 例如,如果您排除 /tools 那么您可以包括 /tools/trigger-runs-on-these
- 路径过滤器的顺序无关紧要。 Git 中的路径区分大小写。 请务必使用与真实文件夹相同的大小写。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.