Выберите несколько веток при выполнении сборки

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

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

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

Если я запускаю api-branch, он всегда будет использовать ветку по умолчанию из снимка Front-end CI. То же самое для любой ветви на внешнем снимке. Я не могу найти способ указать это в конфигурации или при запуске сборки.

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

1 ответ

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

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

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