2013-06-16 10 views
15

Wie kann ich einem Build-Parameter einen Laufzeitwert zuweisen? Ich setze einen Build-Parameter, sagen wir% config.buildMode%, in ein Dropdown-Menü und ich muss etwas wie eine IF-Bedingung haben, damit ich einen anderen Wert basierend auf der buildmode-Auswahl einem anderen Parameter zuweisen kann.TeamCity-bedingte Parameterwerte

z.B.

if %config.buildMode% == 'Debug' 
    %config.hostName% = 'localhost' 
else if %config.buildMode% == 'Release' 
    %config.hostName% = 'http://servername' 
else 
    %config.hostName% = 'http://stackoverflow.com' 
+0

nur setzen alle Parameter –

Antwort

0

Ich glaube nicht, dass Bedingungen möglich sind. Ales könnte bedeuten, dass jeder Parameter einen String-Mashup enthalten könnte, der vom empfangenden Skript analysiert werden könnte. Zum Beispiel

%config.buildMode-1% == 'Debug|localhost' 
%config.buildMode-2% == 'Release|http://servername' 
%config.buildMode-3% == '*|http://stackoverflow.com' 
15

Eher spät zur Party, aber es ist möglich. Fügen Sie einen zusätzlichen Parameter für den Wert hinzu, der konditionell sein soll (z. B. TargetServerName), aber lassen Sie den Wert leer. Fügen Sie dann zu Beginn Ihres Prozesses einen Powershell-Build-Schritt hinzu und geben Sie ein Skript wie dieses ein.

$BuildMode = "%buildMode%" 
$ServerName = "" 

if ($BuildMode -eq "Debug") { 
    $ServerName = "localhost" 
} 
elseif ($BuildMode -eq "Release") { 
    $ServerName = "theserver" 
} 
else 
{ 
exit 1 
} 
echo "##teamcity[setParameter name='TargetServerName' value='$ServerName']" 

Die letzte Zeile ist die Magie. Wenn Sie dies ausgeben, wird teamcity sie ausführen und den Parameter TargetServerName setzen. Sie können den Parameter dann in nachfolgenden Build-Schritten verwenden.

+0

Für weitere Informationen, lesen Dokumentation https://confluence.jetbrains.com/display/TCD10/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-changingBuildParameterAddingorChangingaBuildParameterfromaBuildStepAddingorChangingaBuildParameter – stun

Verwandte Themen