Я потратил довольно много времени на просмотр нашего текущего процесса сборки, пытаясь вернуть всю инкрементную сборку обратно в 10-минутную отметку (в настоящее время 1 час). Наибольшее потребление времени в нашей сборке, по-видимому, связано с большим количеством модульных тестов, которые по тем или иным причинам занимают довольно много времени.
Недавно я экспериментировал с распределением выполнения модульных тестов на небольшом количестве блейдов. Это увеличило общее время выполнения тестов junit до очень допустимого диапазона, но потребовало большого количества ручных сценариев и администрирования на блоке CI, чтобы тесты работали. В идеале я хотел бы скомпилировать исходный код на главном узле, использовать распределенный верный плагин, подобный плагину, для совместного запуска модульных тестов, а затем использовать мастер-узел для упаковки результатов. В настоящее время я не вижу каких-либо существенных преимуществ от использования распределенного компилятора.
Распределяют ли другие люди выполнение модульного теста по нескольким коробкам? Существуют ли плагины (коммерческие или с открытым исходным кодом), которые облегчили бы управление этим процессом? Любое понимание того, как другие решают (или не решают) эту проблему, будет высоко оценено.