![](/img/trans.png)
[英]How do I trigger build only on PR, and not after merge, on Azure pipelines?
[英]Can I trigger pipelines in other repos when I create a PR?
我們在 Azure DevOps 中有 3 個存儲庫。 我們使用 Azure Pipelines 來運行我們的 CI/CD 鏈。 Repo A 是其他 repos 使用的工具集。 Repo B 使用 A 作為子模塊,C 使用 A 作為 git 子模塊。
在 repo A 中創建 PR 時,我們希望在 repo B 和 C 中觸發 test Pipelines,並在 repo A 的 PR 中具有狀態。 B 和 C 的管道/運行應在運行測試時使用 PR 提交。 這是為了避免 repo A 中的更改在發布時破壞 repo B 和 C。
我們的問題是,我們要確保使用 repo A(PR 中的那個)的正確提交,並將 repo B 和 C 的測試結果放入 PR。
這應該可以通過分支策略中的構建驗證策略來實現,但這不會是直截了當的。
在后台,當您在構建驗證策略中指定構建時,azure-devops 將在臨時分支/refs/pull/<id>/merge
上排隊管道。 它使用代表拉取請求元數據的幾個附加變量對管道進行排隊。 當該構建完成時,它會向拉取請求發送一條狀態消息,以指示是否滿足條件。
Microsoft 有幾篇關於如何創建自定義 PR 服務器或使用Function App 創建自定義分支策略的文章。 這些可以用作一種方法,但兩篇文章都建議它們在創建拉取請求時基於 webhook 調用。 兩篇文章都提到了如何將自定義 PR 狀態消息發送回 PR。
如果您想更好地控制手動重新排隊構建驗證,理論上您還可以創建一個觸發其他 repos 中的其他管道的管道。
/refs/pull/<id>/merge
分支,然后是 Build + Test。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.