Типичное решение состоит в том, чтобы на сервере сборки работала сборка CI (Continuous Integration): она будет анализировать исходный код, делать сборку (при отладке) и запускать тесты, измерять охват тестов и т. Д.
Теперь другой тип сборки, обычно известный как «Ночная сборка»: выполняйте медленные вещи, такие как создание документов кода, создание пакета установки, развертывание в тестовой среде, запуск автоматических тестов (тестирование или приемка) в тестовой среде и т. Д.
Теперь вопрос:
- Лучше ли иметь третью отдельную «сборку релиза» в качестве сборки релиза?
- Или сделать «Ночную сборку» в режиме релиза и использовать его как релиз?
Что вы используете в своей компании?
(Сборка релиза также должна добавить какой-то тег для контроля версий потенциальной версии продукта.)
источник
Одна вещь, которую я хотел бы сделать, это переключить ночную сборку в режим выпуска, а не в режим отладки. В случае каркасов журналирования, таких как log4net, заменяющих System.Diagnostics.Debug, основными различиями между режимами Release и Debug являются время жизни объектов и оптимизация кода.
Если вы на самом деле не собираетесь подключать отладчик к вашей ночной сборке, я бы посоветовал сделать это тоже.
Процесс, которому мы следуем, заключается в том, что ночная сборка выполняется каждую ночь, и если это сработает, мы можем развернуть ту же сборку на других наших серверах (не нужно перестраивать, просто возьмите упакованные установщики и запустите их). Если у нас есть проблема с ночной сборкой, то мы проверяем изменения в ней на ветке и запускаем «ночную» сборку из этой ветки в течение дня. Затем тесты могут быть перезапущены.
источник