到目前为止我正在使用
$(Build.DefinitionName)_1.0.$(Year:yy)$(DayOfYear).$(Rev:r)
作为我所有构建定义的内部版本号格式。
现在我有一个(个人)问题,当一个构建定义每天经常运行而另一个很少运行时,即使后一个运行最后一个,它的修订版数量比经常运行的构建定义要小得多很喜欢。
现在我想知道是否有一些变量保存了当天已经运行的构建总数的值,并以我的构建号格式而不是修订版使用该变量。
答案 0 :(得分:1)
没有任何开箱即用的变量可以计算。您可以在构建定义中添加powershell脚本任务来计算当前的构建,并通过调用VSTS Rest API来更新构建号。以下是实现此功能的脚本(您需要在构建定义中启用“允许脚本访问OAuth令牌”选项以使用此脚本):
##Generate credential
$user = "any"
$pwd = $env:SYSTEM_ACCESSTOKEN
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$pwd)))
##Count build of today
$today = Get-Date
$collectionuri = $env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI
$project = $env:SYSTEM_TEAMPROJECT
$uri = $collectionuri + $project + '/_apis/build/builds?api-version=2.0&minFinishTime=' + $today.ToShortDateString()
$response = Invoke-RestMethod -Method Get -Uri $uri -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType application/json
$buildcount = $response.count
##Update build number
$number = $buildcount + 1
$buildnumber = 'xxx.xxx.xxx.' + $number
Write-Host "##vso[build.updatebuildnumber]$buildnumber"
答案 1 :(得分:-1)
您可以使用$(BuildId)
代替$(Rev:r)
。