Как я могу выполнить непрерывную интеграцию и ночные сборки на одном и том же клоне

#triggers #cruisecontrol.net #nightly-build

#триггеры #cruisecontrol.net #ночная сборка

Вопрос:

Мы пытаемся переключиться с SVN на HG прямо сейчас.

Мы используем непрерывную интеграцию с CruiseControl.Подключайтесь к сети на специальном созданном сервере сборки, который работает хорошо. Кроме того, мы запустили ночную сборку для выполнения расширенных тестов, таких как расширенное модульное тестирование статистики кода и т.д.

Теперь наша проблема:

Ночная сборка запускается, как показано ниже:

   <triggers>
        <scheduleTrigger time="3:00" buildCondition="IfModificationExists" />
  </triggers>
  

Мы ссылаемся на тот же клон, что и для непрерывной интеграции.

В ночное время CruiseControl запускает задачу извлечения hg, которая возвращает «никаких изменений не обнаружено», поскольку они уже обнаружены в течение дня.

Мои вопросы

Могу ли я настроить задачу запуска таким образом, чтобы она проверяла наличие наборов изменений между последней ночной сборкой и текущей? можно ли настроить вызываемые задачи в расширениях задач MSBuild для круиз-контроля? Нужен ли нам дополнительный клон для ночной сборки? Есть ли какие-то другие решения?

Ответ №1:

Глядя на код, я не вижу механизма для поиска наборов изменений на основе состояния репозитория.

Лично я бы либо пошел вторым путем клонирования, либо использовал условие ForceBuild вместо IfModificationExists, чтобы всегда выполнять ночные сборки.

Существует несколько альтернативных механизмов для достижения результата, который вы ищете, но, на мой взгляд, все они вносят дополнительный «беспорядок». Одним из простейших может быть добавление блока управления версиями файловой системы и ссылки на файл, к которому прикасаются во время стандартного процесса сборки интеграции.