Масштабирование цепочек сборки TeamCity
У нас есть много проектов, которые обрабатываются, создаются и развертываются одинаково, и мы хотим создать единую цепочку сборки TeamCity для всех них.
Наша сборочная цепочка должна содержать:
- Компиляция и тестирование по запросу и разработка ветки.
- Анализ SonarQube для запросов извлечения.
- Публикация и автоматическая маркировка NPM для объединенных запросов на разработку.
Все проекты являются пакетами NPM, которые соответствуют следующим требованиям:
- необходимые скрипты: установить, протестировать, очистить, собрать
- package.json и sonar-project.properties в корне
У нас была идея использовать общие параметризованные сборки для публикации SonarQube и NPM, поскольку они не зависят от самого проекта, но похоже, что TeamCity не поддерживает ничего подобного, если мы не копируем цепные сборки для каждого проекта.
В идеале это должно выглядеть примерно так:
Проблема здесь в том, что если я добавлю триггеры для завершения сборки и добавлю зависимости к SonarQube и публикации NPM для всех проектов, это потребует сборки каждого проекта, а не только того, который только что был построен.
TeamCity обеспечивает что-то вроде этого, имея возможность дублировать конфигурации сборки:
Я не хочу иметь много дублированных сборок так же, как мне не нравится дублированный код. Есть ли способ создать общую цепочку сборки, или я должен двигаться вперед и искать сценарий для генерации последней?