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