簡體   English   中英

Azure devops:在不同存儲庫的分支上構建管道觸發器 CI

[英]Azure devops: Pipeline Trigger CI build on branch in different repositories

我們如何觸發從一個存儲庫中提交的管道到另一個存儲庫中的管道?

基本上是這里詳細提到的尚未解決的問題:

https://developercommunity.visualstudio.com/content/problem/891431/not-able-to-trigger-ci-build-on-branch-using-pipel.html?inRegister=true

如果可能,官方文檔沒有說明這一點https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=azure-devops&tabs=yaml#pipeline-triggers

此功能仍在開發中。 azure devops 服務將很快提供對 YAML 管道的多存儲庫支持。

此功能將支持基於在多個存儲庫之一中所做的更改來觸發管道。 請查看Azure DevOps 功能時間表AzureDevOpsRoadmap 預計將於 2020 年第一季度推出 azure devops 服務。


目前,您可以按照以下解決方法使用構建完成來實現上述目標(管道將在另一個構建完成時觸發)。

假設有 repo A 和 repo B。您希望在推送到 A 的提交時觸發 B 中的管道。

1、為repo A創建一個空的classic pipeline作為觸發pipeline,總是成功,什么都不做。

2,並在觸發器選項卡下選中啟用持續集成為此觸發管道設置 Bracnh 過濾器,確保在推送提交時觸發此空管道。

在此處輸入圖片說明

3、在 Repo B 管道中設置 Build Completion 觸發器。

在 Repo B編輯頁面的 yaml 管道中,單擊右上角的三個點,然后單擊Triggers 然后單擊Build Completion旁邊的 +Add 並選擇上面在步驟 1 中創建的觸發管道作為觸發構建。 (您也可以定義回購B的YAML管道管線觸發器,檢查這里的管道觸發)

在此處輸入圖片說明

4、如果要構建Repo A的代碼,還需要多做一步配置Repo B的pipeline中的checkout repo。

在 Repo B 的管道中使用Checkout在管道中檢出Repo A 的代碼。 請參考以下示例:

steps: 
  - checkout: git://MyProject/Repo A@refs/heads/master # Azure Repos Git repository in the same organization

  - task: TaskName
     ...

我不確定這是否可能,但我前段時間(使用 GIT 存儲庫)讓這個工作的唯一方法是在一個管道的末尾對“另一個”存儲庫進行 git push,這會自動觸發“另一個”管道

編輯:也許您可以使用 Azure DevOps Service Hooks,在推送的代碼上創建一個 WebHook,然后創建一個 REST API 回調到 Azure DevOps 以使用來觸發管道

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM