Как я могу использовать параметры сборки из других проектов в TeamCity? - PullRequest
3 голосов
/ 11 июля 2011

Я хотел бы использовать некоторые параметры сборки из Проекта 1 в Проекте 2. Я знаю, что могу сделать Проект 1 зависимым от Проекта 2, а затем получить доступ к его параметрам сборки, как описано в Свойства Зависимостей , ноЯ не хочу, чтобы проект 1 создавался в ответ на сборку проекта 2. Например, предположим, что я хочу, чтобы проект 2 создавался ночью, а я хочу, чтобы проект 1 создавался ежемесячно.

Есть ли способПроект 2 может получить доступ к параметрам сборки Проекта 1 при этих условиях?

Ответы [ 2 ]

4 голосов
/ 12 июля 2011

Я бы использовал шаблон конфигурации сборки , который используется двумя проектами.

Это означает, что вы можете обмениваться свойствами между проектами, но также переопределять определенные свойства в каждом отдельном проекте.

Мы используем это для ежечасных сборок, которые не помечены, и для ночных, которые помечены .

Затем используйте другой триггер сборки, чтобы отключать одну на ночь, а другую ежемесячно..

РЕДАКТИРОВАТЬ

Я просто немного расширю в результате вашего комментария.

В TeamCity у нас есть 2 конфигурации сборки для одного проекта,Тот, который основан на каждой регистрации, чтобы дать разработчикам быструю обратную связь по их вкладу (сборка в течение 15 минут).Это делает следующее:

  • Сборка проекта в Debug
  • Запуск всех модульных тестов
  • Проверка результатов сборки в Subversion

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

  • Сборка проекта в Debug и Release
  • Запуск всех модульных тестов
  • Сборка документации Sandcastle
  • Проверка результатов сборкив Subversion
  • Получает вывод Sandcastle за артефакт, чтобы разработчики могли легко загрузить его.

Как вы указали, это не так просто, как хотелось бы;однако вы можете использовать следующее для достижения этой цели:

  • Мы используем Автоинкрементатор для разделения номеров сборок между двумя конфигурациями (они обе увеличивают один и тот же номер сборки при сборке).
  • У нас есть свойство в шаблоне, которое определяет, какие артефакты нужно собирать, и на которое ссылается поле артефактов.Свойство переопределяется во второй конфигурации сборки, чтобы определить выходные данные sandcastle для захвата.
  • Совместное использование корней VCS упоминается в документации .Обе наши сборки получают исходный код из одного места и помечают результаты в одном месте.Одна VCS - это определенно все, что нам нужно.

Немного сложного редактирования, но я думаю, что оно точно соответствует тому, что вы пытаетесь достичь.Я ценю, что должен был включить это в исходный ответ.

HTH

2 голосов
/ 11 июля 2011

Зависимость отличается от Запуск сборки в TeamCity.Если вы делаете один проект зависимым от другого (зависимость артефакта), это не означает, что последний вызовет первый.

Даже если один проект был определен как зависимый от другого (а также, даже если нет) необходимо явно указать триггер сборки (в данном случае триггер завершения сборки) для зависимого проекта, который должен быть запущен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...