检查以前的版本信息(VSTS API)

问题描述:

一个VSTS建立的执行过程中都可以访问以前的版本的变量?例如,我可以获得以前版本的$(Build.SourceVersion)或$(Build.QueuedBy)吗?检查以前的版本信息(VSTS API)

我能得到这样的$(Build.SourceVersion)通过构建变量当前构建的信息,但我能得到这样的$(Build.Previous.SourceVersion)?

+0

号什么是你想利用这些信息来完成? –

+0

上次成功构建的源版本相较于最近一次生成 – user3364161

+0

目的是什么? –

号“上”是一个模糊的概念,当你谈论的是可以并行运行的东西。如果你有3个版本同时运行会怎么样?

+0

这是一个持续集成项目。当有人检查触发构建的新代码时;我想比较上次成功构建的回购和刚刚触发的构建。 – user3364161

以前的构建信息没有内置变量,解决方法是您可以在构建期间通过PowerShell调用Builds REST API(可以是过滤器状态,如完成,inProgress)。 (结果的第一个项目是最新的一个)

$base64authinfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $User, $Password))) 
$responseFromGet = Invoke-RestMethod -Method Get -ContentType application/json -Uri $Uri -Headers @{Authorization=("Basic {0}" -f $base64authinfo)} 

有关调用REST API有些文章:Calling VSTS APIs with PowerShellVSTS/TFS REST API: The basics and working with builds and releases

您可以使用System.AccessToken变量作为密码的值(检查允许脚本访问的OAuth令牌选项在选项选项卡)和用户名可以是任何东西。

+0

我正在浏览REST API,但有点困难。我有$ uri =“$ vstsAccount”+“DefaultCollection/$ projectName/_apis/build/builds /”+“$ buildId”+“?api-version = 2.0”,我正在运行一个GET,但它的数据返回与示例中的不同。 – user3364161

+0

@ user3364161有什么不同? –