Значения условных параметров TeamCity - программирование
Подтвердить что ты не робот

Значения условных параметров TeamCity

Как назначить значение времени выполнения параметру сборки? Я установил параметр сборки, допустим,% config.buildMode%, в раскрывающийся список, и мне нужно иметь что-то вроде условия IF, чтобы я мог назначить другое значение другому параметру на основе выбора buildmode.

например.

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

Ответ 1

Скорее поздно вечеринке, но это возможно. Добавьте дополнительный параметр для значения, которое вы хотите условно (например, TargetServerName), но оставьте значение пустым. Затем добавьте шаг сборки powershell в начале вашего процесса и введите script следующим образом:

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

Последняя строка - это волшебство. Получив это, teamcity в основном выполнит его, установив параметр TargetServerName. Затем вы можете использовать этот параметр на последующих этапах сборки.

Ответ 2

Я не думаю, что условности возможны. Ales может означать, что каждый параметр может содержать строковый mashup, который может быть проанализирован получающим script. Например,

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