如何在 Teamcity 中设置内部版本号?
How do I set the build number in Teamcity?
我正在尝试使用 Powershell 在 Teamcity 中设置内部版本号格式(有点像这个 Octopus Deploy blog post)。
但是,我不知道 Teamcity 处理服务消息的方式是否从那时起发生了变化,或者我是否因为它不起作用而做错了。
我将以下 Powershell 脚本作为构建配置的第一步:
$buildCounter = "%build.counter%"
$buildConfig = "%system.buildconfig%"
$version = "%system.majorMinorVersion%"
$branch = "%vcsroot.branch%"
if ($branch.Contains("/"))
{
$branch = $branch.substring($branch.lastIndexOf("/")).trim("/")
}
$buildNumber = "${version}.${buildCounter}-${branch}"
Write-Host "##teamcity[buildNumber '$buildNumber']"
(我也试过第 5 行 $branch = "%teamcity.build.branch%"
)
所以当我尝试这个时,if 语句没有 运行 因为虽然在 Octopus Deploy 给出的示例中 $branch 似乎设置为 %vcsroot.branch%
的实际值,但它是不是,它写到 Teamcity 的结果实际上是 ##teamcity[buildNumber '$buildNumber']
。但是,这似乎确实有效,但是内部版本号中不能包含 /
所以我的构建失败了,因为分支设置为 refs/head/master
而不仅仅是 master
.
我哪里错了?
脚本的最后一行似乎应该是:
Write-Host "##teamcity[buildNumber '${buildNumber}']"
注意:要使脚本正常工作,应在 TeamCity 构建步骤中将其指定为内联脚本(这会使 TeamCity %-references 正常工作)。
顺便说一句,您可以通过在 VCS root
中使用 +:refs/heads/* branch specification 让 TeamCity 显示短分支名称
如果您使用的是 powershell,则内部版本号可作为环境变量提供给您的代理,在 powershell 中为:
$env:BUILD_NUMBER
这是您可以通过构建配置配置的数字 UI。
我正在尝试使用 Powershell 在 Teamcity 中设置内部版本号格式(有点像这个 Octopus Deploy blog post)。
但是,我不知道 Teamcity 处理服务消息的方式是否从那时起发生了变化,或者我是否因为它不起作用而做错了。
我将以下 Powershell 脚本作为构建配置的第一步:
$buildCounter = "%build.counter%"
$buildConfig = "%system.buildconfig%"
$version = "%system.majorMinorVersion%"
$branch = "%vcsroot.branch%"
if ($branch.Contains("/"))
{
$branch = $branch.substring($branch.lastIndexOf("/")).trim("/")
}
$buildNumber = "${version}.${buildCounter}-${branch}"
Write-Host "##teamcity[buildNumber '$buildNumber']"
(我也试过第 5 行 $branch = "%teamcity.build.branch%"
)
所以当我尝试这个时,if 语句没有 运行 因为虽然在 Octopus Deploy 给出的示例中 $branch 似乎设置为 %vcsroot.branch%
的实际值,但它是不是,它写到 Teamcity 的结果实际上是 ##teamcity[buildNumber '$buildNumber']
。但是,这似乎确实有效,但是内部版本号中不能包含 /
所以我的构建失败了,因为分支设置为 refs/head/master
而不仅仅是 master
.
我哪里错了?
脚本的最后一行似乎应该是:
Write-Host "##teamcity[buildNumber '${buildNumber}']"
注意:要使脚本正常工作,应在 TeamCity 构建步骤中将其指定为内联脚本(这会使 TeamCity %-references 正常工作)。
顺便说一句,您可以通过在 VCS root
中使用 +:refs/heads/* branch specification 让 TeamCity 显示短分支名称如果您使用的是 powershell,则内部版本号可作为环境变量提供给您的代理,在 powershell 中为:
$env:BUILD_NUMBER
这是您可以通过构建配置配置的数字 UI。