2017-09-20 24 views
0

一個VSTS建立的執行過程中都可以訪問以前的版本的變量?例如,我可以獲得以前版本的$(Build.SourceVersion)或$(Build.QueuedBy)嗎?檢查以前的版本信息(VSTS API)

我能得到這樣的$(Build.SourceVersion)通過構建變量當前構建的信息,但我能得到這樣的$(Build.Previous.SourceVersion)?

+0

號什麼是你想利用這些信息來完成? –

+0

上次成功構建的源版本相較於最近一次生成 – user3364161

+0

目的是什麼? –

回答

0

號「上」是一個模糊的概念,當你談論的是可以並行運行的東西。如果你有3個版本同時運行會怎麼樣?

+0

這是一個持續集成項目。當有人檢查觸發構建的新代碼時;我想比較上次成功構建的回購和剛剛觸發的構建。 – user3364161

0

以前的構建信息沒有內置變量,解決方法是您可以在構建期間通過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有什麼不同? –