Как правильно обрабатывать общие проекты в TeamCity - PullRequest
8 голосов
/ 02 января 2011

Допустим, у меня есть два «проекта» в TeamCity, которые являются двумя веб-сайтами, каждый из которых использует общую библиотеку, которая не входит в путь svn веб-сайта.Вот структура svn, чтобы сделать ее более понятной:

Веб-сайт A: svn: // root / web / websitea (использует общую библиотеку a)

Веб-сайт B: svn: // root /web / websiteb (использует разделяемую библиотеку b)

общая библиотека A: svn: // root / shared / liba

общая библиотека B: svn: // root / shared / libb

Как бы я настроил проект teamcity для веб-сайта a?Прямо сейчас у меня есть указатель на корень svn: //, но это заставит его запустить сборку, даже если веб-сайт b или разделяемая библиотека b были изменены, что неправильно.Что мне действительно нужно, так это способ запуска сборки, только если есть изменения в svn: // root / web / websitea ИЛИ в svn: // root / shared / liba.

Я попытался установить два корня vcs в одном проекте, которые указывают на два пути svn выше, однако, похоже, нет способа установить рабочий каталог для каждого корня vcs.По этой причине он просто скопировал содержимое двух путей svn непосредственно в корень моего каталога сборки, а не поместил их в нужные места (C: \ Build \ Web \ WebsiteA & C: \ Build \ Shared \ LibA).

Ответы [ 2 ]

13 голосов
/ 04 января 2011

Функциональность правил оформления заказа TeamCity может поддерживать описанную вами настройку.Моя команда использует это, чтобы сделать что-то похожее на то, что вы пытаетесь сделать.

Сначала настройте один SVN Root.URL этого корня будет выглядеть примерно так:

svn://root/

Затем настройте следующие правила оформления заказа.

Для проекта A:

+:web/websitea=>/web/websitea
+:shared/liba=>/shared/liba

Для проекта B:

+:web/websiteb=>/web/websiteb
+:shared/libb=>/shared/libb

Документация TeamCity по правилам оформления заказа не совсем ясна по этому вопросу, но только конкретные пути, которые вы указали, будут использоваться для запуска сборок.Это должно удовлетворить ваши потребности, чтобы изменения были только в случае, если websitea и liba запускают его сборку (и то же самое для B).

6 голосов
/ 07 апреля 2011

В дополнение к тому, что упомянул Эрик, если вам нужно извлечь весь исходный корень, а только запустить сборку на основе определенных путей, вы можете отредактировать правила VCS Trigger в разделе Build Triggering, чтобы они выглядели примерно так: 1001 *

+:web/websitea
+:share/liba
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...