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:

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ů

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.

  1. 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.