Automatizace sestavování je fází procesu vývoje softwaru, která automatizuje širokou škálu úkolů, které programátoři provádějí ve svých každodenních činnostech.
Zahrnuje akce jako:
Hlavním prostředkem automatizace montáže je použití specializovaného nástroje; jedním z prvních a historicky významných nástrojů je nástroj make , který do značné míry určoval styl a metody nástrojů, které se objevily později . Jedním z takových prvků je formát Makefile podporovaný nejpoužívanějšími nástroji ( Automake , CMake , imake , qmake , nmake , wmake , Apache Ant , Apache Maven , OpenMake Meister , Gradle ). Klíčovými požadavky na automatizační nástroje jsou podpora technologií kontinuální integrace , zejména neustálé „ noční sestavení “ [1] [2] [3] , správa závislostí zdrojového kódu, podpora rozdílového sestavení, upozornění, když se zdrojový kód (po sestavení) shoduje s existující binární soubory, poskytující pohodlné zprávy o výsledcích kompilace a propojení, automatické spouštění testů a podmíněné provádění v závislosti na výsledcích pasáže.
Typy automatizace používané v různých nástrojích:
Historicky vývojáři používali automatizaci sestavení k volání kompilátorů a linkerů ze skriptu sestavení, na rozdíl od volání kompilátoru z příkazového řádku . Je docela snadné předat jeden zdrojový modul kompilátoru na příkazovém řádku a poté linkeru, aby vytvořil konečný objekt. Při pokusu o kompilaci nebo propojení mnoha modulů se zdrojovým kódem a v určitém pořadí se však ruční provádění tohoto procesu pomocí příkazového řádku zdá příliš nepohodlné. Mnohem atraktivnější alternativou je skriptovací jazyk podporovaný utilitou Make . Tento nástroj umožňuje psát sestavení skriptů, definovat pořadí, ve kterém jsou volány, kompilaci a propojovat kroky pro sestavení programu. GNU Make [4] také poskytuje další funkce, jako je například „makedepend“, které vám umožňují specifikovat podmínky pro zahrnutí zdrojového kódu v každé fázi sestavení. To byl začátek automatizace montáže. Hlavním cílem bylo automatizovat volání kompilátorů a linkerů. Jak proces sestavování rostl a byl stále složitější, začali vývojáři přidávat akce před a po volání kompilátoru, jako je kontrola ( angl. check-out ) verzí zkopírovaných objektů v testovacím systému. Pojem „automatizace sestavení“ již zahrnuje správu a akce před a po kompilaci a propojení, stejně jako akce během kompilace a propojení.
V roce 2000 učinila řešení pro správu sestav automatizovaný proces sestavování ještě pohodlnějším a ovladatelnějším. Existují komerční i open source řešení pro provádění automatizované montáže a řízení tohoto procesu. Některá řešení mají za cíl automatizovat kroky před a po volání skriptů sestavení, zatímco jiná jdou nad rámec kroků před a po zpracování skriptu a plně automatizují proces kompilace a propojení, čímž eliminují potřebu ručního skriptování. Tyto nástroje jsou užitečné pro nepřetržitou integraci , kde jsou vyžadována častá volání kompilace a zpracování přechodných sestavení.
Distribuované sestavení znamená, že volání kompilátoru a linkeru lze předat více počítačům a urychlit sestavení. Proces distribuovaného sestavení musí mít určitou logiku, aby správně určil závislosti ve zdrojovém kódu, aby mohl provést kroky kompilace a propojení na různých počítačích. Řešení pro automatizaci sestavení musí být schopno tyto závislosti spravovat, aby bylo možné provádět distribuovaná sestavení. Některé sestavovací nástroje dokážou tyto vztahy rozpoznat automaticky ( Rational ClearMake Distributed [5] , Electric Cloud ElectricAccelerator [6] ), zatímco jiné závisí na vstupu uživatele ( Platform LSF lsmake [7] ). Automatizaci sestavování, která je schopna třídit vztahy závislostí zdrojového kódu, lze také nakonfigurovat tak, aby prováděla akce kompilace a propojení v režimu paralelního provádění. To znamená, že kompilátory a linkery lze volat ve vícevláknovém režimu na stroji konfigurovaném s více než jedním jádrem procesoru.
Ne všechny nástroje pro automatizaci sestavení mohou provádět distribuovaná sestavení. Většina z nich implementuje pouze podporu pro distribuované zpracování (tj. posílat úlohy pro provádění různých skriptů na různé stroje, například do fáze po provedení mnoha testovacích skriptů). Většina řešení, která podporují distribuovaná sestavení, také dokáže zpracovat pouze kód C a C++ . Řešení pro automatizaci sestavení, která podporují distribuované zpracování, jsou často založená na Make a nepodporují Maven nebo Ant .
Příkladem distribuovaného řešení sestavení je IncrediBuild společnosti Xoreax [8] pro platformu Microsoft Visual Studio . To může vyžadovat specifickou konfiguraci softwarového prostředí, aby úspěšně fungovalo na distribuované platformě (je třeba zadat umístění knihoven, proměnných prostředí atd.).
Montážní automatizační systémy | |
---|---|