Обновить переменную в сценарии powershell TeamCity

Я пытаюсь обновить переменную среды в TeamCity, используя скрипт Powershell. Однако он не обновляет значение переменной. Как я могу это сделать?

Ниже приведен мой текущий код, который получает 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']"

person Jake Rote    schedule 11.06.2014    source источник
comment
Для моей справки см. confluence.jetbrains.com/display/ TCD9/ для получения дополнительной информации о нотации ##   -  person David Gardiner    schedule 02.05.2016


Ответы (1)


Пытаться

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

(обратите внимание на префикс env. в названии)

Кроме того, вы можете попытаться увеличить стандартный столбец PowerShell по умолчанию (80, используя средство запуска команд TeamCity). Если ваше служебное сообщение длиннее, TeamCity не сможет его проанализировать.

if ($env:TEAMCITY_VERSION) {
    $host.UI.RawUI.BufferSize = New-Object System.Management.Automation.Host.Size(8192,50)
}
person SteveChapman    schedule 11.06.2014
comment
извините, моя вина, все имена одинаковые, но все равно не работает, обратитесь к моему обновленному вопросу - person Jake Rote; 11.06.2014
comment
Вы уверены, что вам нужен WriteHost? Попробуйте просто в кавычках - person SteveChapman; 11.06.2014
comment
Скоро попробую, но Write-Host ##teamcity[buildNumber '$newBuildNumber'] работает - person Jake Rote; 11.06.2014
comment
Я только что провел тест локально, и двойное цитирование служебного сообщения действительно обновляет переменную среды... - person SteveChapman; 11.06.2014
comment
Я обновил свой текущий код, и он не работает. Чем мой код отличается от кода, который работал, когда вы его тестировали? - person Jake Rote; 11.06.2014
comment
Не обращайте внимания на бит Write-Host, это отвлекающий маневр. Я только что попробовал еще раз, и он все еще работает. Что вы видите в своем журнале сборки — искали ли вы текст служебного сообщения? - person SteveChapman; 12.06.2014
comment
Вы также можете попробовать увеличить ширину столбца std out (80 по умолчанию в TeamCity). - см. редактирование, чтобы ответить - person SteveChapman; 12.06.2014