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

sta*_*tch 8 teamcity teamcity-8.0

我正在尝试遵循本文中的一些指导,其中介绍了NuGet和SemVer的最佳实践.

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

有没有人有机制来处理这个问题?

Moh*_*eem 5

您可以编写一个 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']"
}
Run Code Online (Sandbox Code Playgroud)

并从 Teamcity 构建步骤调用它并传递如下参数%build.number%

Update-BuildNumber -buildNumber %build.number%
Run Code Online (Sandbox Code Playgroud)

  • 如果您的内部版本号是一个简单的计数器 (1, 2, 3, 4, ...),您可以使用 TeamCity 中的 PowerShell one liner 完成此操作:`"##teamcity[buildNumber '{0}']" -f ([Int32]%build.number%).ToString("0000") | 写主机` (5认同)