Я работаю над проектом среднего размера, который использует непрерывную интеграцию для выполнения регулярных сборок. В данный момент у нашего проекта довольно длительное время сборки (45-55 минут), и мы искали, какие оптимизации можно сделать, чтобы сократить это время.
Одна из предложенных оптимизаций состоит в том, чтобы исключить этап очистки, который мы выполняем в начале каждой сборки, т.е. удалить весь каталог сборки и получить все исходные файлы из системы контроля версий. Вместо этого просто получите файлы, которые были изменены, и начните новую сборку. По приблизительным оценкам, мы экономим 10-20 минут на сборку, но это предложение заставило меня чувствовать себя немного неловко.
Итак, я обращаюсь к сообществу Stack Overflow, чтобы узнать, в чем заключается лучшая практика ... всегда ли ваша непрерывная интеграция делает чистую сборку? Существуют ли конкретные причины для и / или против этого?
Я опубликую свои мысли ниже, чтобы никого не пристрастить, но мне действительно интересно услышать другие мнения.