CruiseControl.NET создает ночные IfModificationExists с момента последней метки сборки
Я использую один сервер для создания одного и того же проекта как непрерывно, так и ночью; однако я хотел бы, чтобы ночная сборка производилась только в том случае, если в течение дня существует модификация. Я надеюсь достичь этого с ограничением, что обе сборки используют одну и ту же рабочую папку.
Я рассматриваю два варианта:
Опрос непрерывной сборки и сборка ночной сборки возможна только в случае непрерывной сборки - возможно, с использованием некоторой системы токенов (непрерывная сборка устанавливает токен, ночной сбрасывает токен).
Выполнение задачи предварительной сборки для возврата исходного кода к времени последней сборки
Я склоняюсь ко второму варианту, поскольку он разъединяет сценарии сборки, но это, кажется, намного более сложная задача.
Предложения и советы по этому вопросу будут оценены!
Добавленная информация:
Сборка 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>