2014-06-11 14 views
14

Próbuję zaktualizować zmienną środowiskową w TeamCity za pomocą skryptu Powershell. Jednak nie aktualizuje wartości zmiennej. Jak mogę to zrobić?Zmienna aktualizacji w skrypcie powłoki TeamCity

Poniżej jest mój bieżący kod, który pobiera currentBuildNumber porządku:

$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

Dla własnego odniesienia, patrz https://confluence.jetbrains.com/display/TCD9/Build+Script+Interaction+with+TeamCity uzyskać więcej informacji na temat notacji ## –

Odpowiedz

15

Spróbuj

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

(uwaga ENV prefix w nazwie).

Ponadto, można spróbuj zwiększyć domyślną wartość domyślną kolumny PowerShell (80 przy użyciu polecenia RunCommander). Jeśli twoja wiadomość serwisowa jest dłuższa niż ta, TeamCity nie przeanalizuje jej.

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

Niestety moja wina wszystkie nazwy są takie same, nadal nie działa, odnoszą się do mojego zaktualizowanego pytania –

+1

Czy na pewno potrzebujesz WriteHost? Wypróbuj po prostu w cudzysłowie – SteveChapman

+1

Spróbuję krótko, ale Write-Host "## teamcity [buildNumber '$ newBuildNumber']" działa –

Powiązane problemy