В чем разница между ночной сборкой и непрерывной интеграцией?
В чем разница между ночными сборками и непрерывной интеграцией? Это просто частота проверки / сборки / тестирования? Например, если процесс ночной сборки запускается каждый час или каждую минуту, будет ли он неотличим от CI?
Этот вопрос похож, но не идентичен: непрерывная интеграция против ночных сборок
2 ответа
Непрерывная интеграция фокусируется на построении (и запуске тестов) каждый раз, когда производится проверка. Ночные сборки делают это один раз в день и могут уделять меньше внимания тестированию.
На практике проверки непрерывной интеграции, запускающие создание и запуск тестов, могут отличаться от проверок, которые разработчик выполняет в течение дня. Они могут возникнуть, например, только при регистрации в транке, в то время как большая часть разработки в течение дня возвращается в ветку. Рекомендуется, чтобы это происходило относительно часто, например, один раз в день.
Сборка чаще приводит к аналогичным результатам, но, вероятно, приведет к некоторым потраченным впустую усилиям, то есть к запуску тестов, когда ничего не изменилось. Другое возможное отличие заключается в том, что при каждой сборке в непрерывной интеграции выполняется значительный уровень тестирования. Иногда требуется вмешательство разработчика, чтобы исправить возникшие ошибки. С ночным процессом сборки это будет сложнее по нескольким причинам. В том числе сложнее связать ошибки с определенным набором изменений и ответственной стороной.
Это может зависеть от количества тестов и от того, сколько они пройдут. Если полная сборка и полные тесты занимают несколько минут, вы можете запускать их в непрерывной интеграции после каждого нажатия на источники.
С моей стороны, наша ночная сборка занимает около 2 часов, сборка всех источников и запуск всех тестов. В ежедневных сборках мы собираем только несколько библиотек и запускаем некоторые тесты, в зависимости от ветви и того, что разработчики могут изменить.