2014-06-11 20 views
14

Powershell komut dosyasını kullanarak TeamCity'deki bir ortam değişkenini güncellemeye çalışıyorum. Bununla birlikte, değişkenin değerini güncellemez. Bunu nasıl yapabilirim? Şunları yapabilirsinizTeamCity powershell betiğindeki Update Variable

$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

, ## gösterimle ilgili daha fazla bilgi için https://confluence.jetbrains.com/display/TCD9/Build+Script+Interaction+with+TeamCity bkz –

cevap

15

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

Ayrıca

(adına önek env not edin.) Deneyin:

Aşağıda ince currentBuildNumber alır benim geçerli kod PowerShell std out sütun varsayılanını yükseltmeyi deneyin (TeamCity'nin komut çalıştırıcısını kullanarak 80). Hizmet mesajınız bundan daha uzunsa, TeamCity bunu ayrıştırmayacaktır.

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

üzgün benim hatam bütün isimler hala aynı çalışmıyor güncellenmiş soruma başvurmuyorum –

+1

WriteHost'a ihtiyacınız olduğuna emin misiniz? Sadece – SteveChapman

+1

alıntılar deneyin Bunu kısa bir deneyin ama Write-Host "## teamcity [buildNumber '$ newBuildNumber']" çalışıyor –

İlgili konular