CruiseControl.NET создает ночные IfModificationExists с момента последней метки сборки

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

Я рассматриваю два варианта:

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

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

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

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

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

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

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

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

2 ответа

Решение

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

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

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

<triggers>
  <intervalTrigger seconds="60" name="Continuous" />
  <scheduleTrigger time="23:30" buildCondition="IfModificationExists" name="Scheduled">
      <weekDays>
        <weekDay>Monday</weekDay>
      </weekDays>
  </scheduleTrigger>
</triggers>
Другие вопросы по тегам