Automatizace sestavování programu
Automatizace sestavování programu je proces automatického sestavení softwaru a s tím související procesy: kompilace zdrojového kódu do binárního kódu počítače, zabalení binárního kódu a spuštění automatizovaných testů.
Přehled
Historicky se automatizace prováděla pomocí makefile.
Existují dvě obecné kategorie nástrojů:
- Nástroje pro automatizaci sestavování
- To zahrnuje nástroje jako Make, Rake, CMake, MSBuild, Ant, Maven nebo Gradle (Java) atd. Jejich primárním účelem je generování artefaktů sestavování prostřednictvím aktivit, jako je kompilace a propojení zdrojového kódu.
- Servery pro automatizaci sestavování
- Jedná se o obecné webové nástroje, které provádějí obslužné programy pro automatizaci sestavování podle plánu nebo podle spouštění; Server pro průběžnou integraci je typ serveru pro automatizaci sestavování.
V závislosti na úrovni automatizace je možná následující klasifikace:
- úroveň Makefile
- nástroje založené na Make
- nástroje mimo Make
- nástroje na generování automatizace pomocí skriptovacího jazyka
- nástroje na průběžou integraci
- nástroje na správu konfigurace
- správce balíčků
- ostatní
Nástroje pro automatizaci sestavování
Obslužné programy pro vytváření sestav umožňují automatizaci jednoduchých a opakovatelných úkolů. Při použití nástroje vypočítá, jak dosáhnout cíle provedením úkolů ve správném konkrétním pořadí a spuštěním každého úkolu. Dva způsoby, jak se nástroje pro sestavení liší, jsou orientované na úkoly a na produkty. Úkolově orientované nástroje popisují závislost sítí z hlediska konkrétního stanoveného úkolu a produktově orientované nástroje popisují věci z hlediska produktů, které generují.
Servery pro automatizaci sestavování
Ačkoli servery pro sestavování existovaly dlouho před servery pro průběžnou integraci, jsou obecně synonymem serverů pro průběžnou integraci. Server pro sestavování může být také začleněn do nástroje ARA (Application-release automation nebo nástroje ALM (Application lifecycle management).
Typy serverů
- Automatizace na vyžádání (On-demand automation) například uživatel, který spouští skript na příkazovém řádku.
- Plánovaná automatizace (Scheduled automation) například server pro průběžnou integraci, na kterém běží noční sestavení.
- Spouštěná automatizace (Triggered automation) například server pro průběžnou integraci, na kterém každá revize ve verzovacím systému vytvoří sestavení.
Distribuovaná automatizace sestavení
Automatizace je dosažena pomocí kompilační farmy buď pro distribuovanou kompilaci, nebo pro provedení kroku obslužného programu. Proces distribuovaného sestavení musí mít inteligenci stroje k pochopení závislostí zdrojového kódu k provedení distribuovaného sestavení.
Vztah k nepřetržitému poskytování a průběžné integraci
Automatizace sestavování je považována za první krok v přechodu k implementaci kultury nepřetržitého doručování a DevOps. Automatizace sestav v kombinaci s průběžnou integrací, nasazením, automatizací vydávání aplikací a mnoha dalšími procesy pomáhají posunout organizaci vpřed v zavádění osvědčených postupů pro poskytování softwaru.[1]
Výhody
Mezi výhody automatizace sestavování pří vývoji software patří:
- Nezbytná podmínka pro průběžnou integraci a průběžné testování
- Zlepšení kvality produktu
- Urychlení zpracování kompilace a propojení
- Eliminace nadbytečných úkolů
- Minimalizaze „špatných verzí“
- Eliminace závislosti na klíčových zaměstnancích
- Dostupnost historií sestavení a vydání pro možnost šetření problémů
- Ušetření času a peněz - z důvodů uvedených výše
Reference
V tomto článku byl použit překlad textu z článku Build automation na anglické Wikipedii.
- BASHAN, Shmuel; BELLAGIO, David E. Work Item Management with IBM Rational ClearQuest and Jazz: A customization Guide. [s.l.]: IBM Press, 2011. ISBN 978-0137001798.