Автоматизація складанняАвтоматизація складання або автоматизація побудови (англ. build automation) — етап написання скриптів або автоматизація широкого спектра завдань, вживаного розробниками в їхній повсякденній діяльності. Включає в себе такі дії, як:
ІсторіяІсторично так склалося, що розробники застосовували автоматизацію складання для виклику компіляторів і компонувальників зі скрипту складання, на відміну від виклику компілятора з командного рядка. Досить просто за допомогою командного рядка передати один сирцевий модуль компілятору, а потім і компонувальнику для створення кінцевого об'єкта. Однак, при спробі скомпілювати або скомпонувати велику кількість модулів з сирцевим кодом, причому в певному порядку, здійснення цього процесу вручну за допомогою командного рядка виглядає занадто незручним. Набагато привабливішою альтернативою є скриптова мова, підтримувана утилітою Make. Цей інструмент дозволяє писати скрипти складання, визначаючи порядок їхнього виклику, етапи компіляції і компонування для складання програми. GNU Make[1] також надає такі додаткові можливості, як наприклад, «залежності» («makedepend»), які дозволяють вказати умови підключення сирцевого коду на кожному етапі складання. Це і стало початком автоматизації складання. Основною метою була автоматизація викликів компіляторів і компонувальника. У міру зростання і ускладнення процесу складання розробники почали додавати дії до і після викликів компіляторів, як наприклад, перевірку (check-out) версій копійованих об'єктів на тестову систему. Термін «автоматизація складання» вже включає в себе управління і дії до і після компіляції і компонування, так само як і дії при компіляції і компонуванні. Нове покоління інструментівВ останні роки[коли?] рішення з управління складанням зробили ще більш зручним і керованим процес автоматизованого складання. Для виконання автоматизованого складання і контролю цього процесу існують як комерційні, так і відкриті рішення. Деякі рішення націлені на автоматизацію кроків до і після виклику складальних скриптів, а інші виходять за рамки дій до і після обробки скриптів і повністю автоматизують процес компіляції і компонування, позбавляючи від ручного написання скриптів. Такі інструменти надзвичайно корисні для неперервної інтеграції, коли потрібні часті виклики компіляції та обробка проміжних складань. Просунута автоматизація складанняПросунута автоматизація складання надає можливість віддаленому користувачеві управляти обробкою розподілених складань і/або розподіленою обробкою складання. Термін «розподілені складання» значить, що виклики компілятора і компонувальника можуть передаватися множині комп'ютерів для прискорення швидкості складання. Цей термін часто плутають з «розподіленою обробкою». Розподілена обробка означає, що кожен етап процесу може бути адресований різним машинам для виконання ними даного кроку. Наприклад, етап після складання може зажадати виконання безлічі тестових скриптів на множині машин. Розподілена обробка дозволяє послати команду на виконання різних тестових скриптів на різних машинах. Розподілена обробка — не те ж саме, що і розподілене складання! Розподілена обробка не може взяти скрипти від make або maven, розбити їх і послати команди на компіляцію і компонування різним машинам. Розподілений процес складання повинен володіти певною логікою, щоб правильно визначити залежності у сирцевому коді для того щоб виконати етапи компіляції і компонування на різних машинах. Рішення автоматизації складання має бути здатне управляти цими залежностями, щоб виконувати розподілені складання. Деякі інструменти складання можуть розпізнавати подібні взаємозв'язку автоматично (Rational ClearMake distributed[2], Electric Cloud ElectricAccelerator[3]), а інші залежать від вказівок користувача (Platform LSF lsmake[4]) Автоматизація складання, здатна розсортовувати взаємозв'язки залежностей сирцевого коду, також може бути налаштована на виконання дій компіляції і компонування в режимі паралельного виконання. Це означає, що компілятори і компонувальник можуть бути викликані в багатонитевому режимі на машині, сконфігурованій з урахуванням наявності більше одного процесорного ядра. Не всі інструменти автоматизації складання можуть виконувати розподілені складання. Більшість з них лише реалізує підтримку розподіленої обробки. Крім того, більшість рішень, що підтримують розподілені складання, можуть лише обробляти код на мовах C та C++. Рішення автоматизації складання, що підтримують розподілену обробку, часто засновані на Make і не підтримують Maven або Ant. Як приклад рішення розподіленого складання можна навести Xoreax's IncrediBuild[5] для платформи Microsoft Visual Studio. Це може вимагати специфічного налаштування програмного оточення, щоб успішно функціонувати на розподіленій платформі (потрібно вказати розташування бібліотек, змінні оточення тощо). Переваги
Типи
MakefileОдна з особливих форм автоматизації складання — автоматичне створення make-файлів (makefiles). Ці файли сумісні з такими інструментами як: Вимоги до систем складанняБазові вимоги:
Додаткові вимоги:[10]
Програмні інструментиВиноски
Посилання
Дивись також |
Portal di Ensiklopedia Dunia