2014-06-11 2 views
14

Powershell 스크립트를 사용하여 TeamCity에서 환경 변수를 업데이트하려고합니다. 그러나 변수 값을 업데이트하지는 않습니다. 어떻게해야합니까? , 당신이 할 수있는TeamCity powershell 스크립트의 변수 업데이트

$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주의를.) 시도 :

다음은 벌금 currentBuildNumber를 얻을 내 현재 코드입니다 PowerShell std out 컬럼 기본값 (TeamCity의 명령 러너를 사용하여 80)을 늘리십시오. 서비스 메시지가이 메시지보다 길면 TeamCity가 메시지를 구문 분석하지 못합니다.

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

미안해 내 잘못이 모든 이름 아직도 동일하지 않습니다. 업데이트 된 질문을 참조하십시오. –

+1

WriteHost가 필요합니까? 그냥 따옴표로 시도하십시오 – SteveChapman

+1

곧 시도해 보지만 Write-Host "## teamcity [buildNumber '$ newBuildNumber']"가 작동합니다 –

관련 문제