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

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

Обзор [ править ]

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

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

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

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

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

Утилиты автоматизации сборки [ править ]

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

Серверы автоматизации сборки [ править ]

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

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

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

Автоматизация распределенной сборки [ править ]

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

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

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

Преимущества [ править ]

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

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

См. Также [ править ]

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

Ссылки [ править ]

  1. ^ Ceruzzi, Пол Э. (2003). История современных вычислений . MIT Press. ISBN 978-0262532037.
  2. ^ Кларк, Майк (2004). Прагматическая автоматизация проектов: как создавать, развертывать и контролировать приложения Java . Прагматичные программисты. ISBN 978-0974514031.
  3. Перейти ↑ Enos, Joe (2013). «Автоматизированные сборки: ключ к согласованности» . InfoQ . C4Media Inc . Проверено 16 сентября 2015 года .
  4. ^ Башан, Шмуэль; Белладжио, Дэвид Э. (2011). Управление рабочими элементами с помощью IBM Rational ClearQuest и Jazz: Руководство по настройке . IBM Press. ISBN 978-0137001798.
  5. ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 23 ноября 2008 года . Проверено 19 сентября 2008 . CS1 maint: заархивированная копия как заголовок ( ссылка )