我试图遵循描述NuGet和SemVer最佳做法的this article的一些指导。
第3点指出我应该"在数字后缀中使用前导零来自动增加预发布"但我正在努力弄清楚如何在TeamCity中填充build.counter
参数,以便我得到0025
而不是25
。
有没有人有办法解决这个问题?
答案 0 :(得分:4)
您可以编写一个PowerShell脚本,如:
function Update-BuildNumber([string]$buildNumber)
{
$VersionComponents = $buildNumber.Split(".")
$buildNumber = ""
foreach($VersionComponent in $VersionComponents)
{
$index = [array]::IndexOf($VersionComponents, $VersionComponent)
if (($index + 1) -eq $VersionComponents.Count)
{
$buildNumber += "00" + $VersionComponent
}
else
{
$buildNumber += $VersionComponent + "."
}
}
Write-Output "##teamcity[buildNumber '$buildNumber']"
}
从Teamcity构建步骤调用它并传递参数%build.number%
,如:
Update-BuildNumber -buildNumber %build.number%
答案 1 :(得分:3)
如果我是你,我会使用GitVersion。它包括使用生成的版本号的LegacySemVerPadded
版本的选项。还有其他各种alternatives of the generated version number。
有一个TeamCity Meta Runner here。
GitVersion根据您的存储库的当前状态为您计算新的语义版本号。
如果不这样做,是的,在PowerShell中的其他地方完成工作,然后使用TeamCity Service Messages更改TeamCity中的内部版本号。您可以找到PowerShell模块here。
这提供了一些帮助函数来做到这一点。