Автоматизация сборки - Build automation

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

Обзор

Исторически автоматизация сборки осуществлялась с помощью make-файлов . Сегодня есть две основные категории инструментов:

Утилита автоматизации сборки
Сюда входят такие утилиты, как Make , Rake , CMake , MSBuild , Ant , Maven или Gradle (Java) и т. Д. Их основная цель - генерировать артефакты сборки с помощью таких действий, как компиляция и связывание исходного кода.
Серверы автоматизации сборки
Это общие веб-инструменты, которые запускают утилиты автоматизации сборки по расписанию или по триггеру; непрерывная интеграция сервер является типом сервера сборки-автоматизации.

В зависимости от уровня автоматизации возможна следующая классификация:

Список программного обеспечения для каждого из них можно найти в списке программного обеспечения для автоматизации сборки .

Утилиты для автоматизации сборки

Утилиты Build-Automation позволяют автоматизировать простые, повторяемые задачи. При использовании инструмента он рассчитает, как достичь цели, выполняя задачи в правильном, определенном порядке и выполняя каждую задачу. Инструменты сборки различаются по двум причинам: ориентированные на задачи и ориентированные на продукт. Инструменты, ориентированные на задачи, описывают зависимость сетей с точки зрения конкретной поставленной задачи, а инструменты, ориентированные на продукт, описывают вещи с точки зрения продуктов, которые они создают.

Серверы автоматизации сборки

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

Типы серверов

  • Автоматизация по запросу, например, когда пользователь запускает сценарий в командной строке.
  • Плановая автоматизация, например сервер непрерывной интеграции, на котором выполняется ночная сборка.
  • Запускаемая автоматизация, такая как сервер непрерывной интеграции, запускающий сборку при каждой фиксации в системе контроля версий.

Распределенная автоматизация сборки

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

Связь с непрерывной доставкой и непрерывной интеграцией

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

Преимущества

Преимущества автоматизации сборки для проектов разработки программного обеспечения включают:

  • Необходимое предварительное условие для непрерывной интеграции и непрерывного тестирования
  • Повышение качества продукции
  • Ускорьте компиляцию и обработку ссылок
  • Устранение повторяющихся задач
  • Минимизируйте "плохие сборки"
  • Устранение зависимости от ключевого персонала
  • Иметь историю сборок и выпусков, чтобы исследовать проблемы
  • Экономьте время и деньги - по причинам, перечисленным выше.

Смотрите также

Рекомендации