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