Передача переменной среды (параметра) в проект зависимостей в 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 (который должен быть принятым ответом).