在Azure DevOps中如何使用REST API触发版本?

时间:2019-11-21 10:22:13

标签: azure azure-devops azure-devops-rest-api

我在Azure DevOps中具有构建和发布管道。 该管道包含三个不同的阶段,即STAGING,QA和PROD。 因此,在QA插槽中完成部署后,我想使用REST API触发PROD环境。 那么,可以这样做吗?

1 个答案:

答案 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"