我在Azure DevOps中具有构建和发布管道。 该管道包含三个不同的阶段,即STAGING,QA和PROD。 因此,在QA插槽中完成部署后,我想使用REST API触发PROD环境。 那么,可以这样做吗?
答案 0 :(得分:0)
不可能在单个发布管道中执行此操作。发布create api只能触发发布管道运行,而不能触发管道中的某个阶段。 由于发布渠道中的阶段仅支持发布后,阶段后和手动。
要满足您的要求,您必须将产品阶段与此发行版(发行版A)分开,这意味着您将使用单阶段产品环境创建一个新的发行管道(发行版B)。
然后,您可以在QA阶段结束时在发布管道A中添加一个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"