«Запуск по изменениям в зависимостях моментального снимка» не работает должным образом - PullRequest
3 голосов
/ 20 февраля 2012

Я использую TeamCity 6.5.1 с одним проектом и около 10 конфигураций сборки.У меня есть цепочка зависимостей, родственная Core -> Framework -> Apps.Фреймворк зависит от ядра, а приложения зависят как от ядра, так и от фреймворка.

Проблема, с которой я столкнулся, заключается в том, что фреймворк / приложения не запускаются после того, как ядро ​​было успешно запущено и собрано.Я выбрал «Запуск по изменениям в зависимостях моментальных снимков» на платформе и во всех приложениях, но ни одно из них, похоже, не запускается, даже несмотря на то, что сборка ядра была инициирована из фиксации SVN.

Имеет ли «Запуск» изменений взависимости от снимка "не работают так, как я думаю?Нужно ли мне добавлять корни VCS (и фреймворка) к триггеру VCS в фреймворке / приложениях?Если это мой единственный вариант, я полагаю, что я мог бы сделать это таким образом, но это кажется избыточным (особенно, если мне нужно настроить корневые пути VCS в будущем).

Core VCS Trigger:

+:root=MySVNRoot:/Core/**

Framework VCS Trigger (моментальный снимок для ядра):

[x] Trigger on changes in snapshot dependencies

+:root=MySVNRoot:/Framework/**

App VCS Trigger (моментальный снимок для ядра и платформы)

[x] Trigger on changes in snapshot dependencies

+:root=MySVNRoot:/Applications/MyApplication/**

Ответы [ 4 ]

0 голосов
/ 19 ноября 2015

Функция «Запустить сборку при изменениях зависимостей моментальных снимков» делает нечто противоположное звучанию.Для меня желаемый результат был таким:

Apps depends on Framework depends on Core
Change in Framework -> Build Framework -> Build Apps
Change in Apps -> Build Apps
Change in Core -> Build Core -> Build Framework -> Build Apps

Я хотел, чтобы изменения в Core вызывали сборку для Framework и, в конечном счете, для Apps, но я НЕ хотел, чтобы изменение в Framework вызывало изменение в Core,по-прежнему вызывая сборку в приложениях.

Это звучит так, как если бы функция «Запустить сборку при изменениях зависимостей моментальных снимков», но в действительности она запускает сборку в началецепочка, независимо от того, в каком проекте произошло изменение:

Change in Apps -> Build Core -> Build Framework -> Build Apps
Change in Framework -> Build Core -> Build Framework -> Build Apps
etc...

Это будет означать, что если вы измените что-то в приложениях, вы запустите сборку в Core и через зависимости от снимка, это в конечном итоге приведет к созданию всего в цепочке,Я думаю, что причина, по которой вы не работали, заключается в том, что этот триггер должен быть установлен в приложениях, без каких-либо триггеров ни в одном из других проектов.

К сожалению, я думаю, что единственный способ добиться такого поведения -описано, что в каждом зависимом проекте есть триггер VCS Trigger и Finish Build, и тихий период, чтобы вы могли независимо запускать сборки где-то в середине цепочки, не вызывая всю цепочку сборки.

0 голосов
/ 22 февраля 2012

Для любых случаев зависимости, которую нужно использовать, это зависимость снимка .В вашем случае вам, вероятно, следует добавить зависимость снимка TeamCity из Framework в Core и из Apps в Framework.После этого опция «Запускать изменения в зависимостях моментальных снимков» начнет работать, вызывая Framework и Apps при любых изменениях в Core.

0 голосов
/ 24 августа 2012

Ваш Framework VCS Trigger (снимок) должен быть таким же, как и ядро, вы хотите, чтобы он TRIGGER сборки при изменении исходного кода Core

+:root=MySVNRoot:/Core/**

Приложение VCS Trigger должно соответствовать Core & Framework VCS

+:root=MySVNRoot:/Core/**
+:root=MySVNRoot:/Framework/**

Эти настройки намного легче в TeamCity 7

0 голосов
/ 20 февраля 2012

Решили использовать триггеры «Finish Build» на конфигурациях фреймворка и приложений. Я бы предпочел, чтобы триггер VCS работал описанным выше способом, но я буду продолжать с этим, пока кто-нибудь не предложит лучшую альтернативу (или если триггеры «Finish Build» действительно являются лучшим вариантом). 1003 *

Рамочные триггеры:

VCS trigger
Finish Build trigger on Core

Триггеры приложения:

VCS trigger
Finish Build trigger on Framework
...