CruiseControl.NET создает ночные IfModificationExists с момента последней метки сборки - PullRequest
2 голосов
/ 30 июля 2009

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

Два варианта, которые я рассматриваю:

  1. Опрос непрерывной сборки и сборка ночной сборки только в случае непрерывной сборки - возможно, с использованием некоторой системы токенов (токен непрерывной сборки устанавливает, токен ночной очистки).

  2. Выполнение задачи предварительной сборки, чтобы вернуть исходный код к времени последней сборки

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

Предложения и советы по этому вопросу будут оценены!

Добавлена ​​информация:

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

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

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

Ответы [ 2 ]

3 голосов
/ 30 июля 2009

Возможно, я слишком упрощаю эту задачу, но разве вы не можете просто настроить два триггера в проекте? Один интервальный триггер для непрерывных сборок и один триггер расписания с условием IfModificationExists для ночных сборок.

<triggers>
  <intervalTrigger seconds="60" name="Continuous" />
  <scheduleTrigger time="23:30" buildCondition="IfModificationExists" name="Scheduled">
      <weekDays>
        <weekDay>Monday</weekDay>
      </weekDays>
  </scheduleTrigger>
</triggers>
1 голос
/ 21 августа 2009

Я доволен своим новым решением ...

Я использую MultiTrigger с scheduleTrigger и prjectTrigger для ночной сборки (лучше назвать полную сборку) и пар WriteModification / ReadModification для распространения истории изменений, как в этот вопрос .

...