Лучшая практика для одинаковых сборок TeamCity на разных корнях VCS

Может кто-нибудь сказать мне, как лучше всего настроить сборки TeamCity, когда я хочу запустить идентичные конфигурации сборки, но на разных корнях VCS?

например; У меня есть несколько конфигураций 'build & test' для репозитория (для каждого проекта в репозитории), и я хочу продублировать все настройки в наших ветках master/development /r1.0/etc?

В прошлом я просто дублировал весь набор конфигураций сборки и менял корень VCS для достижения этой цели, но по мере увеличения количества веток (с добавлением большего количества веток релиза со временем), как я могу упростить свои конфигурации и минимизировать количество мест Мне нужно будет внести изменения, если что-то в сборке изменилось?

1 ответ

Вот моя точка зрения на эту проблему. Я думаю, что решение для вас использует шаблон конфигурации сборки + параметризация в корне VCS. У нас есть около 20 конфигураций сборки (1 конфигурация = 1 ветка), созданных только двумя шаблонами и одним корневым каталогом vcs. Все общие вещи для конфигурации хранятся в шаблоне. Только несколько конкретных параметров находятся в самой конфигурации, и вы задаете их при создании конфигурации из шаблона. Одним из них является имя ветви, которое в моем случае тесно связано с именем конфигурации.

Шаблоны

  1. Шаблон непрерывной интеграции - где вы только хотите проверить, строятся ли проекты
  2. Шаблон релиза - сборка плюс генерация релиза

VCS root указывает только на корневой элемент управления исходным кодом. Параметр ветвления vcs root установлен на пользовательский параметр ветвления, который конфигурация сборки наследует от шаблона конфигурации сборки.

У нас есть филиалы, структурированные так

-Master
-Development
-Releases__3.4.1
         |_3.4.2
         |_3.4.3

Мастер и разработка используют шаблон непрерывной интеграции, а каждая новая ветвь выпуска использует шаблон конфигурации выпуска. Для меня процесс создания новой конфигурации для ветви 3.4.4 выглядит так:

  1. Создать новую конфигурацию
  2. Выберите шаблон Выберите: релиз
  3. Введите имя конфигурации. Введите: 3.4.4.
  4. Сохранить
  5. Запустить сборку

Дело в том, что параметр "Имя ветви" в шаблоне выпуска выглядит следующим образом

%BranchPath%=Release/%ConfigurationName%

Для шаблона непрерывной интеграции это будет

%BranchPath%=%ConfigurationName%

Далее в корневой ветви VCS устанавливается значение%BranchPath%, передаваемое ему из конфигурации, поэтому VCS может работать как с обоими шаблонами, так и со всеми 20 конфигурациями. И это все..:) Надеюсь, это как-то поможет

Другие вопросы по тегам