簡體   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