【发布时间】:2019-12-21 07:27:45
【问题描述】:
在 Azure Devops 的构建和发布管道中,我正在通过 api 触发其他管道。
我正在尝试让我的发布管道收集在相关构建期间发现/使用的自定义变量。
我能够通过 get api 获取构建列表,并且我能够生成其他构建并将参数传递给它们。
虽然我可以通过 api 生成一个版本,但我未能成功传递参数...或在创建版本时按需收集参数。
我已经查看了 Microsoft 的文档,并通过 api 使用自定义参数成功地将构建排队并创建了没有自定义参数的版本。
[String]$buildID = "$env:BUILD_BUILDID"
[String]$project = "$env:SYSTEM_TEAMPROJECT"
[String]$projecturi = "$env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"
[String]$alias = "drop"
$headers = @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" }
$url= $projecturi + $project + "/_apis/release/releases?api-version=5.0-preview"
$JSON = @"
{
"definitionId": 9,
"description": "Testing API Release",
"artifacts": [
{
"alias": "$alias",
"instanceReference": {
"id": "$buildID",
"name": null
}
}
],
"isDraft": false,
"reason": "none",
"manualEnvironments": null
}
"@
Write-Host $url
$responseRelease = Invoke-RestMethod -Uri $url -headers $headers -Method Post -ContentType "application/json" -Body $JSON
Write-Host $responseRelease
当前代码的结果会创建一个版本,但不传递自定义变量(或从已完成的构建中获取自定义变量)。我宁愿传递或收获它们,也不愿重新计算它们。
【问题讨论】:
-
我希望有一种方法可以从构建中读取变量...因为我假设我仍然无法将变量传递到基于此链接的版本中。 stackoverflow.com/questions/49283685/…
标签: powershell tfs azure-devops powershell-2.0 psobject