web-dev-qa-db-ja.com

TeamCityPowerShellスクリプトの変数を更新する

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']"
20
Jake Rote

試してみてください

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

(名前のenv。プレフィックスに注意してください)

また、PowerShellの標準出力列のデフォルトを増やすこともできます(TeamCityのコマンドランナーを使用して80)。サービスメッセージがそれより長い場合、TeamCityはメッセージの解析に失敗します。

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