Передача переменной среды (параметра) в проект зависимостей в TeamCity
У меня есть цепочка сборки с двумя проектами: a-корневой проект, B зависит от него. B имеет две настроенные зависимости: артефакт и зависимость моментального снимка. Одна конфигурация сборки для B имеет набор переменных среды (параметров). Однако мне также нужен этот набор параметров для корневого проекта A.
есть ли способ в TeamCity 9 передать параметр конфигурации сборки из проекта в его зависимость (в той же цепочке сборки)?
2 ответов
Так как TeamCity 9.0 можно переопределить параметры зависимостей путем переопределения их в зависимой сборке:
reverse.dep.<btID>.<property name>
для TeamCity 8 и ниже, к сожалению, единственный способ передать параметры - в направлении цепочки сборки - обратном тому, что вы хотите-эти свойства называются Свойства Зависимостей:
Свойства Зависимостей
эти свойства обеспечиваются строит текущей сборки зависит on (через моментальный снимок или зависимость артефакта).
свойства зависимостей имеют следующий формат:
dep.<btID>.<property name>
свойства зависимостей протекают от корня дерева к его листьям (в направлении потока цепочки сборки), но не наоборот, поэтому свойства A могут быть доступны в B.
Это уточняется в docs здесь:
параметры в зависимых сборках
TeamCity предоставляет возможность использовать свойства, предоставляемые опирающийся текущая сборка зависит от (через зависимость моментального снимка или артефакта). Когда сборка A зависит от сборки B, вы можете передать свойства из сборки B чтобы построить, т. е. свойства могут передаваться только в направлении постройте цепной поток, а не наоборот. Для получения подробной информации об использовании параметры предыдущей сборки в цепочке см. в зависимостях Страница свойств.
У меня был аналогичный случай использования для обратного потока раньше-обходной путь не был довольно-в основном вместо того, чтобы запускать цепочку сборки напрямую, мы бы запустили независимую сборку (назовем ее X), которая была только для хранения параметров сборки, а затем измените цепочку сборки, чтобы корневая сборка (в вашем случае) зависела от последней успешной сборки X и имела триггер цепочки сборки на успешной сборке X - это должно выполнить то, что вы хотите.
для TeamCity 9 см. ответ @ Alina's (который должен быть принятым ответом).