我在PowerShell脚本中使用RESTAPI来检索自上次成功构建以来的所有变更集,该变更集在vNext VSTS构建步骤中调用。
$TfsUrl = 'https://' + $Account + '.visualstudio.com/defaultcollection/' + $ProjectName
$CurrentBuildUrl = $TfsUrl + "/_apis/build/builds?api-version=2.0"+ "&definitions=" + $BuildDefinitionID + "&`$top=1"
$CurrentBuildDef = Invoke-RestMethod -Uri $CurrentBuildUrl -Headers $Headers -Method Get
$BuildId = $CurrentBuildDef.value.id
$BaseUrl = "https://" + $Account + ".visualstudio.com/defaultcollection/_apis/tfvc/changesets"
$ChangeSetHistoryUrl = $TfsUrl + "/_apis/build/builds/$BuildId/changes?api-version=2.0"
$ChangeSetsHistoryDef = (Invoke-RestMethod -Uri $ChangeSetHistoryUrl -Headers $Headers -Method Get).value
然后我遍历更改集并将详细信息写入文件。
当我成功构建时,这可以正常工作 当我有一个部分成功的构建,即某些约束测试失败时,它不起作用。
它包括成功构建的所有变更集,而不是自最新的部分成功构建以来。
我想检索自上次成功或部分成功构建以来的所有变更集,以最后一个为准。
这可能吗?
答案 0 :(得分:1)
获取构建列表时可以尝试添加resultFilter参数:
$CurrentBuildUrl = $TfsUrl + "/_apis/build/builds?api-version=2.0"+ "&definitions=" + "&resultFilter=" + "&`$top=1"
resultFilter:enum {succeeded,partiallySucceeded}
答案 1 :(得分:0)
不,现在没有办法做到这一点。 “获取构建更改”api始终与上次成功构建相比,以获取当前构建中的更改。无论构建状态是成功还是部分成功,都没有任何选项可以将其设置为与上一次构建进行比较。您可以在VSTS User Voice上提交功能请求。