在我的构建步骤中,我需要提供TFS修订号作为参数。我知道有一个变量$(Build.SourceVersion),但它返回一个“CS”前缀,例如“CS1234”
是否有一种简单的方法可以删除“CS”前缀?任何内置的字符串函数?
由于
答案 0 :(得分:1)
我不知道任何用于格式化该字符串的内置函数 - 您必须在某个地方的脚本中执行此操作。请注意,如果在构建定义的“构建号格式”字段中指定$(Build.SourceVersion)
变量,则if exist
变量将返回空字符串。 This thread可能会为您提供更多详细信息。
答案 1 :(得分:1)
没有构建方法。变更集编号和修订版号也不一样。如果您使用的是GIT存储库,您将在$(Build.SourceVersion)
中获得 COMMIT ID 。
您可以使用PowerShell剥离该部分。下面的行应该给你数字部分。
[string]$version = ($Env:BUILD_SOURCEVERSION -replace'\D+(\d+)','$1')
答案 2 :(得分:0)
添加到@ cilerler的答案,我使用这个通用的Powershell脚本作为我的第一个VSTS构建步骤:
Param(
[string] $SourceBranchName = $Env:BUILD_SOURCEBRANCHNAME,
[string] $SourceVersion = $Env:BUILD_SOURCEVERSION
)
Write-Host "SourceBranchName = $SourceBranchName"
Write-Host "SourceVersion = $SourceVersion"
if ($SourceBranchName -eq "trunk"){
$MajorMinor = "0.0"
}
else{
$MajorMinor = $SourceBranchName
}
# Remove CS from changeset number
$Revision = ($SourceVersion -replace 'C','')
$BuildNumber = "$MajorMinor.$Revision.0"
Write-Host "Setting Build Number '$BuildNumber'"
Write-Host "##vso[build.updatebuildnumber]$BuildNumber"
请注意,它假定您的分支名称采用Major.Minor
格式(例如1.4
)或trunk
。
此外,似乎VSTS documentation错误,Build.SourceVersion
变量的格式为C1226
。