【发布时间】:2018-12-31 14:17:51
【问题描述】:
我正在尝试使用 TFS RELEASE_ENVIRONMENTID 和 RELEASE_RELEASEID 的发布变量来获取值,以便我可以检查发布 CD 中的所有步骤是否成功。如果任何步骤失败,则只需回滚更改:
Param([string] $BackupFolderName,[string] $TargetFolderName,[string] $releaseid,[string] $envid)
$releasequeryuri = "http://example.net:8080/tfs/DefaultCollection/82d987654cfd-01ea-46c0-81d1-b2c98768508663/_apis/Release/releases/$(releaseid)/environments/$(envid)/tasks?api-version=3.0-preview.1"
$releasequeryresult = Invoke-RestMethod -Uri $releasequeryuri -Method Get -ContentType "application/json" -UseDefaultCredentials
foreach ($i in $releasequeryresult.value)
{
if ($i.status -eq "failed")
{
Get-ChildItem -Path $(BackupFolderName) | Copy-Item -Destination $(TargetFolderName) -Force -Recurse
Write-Host "Copy complete"
}
else
{
Write-Host "Nothing to copy"
}
}
配置变量部分的变量如下:
但它不获取变量的值。当发布管道的初始化作业步骤时,我肯定会得到这些值。任何帮助将不胜感激。
我也尝试将变量值仅作为 RELEASE_RELEASEID 和 RELEASE_ENVIRONMENTID 设置,但未获取这些值。
【问题讨论】:
-
您可以像下面答案中提到的 Shayki 一样直接使用发布变量。 :docs.microsoft.com/en-us/vsts/pipelines/release/…
标签: powershell variables tfs