2015-07-27 3 views
0

У меня есть скрипт python, который генерирует список имен хостов, которые мне нужно использовать на другом шаге. Список Я пытаюсь передать в стандартный формат массива:TeamCity не принимает массив как значение параметра

['12R214PS93A8G', '12R214WB93A8G', '12R214DS93A8G', '12R214AG93A8G'] 

Проблема заключается в том, когда я пытаюсь установить значение параметра:

##teamcity[setParameter name='env.HOSTNAMES' value='['12R214PS93A8G', '12R214WB93A8G', '12R214DS93A8G', '12R214AG93A8G']' 

Я получаю следующее сообщение об ошибке:

Property value not found 
Valid property list format is (name()*=()*'escaped_value'()*)* where escape symbol is "|"**strong text** 
'] 

Обходной способ - это передать все имя хоста, разбитое вместе как одну строку, и проанализировать его позже, но было бы здорово, если бы я мог просто отправить массив. Я попытался установить значение с помощью двойных кавычек, потому что я не могу изменить тот факт, что разделитель массива - это одиночная кавычка (или я могу?), Но я просто получил сообщение об ошибке, указывающее, что значение должно начинаться с одной кавычки.

ответ

1

TeamCity requires you to escape одинарные кавычки, новые линии, трубы и квадратные скобки внутри атрибута value, большинство из которых просто префикс трубы.

Используя ваш пример (первая строка становится вторым):

##teamcity[setParameter name='env.HOSTNAMES' value='['12R214PS93A8G', '12R214WB93A8G', '12R214DS93A8G', '12R214AG93A8G']' 

##teamcity[setParameter name='env.HOSTNAMES' value='[|'12R214PS93A8G|', |'12R214WB93A8G|', |'12R214DS93A8G|', |'12R214AG93A8G|'|]']