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