2014-06-11 71 views
14

我正嘗試使用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']" 
+0

對於我自己參考,請參閱https://confluence.jetbrains.com/display/TCD9/Build+Script+Interaction+with+TeamCity有關##符號更多信息 –

回答

15

嘗試

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

(注意ENV前綴名稱。)

此外,您還可以嘗試增加PowerShell標準列默認值(使用TeamCity的命令運行器)。如果您的服務信息比這更長,那麼TeamCity將無法解析它。

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

對不起我的錯,所有的名字是一樣的,它仍然無法正常工作請參考我的更新問題 –

+1

您確定您需要WriteHost嗎?嘗試它只是在引號 – SteveChapman

+1

稍後會試一試,但寫主機「## teamcity [buildNumber'$ newBuildNumber']」的作品 –