24 votes

Valeurs des paramètres conditionnels de TeamCity

Comment attribuer une valeur d'exécution à un paramètre de construction ? J'ai défini un paramètre de construction, disons %config.buildMode%, dans une liste déroulante et j'ai besoin d'avoir quelque chose comme une condition IF pour pouvoir assigner une valeur différente à un autre paramètre en fonction de la sélection du mode de construction.

par exemple

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

26voto

PaulMolloy Points 189

C'est un peu tard, mais c'est possible. Ajoutez un paramètre supplémentaire pour la valeur que vous voulez conditionnelle (par exemple TargetServerName), mais laissez la valeur vide. Ensuite, ajoutez une étape de construction powershell au début de votre processus, et entrez un script comme ceci ;

$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 dernière ligne est magique. En sortant cela, teamcity va l'exécuter, en définissant votre paramètre TargetServerName. Vous pouvez ensuite utiliser ce paramètre dans les étapes de construction suivantes.

0voto

AnneTheAgile Points 2105

Je ne pense pas que les conditionnels soient possibles. Ales pourrait vouloir dire que chaque paramètre pourrait contenir un mashup de chaîne, qui pourrait être analysé par le script récepteur. Par exemple,

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X