Azure devops Azure DevOps |从Powershell触发发布并传递过程变量(可在发布时设置)

Azure devops Azure DevOps |从Powershell触发发布并传递过程变量(可在发布时设置),azure-devops,Azure Devops,是否可以从PowerShell(构建管道中的PowerShell任务)触发发布并传递过程变量(在发布时可设置) 目标: 我们使用多个分支构建管道。我想根据分支名称从构建中触发一个发布(在发布时可以设置变量) 在发布时使用变量的原因是他的变量用于针对azure上的特定资源。我们可以通过调用REST API()从Powershell触发发布,但不能传递过程变量(在发布时可设置) 因为我们必须在请求主体中提供特定的工件版本ID(哪个工件用于触发发布)。一旦提供了工件版本ID,变量就不再有用了 您可以参

是否可以从PowerShell(构建管道中的PowerShell任务)触发发布并传递过程变量(在发布时可设置)

目标:

我们使用多个分支构建管道。我想根据分支名称从构建中触发一个发布(在发布时可以设置变量)


在发布时使用变量的原因是他的变量用于针对azure上的特定资源。

我们可以通过调用REST API()从Powershell触发发布,但不能传递过程变量(在发布时可设置)

因为我们必须在请求主体中提供特定的
工件版本ID
(哪个工件用于触发发布)。一旦提供了
工件版本ID
,变量就不再有用了

您可以参考下面的PowerShell脚本来触发发布:

Param(
   [string]$collectionurl = "https://{account}.vsrm.visualstudio.com",
   [string]$projectName = "GIT",
   [string]$user = "username",
   [string]$token = "password",
   [string]$releasedDefinitionId = "3" 

)

# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

function CreateJsonBody
{
    $value = @"
{
 "definitionId":$releasedDefinitionId,
 "artifacts":[{"alias":"_BitBucketDev",
                "instanceReference":{"id":"454",
                       "name":"454",
                       "definitionId":"58",
                       "sourceBranch":"master",
                    }
                }
            ],

 "isDraft":false,
 "manualEnvironments":[]
"@

 return $value
}

$json = CreateJsonBody

$uri = "$($collectionurl)/$($projectName)/_apis/Release/releases?api-version=4.1-preview.6"
$result = Invoke-RestMethod -Uri $uri -Method Post -Body $json -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

$ReleaseID = $result.id

Write-Host "ReleaseID:" $ReleaseID