Параметр переопределить в зависимости снимки в TeamCity
Я действительно не могу понять концепцию зависимостей моментальных снимков в teamcity (7.1).
У нас есть проект сборки, который развертывает базу данных в соответствии с параметром сборки (имя базы данных и файл), и у меня есть проект сборки, который строит и развертывает наше веб-приложение.
то, что я хотел бы сделать сейчас, это связать эти две сборки, но переопределить параметр сборки. Я нашел руководство по доступу к параметрам сборки depency (%dep.btXX.yyy%) но я не хочу доступ к ним, я хочу их переопределить!
Как я могу этого достичь? Я создал новую сборку, в которой я запускаю сборку и развертывание, а затем сборку базы данных, но она полностью игнорирует мои параметры зависимости, а также я не могу изменить порядок сборок.
Спасибо за помощь!
2 ответов
Update: этот ответ относится только к TeamCity v8 или старше
Я пробовал это сам, но, к сожалению, я подозреваю, что в настоящее время это невозможно.
на Настройка Зависимостей Сборки документация поддерживает этот:
когда сборка A зависит от сборки B, вы можете передать свойства из сборки B построить, т. е. свойства могут быть переданы только в направлении постройте цепной поток, а не тиски versa.
(в целом разумная) причина, по которой я думаю, что это так, из-за следующего:
- зависимая конфигурация сборки может быть зависимостью нескольких других конфигураций сборки.
подумайте об этом: если два родителя хотят передать свои (разные) параметры зависимой сборке, что они получают за "последнюю успешную сборку"? Теоретически TeamCity может проверить, есть ли свойства для последней сборки сопоставьте то, что было необходимо (перестройка в противном случае). Но даже тогда вы закончите с уродливой историей сборки сборок для всех разных сред. Это действительно не соответствует концепции конфигураций сборки.
лучший способ повторно использовать конфигурации сборки-это создать их шаблон, а затем создать несколько проектов, устанавливающих свойства на уровне проекта, чтобы они были доступны для всех содержащихся конфигураций сборки.
в конечном счете, лучший совет, который может быть пересмотрите, если вам действительно нужно использовать две конфигурации сборки для вашего проекта вообще. Рекомендуется свести к минимуму количество конфигураций сборки и шагов сборки - вложите как можно больше логики сборки в свои собственные сценарии.
по словам документация, теперь это возможно в Teamcity 9:
Переопределение Свойств Зависимостей
начиная с TeamCity 9.0, есть возможность переопределить параметры зависимостей, переопределив их в зависимой сборке. Например, конфигурация сборки A зависит от B и B зависит от C; A имеет возможность изменять параметры в любой из своих зависимостей, используя следующий формат: обратный.отдел..
также можно изменить параметр во всех зависимостях сразу: обратный.отдел.*.
переопределяемые свойства зависимостей можно указать в именах параметров зависимой сборки A либо в диалоговом окне пользовательская сборка, либо через параметры конфигурации сборки.
нажатие нового параметра в сборку заменит параметр" не запускать новую сборку, если есть подходящий " и может вызвать новую сборку, если параметр имеет значение, отличное от значения по умолчанию.