Автоматизация сборки — это процесс автоматизации создания сборки программного обеспечения и связанных с ним процессов, включая: компиляцию исходного кода компьютера в двоичный код , упаковку двоичного кода и запуск автоматических тестов .
Исторически автоматизация сборки осуществлялась с помощью make-файлов . Сегодня существует две основные категории инструментов: [1]
В зависимости от уровня автоматизации возможна следующая классификация:
Список программного обеспечения для каждого из них можно найти в списке программного обеспечения для автоматизации сборки .
Утилиты автоматизации сборки позволяют автоматизировать простые, повторяемые задачи. При использовании инструмента он рассчитает, как достичь цели, выполняя задачи в правильном, определенном порядке и запуская каждую задачу. Инструменты сборки различаются по двум критериям: ориентированность на задачи и ориентированность на продукт. Инструменты, ориентированные на задачу, описывают зависимость сетей с точки зрения конкретной поставленной задачи, а инструменты, ориентированные на продукт, описывают вещи с точки зрения продуктов, которые они генерируют. [2]
Хотя серверы сборки существовали задолго до серверов непрерывной интеграции, они обычно являются синонимами серверов непрерывной интеграции, однако сервер сборки также может быть включен в инструмент ARA или ALM .
Типы серверов
Автоматизация достигается за счет использования фермы компиляции либо для распределенной компиляции, либо для выполнения шага утилиты. [3] Процесс распределенной сборки должен обладать машинным интеллектом, чтобы понимать зависимости исходного кода для выполнения распределенной сборки.
Автоматизация сборки считается первым шагом на пути к внедрению культуры непрерывной доставки и DevOps . Автоматизация сборки в сочетании с непрерывной интеграцией , развертыванием , автоматизацией выпуска приложений и многими другими процессами помогает продвинуть организацию вперед в внедрении передовых методов доставки программного обеспечения. [4] [ как? ]
Преимущества автоматизации сборки для проектов разработки программного обеспечения включают в себя:
{{cite web}}
: CS1 maint: archived copy as title (link)