Автоматизация сборки
Автоматизация сборки (англ. Build Automation) - это процесс создания скриптов или настройки специализированного ПО для автоматизации широкого спектра действий, выполняемых разработчиками для сборки релизов в их повседневной деятельности.
Автоматизация сборки включает в себя следующие шаги:
- компиляция бинарных объектных файлов из исходного кода
- линковка объектных файлов в исполняемые файлы
- проведение базового тестирования
- развёртывание ПО в продуктивной среде
- создание документации или составление списка изменений в текущей версии
Содержание
Общие сведения
Общую информацию Вы можете получить, перейдя по следующим ссылкам:
Автоматизация сборки в Википедии
О преимуществах Автоматизации сборки
Презентация ПО для Автоматизации сборки
Расширенные сведения
С дополнительной информацией об этом понятии Вы можете ознакомиться ниже.
Продвинутая автоматизация сборки
Продвинутая автоматизация сборки предоставляет возможность удаленному пользователю управлять обработкой распределенных сборок и/или распределенной обработкой сборки. Термин «распределенные сборки» подразумевает, что вызовы компилятора и линковщика могут передаваться множеству компьютеров для ускорения скорости сборки. Данный термин часто путают с «распределенной обработкой». Распределенная обработка означает, что каждый этап процесса может быть адресован разным машинам для выполнения ими данного шага. Например, этап после сборки может потребовать выполнения множества тестовых скриптов на множестве машин. Распределенная обработка позволяет послать команду на исполнение различных тестовых скриптов на разных машинах. Распределенная обработка — не то же самое, что и распределенная сборка! Распределенная обработка не может взять скрипты от make или maven, разбить их и послать команды на компиляцию и линковку различным машинам.
Преимущества
- Улучшение качества продукта.
- Ускорение процесса компиляции и линковки.
- Избавление от излишних действий.
- Минимизация «плохих (некорректных) сборок».
- Избавление от привязки к конкретному человеку.
- Ведение истории сборок и релизов для разбора выпусков.
- Экономия времени и денег благодаря причинам, указанным выше.
Типы
Автоматизация по запросу (англ. On-Demand automation): запуск пользователем скрипта в командной строке.
Запланированная автоматизация (англ. Scheduled automation): непрерывная интеграция, происходящая в виде ночных сборок.
Условная автоматизация (англ. Triggered automation): непрерывная интеграция, выполняющая сборку при каждом подтверждении изменения кода (англ. commit) в системе управления версиями.
Makefile
Одна из особых форм автоматизации сборки — автоматическое создание make-файлов (makefiles). Эти файлы совместимы с такими инструментами как:
- GNU Automake
- CMake
- imake
- qmake
- nmake
- wmake
- Apache Ant
- Apache Maven
- OpenMake Meister
Требования к системам сборки
Базовые требования:
- Частые или ночные сборки для своевременного выявления проблем.
- Поддержка управления зависимостями исходного кода (англ. Source Code Dependency Management)
- Обработка разностной сборки
- Уведомление при совпадении исходного кода (после сборки) с имеющимися бинарными файлами.
- Ускорение сборки
- Отчет о результатах компиляции и линковки.
Дополнительные требования:
- Создание описания изменений (англ. release notes) и другой сопутствующей документации (например, руководства).
- Отчет о статусе сборки
- Отчет об успешном/неуспешном прохождении тестов.
- Суммирование добавленных/измененных/удаленных особенностей в каждой новой сборке