Monteringsautomation

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 25 maj 2022; verifiering kräver 1 redigering .

Byggautomatisering  är ett steg i mjukvaruutvecklingsprocessen som automatiserar ett brett utbud av uppgifter som programmerare utför i sina dagliga aktiviteter.

Inkluderar åtgärder som:

Huvudmedlet för monteringsautomatisering är användningen av ett specialiserat verktyg; ett av de tidiga och historiskt betydelsefulla verktygen är make -verktyget , som till stor del bestämde stilen och metoderna för verktyg som dök upp senare . Ett sådant element är Makefile -formatet som stöds av de mest använda verktygen ( Automake , CMake , imake , qmake , nmake , wmake , Apache Ant , Apache Maven , OpenMake Meister , Gradle ). Nyckelkraven för automationsverktyg är stöd för kontinuerliga integrationsteknologier , i synnerhet konstanta " nattliga byggnader " [1] [2] [3] , hantering av källkodsberoende, differentiell konstruktion, avisering när källkoden matchar (efter konstruktion) med befintliga binära filer, tillhandahåller bekväma rapporter om resultaten av kompilering och länkning, automatisk körning av tester och villkorlig exekvering beroende på resultaten av passagen.

Typer av automatisering som används i olika verktyg:

Historik

Historiskt har utvecklare använt byggautomatisering för att anropa kompilatorer och länkare från ett byggskript, i motsats till att anropa kompilatorn från kommandoraden . Det är ganska enkelt att skicka en källmodul till kompilatorn på kommandoraden och sedan till länken för att skapa det slutliga objektet. Men när man försöker kompilera eller länka många moduler med källkod, och i en viss ordning, verkar det för obekvämt att göra denna process manuellt med kommandoraden. Ett mycket mer attraktivt alternativ är skriptspråket som stöds av verktyget Make . Detta verktyg låter dig skriva byggskript, definiera i vilken ordning de anropas, kompileringen och länkningsstegen för att bygga programmet. GNU Make [4] tillhandahåller också ytterligare funktioner, såsom "makedepend", till exempel, som låter dig specificera villkor för att inkludera källkod i varje steg av bygget. Detta var början på monteringsautomatisering. Huvudmålet var att automatisera anrop till kompilatorer och länkare. När byggprocessen växte och blev mer komplex började utvecklare lägga till åtgärder före och efter kompilatoranrop, som att kontrollera ( eng.  check-out ) versioner av kopierade objekt på testsystemet. Begreppet "byggautomatisering" omfattar redan hantering och åtgärder före och efter sammanställning och länkning, samt åtgärder under sammanställning och länkning.

På 2000-talet gjorde bygghanteringslösningar den automatiserade byggprocessen ännu mer bekväm och hanterbar. Det finns både kommersiella och öppen källkodslösningar för att utföra automatiserad montering och kontrollera denna process. Vissa lösningar syftar till att automatisera stegen före och efter anrop av byggskript, medan andra går längre än stegen före och efter skriptbearbetning och helt automatiserar kompilerings- och länkningsprocessen, vilket eliminerar behovet av manuell skriptning. Sådana verktyg är användbara för kontinuerlig integration , där frekventa kompileringsanrop och bearbetning av mellanliggande byggnader krävs.

Distribuerad sammansättning

Distribuerad build innebär att kompilator- och länkanrop kan skickas till flera datorer för att påskynda byggen. En distribuerad byggprocess måste ha viss logik för att korrekt bestämma beroenden i källkoden för att kunna utföra kompilerings- och länkstegen på olika maskiner. Byggautomationslösningen måste kunna hantera dessa beroenden för att kunna utföra distribuerade byggen. Vissa byggverktyg kan känna igen dessa relationer automatiskt ( Rational ClearMake distribuerad [5] , Electric Cloud ElectricAccelerator [6] ), medan andra är beroende av användarinmatning ( Platform LSF lsmake [7] ). Byggautomatisering, som kan sortera källkodsberoenderelationer, kan också konfigureras för att utföra kompilerings- och länkåtgärder i parallellt körningsläge. Detta innebär att kompilatorer och länkare kan anropas i flertrådsläge på en maskin som är konfigurerad med mer än en processorkärna.

Inte alla verktyg för byggnadsautomatisering kan utföra distribuerade konstruktioner. De flesta av dem implementerar bara stöd för distribuerad bearbetning (det vill säga skicka uppgifter för att exekvera olika skript till olika maskiner, till exempel till scenen efter att ha kört många testskript). Dessutom kan de flesta lösningar som stöder distribuerade versioner endast hantera C- och C++-kod . Byggautomationslösningar som stöder distribuerad bearbetning är ofta fabriksbaserade och stöder inte Maven eller Ant .

Ett exempel på en distribuerad bygglösning är Xoreaxs IncrediBuild [8] för Microsoft Visual Studio -plattformen . Detta kan kräva specifik konfiguration av mjukvarumiljön för att fungera framgångsrikt på en distribuerad plattform (du måste ange platsen för bibliotek, miljövariabler och så vidare).

Anteckningar

  1. Bygg- och släpphantering | freshmeat.net Arkiverad från originalet den 30 september 2007.
  2. IBM developerWorks: Underhåll av webbplatsen . Hämtad 4 oktober 2009. Arkiverad från originalet 2 mars 2009.
  3. Buildbot (nedlänk) . Hämtad 4 oktober 2009. Arkiverad från originalet 6 december 2010. 
  4. GNU Make - GNU Project - Free Software Foundation (FSF) . Hämtad 4 oktober 2009. Arkiverad från originalet 5 juli 2006.
  5. Dr. Dobb's Distributed Loadbuilds , < http://www.ddj.com/architect/184405385 > . Hämtad 13 april 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 > . Hämtad 13 april 2009. Arkiverad 7 oktober 2007 på Wayback Machine 
  8. Distribuerade Visual Studio-byggnader , < http://www.xoreax.com/solutions_vs.htm > . Hämtad 8 april 2009. Arkiverad 12 april 2009 på Wayback Machine 

Litteratur