2013-06-16 13 views
15

Jak mogę przypisać wartość runtime do parametru budowania? Ustawiłem parametr budowania, powiedzmy% config.buildMode%, na listę rozwijaną i potrzebuję czegoś w rodzaju warunku IF, aby móc przypisać inną wartość do innego parametru w oparciu o wybór trybu kompilacji.Wartości parametrów warunkowych TeamCity

np.

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

wystarczy ustawić wszystkie parametry –

Odpowiedz

0

Nie sądzę, że warunki warunkowe są możliwe. Ales może oznaczać, że każdy parametr może zawierać ciąg mashup, który może być analizowany przez skrypt odbierający. Na przykład:

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

Raczej spóźniony na imprezę, ale jest to możliwe. Dodaj dodatkowy parametr dla wartości, która ma być warunkowa (na przykład TargetServerName), ale pozostaw wartość pustą. Następnie dodaj etap kompilacji programu Powerhell na początku procesu i wprowadź taki skrypt;

$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']" 

Ostatnia linia to magia. Wyprowadzając to, teamcity w zasadzie go wykona, ustawiając parametr TargetServerName. Możesz następnie użyć tego parametru w kolejnych krokach kompilacji.

+0

Dla dodatkowej informacji, przeczytaj dokumentację na https://confluence.jetbrains.com/display/TCD10/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-changingBuildParameterAddingorChangingaBuildParameterfromaBuildStepAddingorChangingaBuildParameter – stun

Powiązane problemy