[英]How to automatically trigger releases in Azure Devops, from multiple branches, using multiple artifacts
[英]In Azure DevOps How to trigger releases using REST API?
我在 Azure DevOps 中構建和發布管道。 該管道包含三個不同的階段,即 STAGING、QA 和 PROD。 因此,在 QA 插槽中完成部署后,我想使用 REST API 觸發 PROD 環境。 那么,有可能這樣做嗎?
在單個發布管道中不可能做到這一點。 發布創建 api只能觸發發布管道運行,不能觸發管道內的某個階段。 由於發布管道中的階段僅支持發布后、階段后和手動。
為了滿足您的要求,您必須將您的產品階段與此版本(版本 A)分開,這意味着您將使用單階段產品環境創建一個新的發布管道(版本 B)。
然后,您可以在發布管道 A 的 QA 階段末尾添加一個 powershell 任務,以調用 API 以觸發發布 B 部署到 Prod 環境。 下面的腳本是例如:
$releaseUrl ="https://vsrm.dev.azure.com/<organization>/<project>/_apis/release/releases?api-version=5.1"
$body = '{
"definitionId": 4, # release definition id
"description": "Creating prod release",
"artifacts": [
{
"alias": "_NunitProject", #artifacts alias
"instanceReference": {
"id": "1367", #build id related to the artifacts
"name": null
}
}
],
"isDraft": false,
"reason": "none",
"manualEnvironments": null,
}'
$result4 = Invoke-RestMethod -Uri $releaseUrl -Headers @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" } -Method post -Body $body -ContentType "application/json"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.