簡體   English   中英

Azure devops 發布流水線觸發器

[英]Azure devops Release pipeline Trigger

我已經設置了應用程序構建發布管道和測試自動化發布管道是分開的。目前,只要創建了構建,然后測試自動化就會開始,這是錯誤的,因為構建工件剛剛發布但尚未部署,這將由發布完成管道。 所以我正在尋找一個解決方案,我可以將觸發器添加到測試發布管道中,它將檢查構建發布管道是否已完成並將代碼部署到環境中。

如果您在一個 yml 文件中有此內容,則可以在buildStagedeployStage上使用dependsOn ,以及在AutomationTestsStage階段中的先前階段的成功狀態中使用condition

stages:
- stage: 'AutomationTestsStage'
  dependsOn:
  - buildStage
  - deployStage
  condition: succeeded()

根據您的描述,您有三個管道,構建管道(構建和發布工件)、應用程序發布管道和測試自動化發布管道。 您已經設置了一個 CD 觸發器,該觸發器將在管道完成后一起觸發發布管道。 但是您希望管道運行的順序是構建管道->應用程序發布管道->測試自動化發布管道,對嗎?

所以我正在尋找一個解決方案,我可以將觸發器添加到測試發布管道中,它將檢查構建發布管道是否已完成並將代碼部署到環境中。

作為一種解決方法,我們需要打開測試自動化發布管道定義並禁用 CD 觸發器,然后打開打開應用程序發布管道,在作業結束時添加任務電源 shell 並調用REST ZDB974238714CA8DE634A7CE1 )。

電源 shell 腳本:

$token = "{PAT}"   
$url = "https://vsrm.dev.azure.com/{Org name}/{Project name}/_apis/Release/releases?api-version=5.0"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))


$JSON = @"
{
  "definitionId": {test automation release pipeline definition ID}
}
"@

$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -ContentType application/json -body $JSON

}

此外,我們需要將 Power Shell 條件設置為Only when all previous tasks have succeeded時,檢查下圖。

在此處輸入圖像描述

現在,它將在build release pipeline is completed & code is deployed to the environment后運行發布測試自動化發布管道

暫無
暫無

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

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