Automatizace montáže

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 25. května 2022; ověření vyžaduje 1 úpravu .

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:

Historie

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á sestava

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

Poznámky

  1. Správa sestavení a vydání | freshmeat.net Archivováno z originálu 30. září 2007.
  2. IBM developerWorks: Údržba webu . Získáno 4. října 2009. Archivováno z originálu 2. března 2009.
  3. Buildbot (downlink) . Získáno 4. října 2009. Archivováno z originálu 6. prosince 2010. 
  4. GNU Make - GNU Project - Free Software Foundation (FSF) . Získáno 4. října 2009. Archivováno z originálu dne 5. července 2006.
  5. Dr. Dobb's Distributed Loadbuilds , < http://www.ddj.com/architect/184405385 > . Staženo 13. dubna 2009. 
  6. Dr. Dobb's Take My Build, Please < http://www.ddj.com/architect/184415472 > 
  7. LSF User's Guide – Using lsmake , < http://www.lle.rochester.edu/pub/support/lsf/10-lsmake.html > . Získáno 13. dubna 2009. Archivováno 7. října 2007 na Wayback Machine 
  8. Distribuované sestavení Visual Studio , < http://www.xoreax.com/solutions_vs.htm > . Získáno 8. dubna 2009. Archivováno 12. dubna 2009 na Wayback Machine 

Literatura