如何在TeamCity中填充构建计数器

时间:2014-09-18 12:41:59

标签: teamcity teamcity-8.0

我试图遵循描述NuGet和SemVer最佳做法的this article的一些指导。

第3点指出我应该"在数字后缀中使用前导零来自动增加预发布"但我正在努力弄清楚如何在TeamCity中填充build.counter参数,以便我得到0025而不是25

有没有人有办法解决这个问题?

2 个答案:

答案 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

这提供了一些帮助函数来做到这一点。

相关问题