В чем разница между ночной сборкой и непрерывной интеграцией?

В чем разница между ночными сборками и непрерывной интеграцией? Это просто частота проверки / сборки / тестирования? Например, если процесс ночной сборки запускается каждый час или каждую минуту, будет ли он неотличим от CI?

Этот вопрос похож, но не идентичен: непрерывная интеграция против ночных сборок

2 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам