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


Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Обзор

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

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

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

  • Makefile - уровень
    • Инструменты на основе Make
    • Инструменты, не основанные на Make
  • Инструменты генерации сценария сборки (или Makefile)
  • Инструменты непрерывной интеграции
  • Инструменты управления конфигурацией
  • Инструменты мета-сборки или менеджеры пакетов
  • Другой

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

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

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

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

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

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

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

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

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

Отношение к непрерывной доставке и непрерывной интеграции

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

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

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

  • Необходимое предварительное условие для непрерывной интеграции и непрерывного тестирования
  • Улучшить качество продукции
  • Ускорение компиляции и обработки компоновки
  • Избавьтесь от лишних задач
  • Минимизируйте «плохие сборки»
  • Устранение зависимости от ключевого персонала
  • Иметь историю сборок и выпусков для расследования проблем
  • Экономьте время и деньги - по перечисленным выше причинам. [5]

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

  • Автоматизация выпуска приложений (ARA)
  • Непрерывная автоматизация конфигурации (CCA)
  • Непрерывная интеграция (CI)
  • Непрерывная поставка (CD)
  • Непрерывное тестирование
  • DevOps
  • Список программного обеспечения для автоматизации сборки
  • Инжиниринг семейства продуктов
  • Разработка выпуска (RE)
  • Управление конфигурацией программного обеспечения (SCM)
  • Модульное тестирование

использованная литература

  1. ^ Черуцци, Пол Э. (2003). История современных вычислений . Пресс Массачусетского технологического института. ISBN 978-0262532037.
  2. ^ Кларк, Майк (2004). Прагматичная автоматизация проектов: как создавать, развертывать и контролировать приложения Java . Программисты-прагматики. ISBN 978-0974514031.
  3. ^ Энос, Джо (2013). «Автоматизированные сборки: ключ к согласованности» . Информация . C4Media Inc. Проверено 16 сентября 2015 г.
  4. ^ Башан, Шмуэль; Белладжио, Дэвид Э. (2011). Управление рабочими элементами с помощью IBM Rational ClearQuest и Jazz: руководство по настройке . IBM Пресс. ISBN 978-0137001798.
  5. ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 23 ноября 2008 г .. Проверено 19 сентября 2008 г. . CS1 maint: заархивированная копия как заголовок ( ссылка )
Получено с " https://en.wikipedia.org/w/index.php?title=Build_automation&oldid=1020958690 "