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
[editovat | editovat zdroj]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í
[editovat | editovat zdroj]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í
[editovat | editovat zdroj]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í
[editovat | editovat zdroj]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
[editovat | editovat zdroj]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
[editovat | editovat zdroj]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
[editovat | editovat zdroj]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. Dostupné online. ISBN 978-0137001798.