在TeamCity powershell脚本中更新变量

时间:2014-06-11 10:25:25

标签: powershell teamcity teamcity-8.0

我正在尝试使用Powershell脚本更新TeamCity中的环境变量。但是,它不会更新变量的值。我怎样才能做到这一点?

下面是我当前的代码,它可以获得currentBuildNumber:

$currentBuildNumber = "%env.currentBuildNumber%"
$newBuildNumber = ""
Write-Output $currentBuildNumber
If ($currentBuildNumber.StartsWith("%MajorVersion%") -eq "True")
{
 $parts = $currentBuildNumber.Split(".")
 $parts[2] = ([int]::Parse($parts[2]) + 1) + ""
 $newBuildNumber = $parts -join "."
}
Else
{
 $newBuildNumber = '%MajorVersion%.1'
}

//What I have tried
$env:currentBuildNumber = $newBuildNumber
Write-Host "##teamcity[env.currentBuildNumber '$newBuildNumber']"
Write-Host "##teamcity[setParameter name='currentBuildNumber' value='$newBuildNumber']"

1 个答案:

答案 0 :(得分:24)

尝试

"##teamcity[setParameter name='env.currentBuildNumber' value='$newBuildNumber']"

(注意名称中的env。前缀)

此外,您可以尝试增加PowerShell std out列的默认值(使用TeamCity' s命令运行符时为80)。如果您的服务消息超过该消息,则TeamCity将无法解析它。

if ($env:TEAMCITY_VERSION) {
    $host.UI.RawUI.BufferSize = New-Object System.Management.Automation.Host.Size(8192,50)
}