Byg automatisering er et trin i softwareudviklingsprocessen, der automatiserer en lang række opgaver, som programmører udfører i deres daglige aktiviteter.
Indeholder handlinger som:
Det vigtigste middel til montageautomatisering er brugen af et specialiseret værktøj; et af de tidlige og historisk betydningsfulde værktøjer er make -værktøjet , som i høj grad bestemte stilen og metoderne til værktøjer, der dukkede op senere . Et sådant element er Makefile -formatet, der understøttes af de mest udbredte værktøjer ( Automake , CMake , imake , qmake , nmake , wmake , Apache Ant , Apache Maven , OpenMake Meister , Gradle ). Nøglekravene til automatiseringsværktøjer er understøttelse af kontinuerlige integrationsteknologier , især konstante " natlige builds " [1] [2] [3] , styring af kildekodeafhængighed, differentiel build-understøttelse, meddelelse, når kildekoden matcher (efter build) med eksisterende binære filer, der giver praktiske rapporter om resultaterne af kompilering og sammenkædning, automatisk afvikling af test og betinget udførelse afhængigt af resultaterne af passagen.
Typer af automatisering, der bruges i forskellige værktøjer:
Historisk har udviklere brugt build-automatisering til at kalde compilere og linkere fra et build-script, i modsætning til at kalde compileren fra kommandolinjen . Det er ret nemt at sende et kildemodul til compileren på kommandolinjen og derefter til linkeren for at skabe det endelige objekt. Men når man prøver at kompilere eller linke mange moduler med kildekode, og i en bestemt rækkefølge, virker det for ubelejligt at udføre denne proces manuelt ved hjælp af kommandolinjen. Et meget mere attraktivt alternativ er scriptsproget, der understøttes af Make -værktøjet . Dette værktøj giver dig mulighed for at skrive build-scripts, definere den rækkefølge, de kaldes i, kompileringen og sammenkædningstrinene til opbygning af programmet. GNU Make [4] giver også yderligere funktioner, såsom "makedepend", for eksempel, som giver dig mulighed for at specificere betingelser for at inkludere kildekode på hvert trin af bygningen. Dette var begyndelsen på montageautomatisering. Hovedmålet var at automatisere opkald til compilere og linkere. Efterhånden som byggeprocessen voksede og blev mere kompleks, begyndte udviklere at tilføje handlinger før og efter compiler-kald, såsom kontrol af ( eng. check-out ) versioner af kopierede objekter på testsystemet. Udtrykket "byggeautomatisering" omfatter allerede styring og handlinger før og efter kompilering og sammenkædning, samt handlinger under kompilering og sammenkædning.
I 2000'erne gjorde byggestyringsløsninger den automatiserede byggeproces endnu mere bekvem og overskuelig. Der er både kommercielle og open source-løsninger til at udføre automatiseret montage og kontrollere denne proces. Nogle løsninger sigter mod at automatisere trinene før og efter opkald til build-scripts, mens andre går ud over trinene før og efter scriptbehandling og fuldautomatiserer kompilerings- og linkprocessen, hvilket eliminerer behovet for manuel scripting. Sådanne værktøjer er nyttige til kontinuerlig integration , hvor hyppige kompileringsopkald og behandling af mellemliggende builds er påkrævet.
Distribueret build betyder, at compiler- og linkeropkald kan sendes til flere computere for at fremskynde builds. En distribueret byggeproces skal have en vis logik for korrekt at bestemme afhængighederne i kildekoden for at udføre kompilerings- og linktrinene på forskellige maskiner. Bygningsautomatiseringsløsningen skal være i stand til at håndtere disse afhængigheder for at kunne udføre distribuerede builds. Nogle byggeværktøjer kan genkende disse relationer automatisk ( Rational ClearMake distribueret [5] , Electric Cloud ElectricAccelerator [6] ), mens andre afhænger af brugerinput ( Platform LSF lsmake [7] ). Bygautomatisering, som er i stand til at sortere kildekodeafhængighedsforhold, kan også konfigureres til at udføre kompilerings- og linkhandlinger i parallel eksekveringstilstand. Dette betyder, at compilere og linkere kan kaldes i multi-threaded-tilstand på en maskine, der er konfigureret med mere end én processorkerne.
Ikke alle byggeautomatiseringsværktøjer kan udføre distribuerede builds. De fleste af dem implementerer kun understøttelse af distribueret behandling (det vil sige, sender opgaver til at udføre forskellige scripts til forskellige maskiner, for eksempel til scenen efter at have udført mange testscripts). Desuden kan de fleste løsninger, der understøtter distribuerede builds, kun håndtere C- og C++-kode . Byg automationsløsninger, der understøtter distribueret behandling, er ofte Make-baserede og understøtter ikke Maven eller Ant .
Et eksempel på en distribueret byggeløsning er Xoreax's IncrediBuild [8] til Microsoft Visual Studio -platformen . Dette kan kræve specifik konfiguration af softwaremiljøet for at kunne fungere med succes på en distribueret platform (du skal angive placeringen af biblioteker, miljøvariabler og så videre).
Monteringsautomatiseringssystemer | |
---|---|