2013-06-16 9 views
15

Come posso assegnare un valore di runtime a un parametro di costruzione? Ho impostato un parametro di build, diciamo% config.buildMode%, in un menu a discesa e ho bisogno di avere qualcosa come una condizione IF in modo che possa assegnare un valore diverso a un altro parametro basato sulla selezione del metodo build.Valori dei parametri condizionali TeamCity

ad es.

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

appena impostati tutti i parametri –

risposta

0

Non penso che i condizionali siano possibili. Ales potrebbe significare che ogni parametro potrebbe contenere un mashup di stringhe, che potrebbe essere analizzato dallo script ricevente. Ad esempio,

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

Piuttosto tardi alla festa, ma è possibile. Aggiungere un parametro aggiuntivo per il valore che si desidera essere condizionale (ad esempio TargetServerName), ma lasciare il valore vuoto. Quindi aggiungi una fase di generazione di PowerShell all'inizio del processo e inserisci uno script come questo;

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

La linea finale è la magia. Esponendo questo, teamcity fondamentalmente lo eseguirà, impostando il parametro TargetServerName. È quindi possibile utilizzare il parametro nei passaggi di generazione successivi.

+0

Per ulteriori informazioni, leggere la documentazione a https://confluence.jetbrains.com/display/TCD10/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-changingBuildParameterAddingorChangingaBuildParameterfromaBuildStepAddingorChangingaBuildParameter – stun