TeamCity: запускайте триггер проекта одним щелчком мыши и общим номером сборки

Я новичок в TeamCity (но не в системах CI), и я пытался понять, как работать с этой конфигурацией:

У меня установлена ​​последняя версия TeamCity Professional 9.1.3 (3 агента сборки, 20 конфигураций)

Вот мой макет проекта TeamCity:

Проект A
- Собрать продукт X (WIN)
- Собрать продукт Y (WIN)
- Собрать продукт Z (Linux)

Я выделил 3 агента для создания вышеуказанных конфигураций сборки соответственно - 2 в Windows и 1 агент в Linux.

Продукты WIN создаются с использованием сочетания сценариев пакетной обработки, PowerShell и msbuild.
Linux создается с использованием сценария оболочки.

Запуск этих трех сборок (в рамках проекта A) вручную работает нормально. Однако это невозможно, поскольку у нас много ветвей функций, и все они будут иметь похожие конфигурации сборки - 3 щелчка для каждой сборки + установка параметров сборки для каждой конфигурации сборки стоит дорого.

Итак, вот мои вопросы:

  1. Есть ли способ запустить сборку всего проекта одним щелчком мыши? при этом следует запускать эти сборки параллельно
  2. Если 1 возможно, то как мне установить один и тот же номер сборки (параметры сборки) для этих трех конфигураций сборки?
  3. Можно ли настроить триггер VCS, который будет опрашивать изменения в любом из репозиториев, которые их создают, и запускать весь проект (при условии, что 1 возможен)

Обратите внимание, что я попытался настроить зависимости снимка и артефакта, чтобы заставить эту работу работать, но создание зависимостей только приостанавливает другие конфигурации сборки, чтобы ждать, пока зависимый проект завершен, но для нас это невозможно - они должны работать параллельно. (наши сборки занимают около 45 минут) - Да, у нас есть огромный продукт, который нужно упаковать.

Буду благодарен за любые указатели в нужное русло

Спасибо


person obfuscate    schedule 25.10.2015    source источник


Ответы (1)


Да, запуск параллельных запусков одним щелчком мыши возможен: создайте 4-ю (или 0-ю) конфигурацию сборки, которая ничего не делает (без шагов сборки). Назовем этот конфиг «Ноль». Каждая из ваших трех конфигураций сборки будет иметь триггер «Завершенная сборка» на нулевом значении (запускается, когда нулевое значение завершается), а также зависимость снимка от нуля.

Лучшее: вам нужно только определить общие / общие параметры в Zero, а остальные три конфигурации могут их повторно использовать. Например, если вы определяете %foo% в Zero, остальные три могут использовать %dep.MyProject_Zero.foo%. Это также означает, что вы можете получить номер сборки Zero: %dep.MyProject_Zero.build.number%. В каждой из трех конфигураций сборки переключитесь в «Общие настройки» и установите для «Формат номера сборки» значение, указанное выше.

Для запуска VCS просто установите Zero, чтобы охватить все три области VCS. Вы предполагаете, что каждый из них находится в разных репозиториях ... У меня нет опыта в этом, но предполагаю, что Zero может охватывать все три репо.

Наконец, если вы используете ветки функций и ваша VCS - это git, mercurial или Perforce Streams, убедитесь, что вы прочитали о Поддержка функциональных веток TeamCity; это может сэкономить вам много времени!

person sferencik    schedule 26.10.2015
comment
Идеально! - приведенное выше предложение решило мои вопросы 1 и 2 - попробую ответить на 3 и дам вам знать. - Большое спасибо! - person obfuscate; 26.10.2015