Продвинутая автоматизация сборки
Продвинутая автоматизация сборки (англ. Advanced Build Automation) предоставляет возможность удаленному пользователю управлять обработкой распределенных сборок и/или распределенной обработкой сборки.
Термин «распределенные сборки» подразумевает, что вызовы компилятора и линковщика могут передаваться множеству компьютеров для ускорения скорости сборки. Данный термин часто путают с «распределенной обработкой». Распределенная обработка означает, что каждый этап процесса может быть адресован разным машинам для выполнения ими данного шага.
Например, этап после сборки может потребовать выполнения множества тестовых скриптов на множестве машин. Распределенная обработка позволяет послать команду на исполнение различных тестовых скриптов на разных машинах. Распределенная обработка — не то же самое, что и распределенная сборка! Распределенная обработка не может взять скрипты от make или maven, разбить их и послать команды на компиляцию и линковку различным машинам.
Распределенный процесс сборки должен обладать определенной логикой, чтобы правильно определить зависимости в исходном коде для того, чтобы выполнить этапы компиляции и линковки на разных машинах. Решение автоматизации сборки должно быть способно управлять этими зависимостями, чтобы выполнять распределенные сборки. Некоторые инструменты сборки могут распознавать подобные взаимосвязи автоматически (Rational ClearMake distributed, Electric Cloud ElectricAccelerator), а другие зависят от пользовательских указаний (Platform LSF lsmake).
Автоматизация сборки, способная рассортировывать взаимосвязи зависимостей исходного кода, также может быть настроена на выполнение действий компиляции и линковки в режиме параллельного выполнения. Это означает, что компиляторы и линковщики могут быть вызваны в многопоточном режиме на машине, сконфигурированной с учетом наличия более одного процессорного ядра.
Не все инструменты автоматизации сборки могут выполнять распределенные сборки. Большинство из них лишь реализует поддержку распределенной обработки. Кроме того, большинство решений, поддерживающих распределенные сборки, могут лишь обрабатывать код на языках Си и C++. Решения автоматизации сборки, поддерживающие распределенную обработку, зачастую основаны на Make и не поддерживают Maven или Ant. В качестве примера решения распределенной сборки можно привести Xoreax’s IncrediBuild для платформы Microsoft Visual Studio. Это может потребовать специфической настройки программного окружения чтобы успешно функционировать на распределенной платформе (нужно указать расположение библиотек, переменные окружения и т. д.).
Ссылки
Продвинутая автоматизация сборки в Wikipedia