繁体   English   中英

Azure DevOps 触发仅针对特定 PR 的拉取请求

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM