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