2015-03-09 2 views
2

У нас есть несколько слоев наших продуктов, разделенных на различные конфигурации сборки для непрерывной интеграции. Ради этого вопроса, давайте просто скажем, что у нас есть сборка «Front-End CI» и сборка API CI. Корни VCS сконфигурированы для того, чтобы тянуть во всех ветвях и запускаться для проверки при проверке, как и следовало ожидать для CI.Выберите несколько ветвей при выполнении сборки

Теперь у меня есть проект User Acceptance, где я использую CloudFormation для динамического развертывания серверов, на которых я развертываю. У меня есть зависимостей моментальных снимков, настроенных для сборников CI, упомянутых выше, и все работает так, как ожидалось, для ветвей по умолчанию для каждого из корней и зависимостей VCS. Я ожидаю, что ветвь функции для front-end может не обязательно требовать от ветви от стандартного API, и теперь у меня есть эта настройка для этого.

Вот где я начинаю испытывать проблемы. Если мне нужно разделить интерфейс и API, я не смогу заставить TeamCity делать то, что я хочу в этом отношении. Мой вопрос заключается в следующем: как я могу сообщить Team City о запуске сборки UA с помощью ветки «A» из конфигурации сборки CI Front-End и ветви «B» из конфигурации сборки API CI, где «A» и «B» могут любая произвольная ветвь? В настоящий момент все ветки из обоих снимков отображаются, когда я смотрю конфигурацию сборки UA. Вот хорошая картина:

enter image description here

Если я бегу ИПН ветку, он всегда будет использовать ветвь по умолчанию от переднего конца CI снимка. То же самое для любой ветки на переднем снимке. Кажется, я не могу найти способ указать это в конфигурации или при запуске сборки.

Я собираюсь почти что-нибудь решить, в том числе строить конфигурации, которые просто клонированы друг от друга, чтобы указать ветви так, как они предназначены, но я просто не вижу, как я могу это сделать или. Благодаря!

ответ

1
  1. Создайте целевую страницу шаблона teamcity, которая контролирует как внешний интерфейс, так и репозитории API и может активировать изменения. Это должна быть одна цель (а не две разные цели). Параметрируйте имена ветвей так, чтобы фактическим целям было присвоено имя филиала

  2. Я предлагаю создать сопоставление фронтов: ветви api в хранилище данных (файл, db, nosql). Затем динамически создавайте цели teamcity (через REST API) для каждой новой/модифицированной комбинации и явно устанавливайте имена ветвей. После создания целей они будут автоматически запускаться, когда произойдут какие-либо изменения.

Смежные вопросы