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

问题描述 投票:0回答:1

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

azure azure-devops azure-devops-rest-api
1个回答
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"
© www.soinside.com 2019 - 2024. All rights reserved.