Автоматизация сборки — это процесс автоматизации создания сборки программного обеспечения и связанных процессов, включая: компиляцию исходного кода компьютера в двоичный код , упаковку двоичного кода и выполнение автоматизированных тестов .
Содержание
1 Обзор
2 Утилиты для автоматизации сборки
3 сервера автоматизации сборки
4 Автоматизация распределенной сборки
5 Отношение к непрерывной доставке и непрерывной интеграции
6 преимуществ
7 См. также
8 ссылок
Обзор
Исторически автоматизация сборки осуществлялась с помощью 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)
Модульное тестирование
использованная литература
^ Черуцци, Пол Э. (2003). История современных вычислений . Пресс Массачусетского технологического института. ISBN 978-0262532037.
^ Кларк, Майк (2004). Прагматичная автоматизация проектов: как создавать, развертывать и контролировать приложения Java . Программисты-прагматики. ISBN 978-0974514031.
^ Энос, Джо (2013). «Автоматизированные сборки: ключ к согласованности» . Информация . C4Media Inc. Проверено 16 сентября 2015 г.
^ Башан, Шмуэль; Белладжио, Дэвид Э. (2011). Управление рабочими элементами с помощью IBM Rational ClearQuest и Jazz: руководство по настройке . IBM Пресс. ISBN 978-0137001798.
^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 23 ноября 2008 г .. Проверено 19 сентября 2008 г. .CS1 maint: заархивированная копия как заголовок ( ссылка )
Категории :
Автоматизация сборки
Типы инструментов, используемых при разработке программного обеспечения
Скрытые категории:
CS1 maint: архивная копия как заголовок
Статьи с кратким описанием
Краткое описание отличается от Викиданных
Статьи в Википедии, требующие уточнения, с января 2018 г.