Automatizare asamblare

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 25 mai 2022; verificarea necesită 1 editare .

Automatizarea build  -ului este o etapă a procesului de dezvoltare software care automatizează o gamă largă de sarcini pe care programatorii le îndeplinesc în activitățile lor zilnice.

Include acțiuni precum:

Principalul mijloc de automatizare a asamblarii este utilizarea unui instrument specializat; unul dintre instrumentele timpurii și semnificative din punct de vedere istoric este utilitarul make , care a determinat în mare măsură stilul și metodele pentru instrumentele care au apărut mai târziu . Un astfel de element este formatul Makefile suportat de cele mai utilizate instrumente ( Automake , CMake , imake , qmake , nmake , wmake , Apache Ant , Apache Maven , OpenMake Meister , Gradle ). Cerințele cheie pentru instrumentele de automatizare sunt suportul pentru tehnologii de integrare continuă , în special, „ construcții nocturne ” constante [1] [2] [3] , managementul dependenței de codul sursă, suportul diferențial de construcție, notificarea când codul sursă se potrivește (după build) cu fișierele binare existente, oferind rapoarte convenabile cu privire la rezultatele compilației și legăturii, rularea automată a testelor și execuția condiționată în funcție de rezultatele pasajului.

Tipuri de automatizare utilizate în diverse instrumente:

Istorie

Din punct de vedere istoric, dezvoltatorii au folosit automatizarea build-ului pentru a apela compilatoare și linkere dintr-un script de build, spre deosebire de apelarea compilatorului din linia de comandă . Este destul de ușor să transmiteți un modul sursă compilatorului pe linia de comandă și apoi linkerului pentru a crea obiectul final. Cu toate acestea, atunci când încercați să compilați sau să legați multe module cu codul sursă și într-o anumită ordine, efectuarea acestui proces manual folosind linia de comandă pare prea incomod. O alternativă mult mai atractivă este limbajul de scriptare suportat de utilitarul Make . Acest instrument vă permite să scrieți scripturi de construcție, definind ordinea în care sunt apelate, pașii de compilare și legare pentru construirea programului. GNU Make [4] oferă, de asemenea, caracteristici suplimentare, cum ar fi „makedepend”, de exemplu, care vă permit să specificați condiții pentru includerea codului sursă în fiecare etapă a construcției. Acesta a fost începutul automatizării asamblarii. Scopul principal a fost automatizarea apelurilor către compilatoare și linkere. Pe măsură ce procesul de construire a crescut și a devenit mai complex, dezvoltatorii au început să adauge acțiuni înainte și după apelurile compilatorului, cum ar fi verificarea ( de exemplu ,  check-out ) versiuni ale obiectelor copiate pe sistemul de testare. Termenul „automatizare a construirii” include deja managementul și acțiunile înainte și după compilare și conectare, precum și acțiunile din timpul compilării și conectării.

În anii 2000, soluțiile de gestionare a construcției au făcut procesul de construcție automatizat și mai convenabil și mai ușor de gestionat. Există atât soluții comerciale, cât și soluții open source pentru a realiza asamblarea automată și a controla acest proces. Unele soluții urmăresc automatizarea pașilor înainte și după apelarea scripturilor de compilare, în timp ce altele depășesc pașii înainte și după procesarea scripturilor și automatizează complet procesul de compilare și legare, eliminând nevoia de scriptare manuală. Astfel de instrumente sunt utile pentru integrarea continuă , unde sunt necesare apeluri frecvente de compilare și procesarea build-urilor intermediare.

Asamblare distribuită

Construirea distribuită înseamnă că apelurile la compilator și linker pot fi transmise la mai multe computere pentru a accelera construirea. Un proces de construire distribuit trebuie să aibă o anumită logică pentru a determina corect dependențele din codul sursă pentru a efectua pașii de compilare și link pe diferite mașini. Soluția de automatizare a build-ului trebuie să poată gestiona aceste dependențe pentru a realiza build-uri distribuite. Unele instrumente de build pot recunoaște automat aceste relații ( Rational ClearMake distribuit [5] , Electric Cloud ElectricAccelerator [6] ), în timp ce altele depind de intrarea utilizatorului ( Platform LSF lsmake [7] ). Automatizarea build-ului, care este capabilă să sorteze relațiile de dependență de codul sursă, poate fi, de asemenea, configurată pentru a efectua acțiuni de compilare și legătură în modul de execuție paralelă. Aceasta înseamnă că compilatoarele și linkerii pot fi apelate în modul multi-threaded pe o mașină configurată cu mai mult de un nucleu de procesor.

Nu toate instrumentele de automatizare a construcțiilor pot realiza versiuni distribuite. Majoritatea dintre ele implementează doar suport pentru procesarea distribuită (adică trimite sarcini pentru a executa diferite scripturi către diferite mașini, de exemplu, la etapa după executarea multor scripturi de testare). De asemenea, majoritatea soluțiilor care acceptă versiuni distribuite pot gestiona numai codul C și C++ . Soluțiile de automatizare pentru construirea care acceptă procesarea distribuită sunt adesea bazate pe Make și nu acceptă Maven sau Ant .

Un exemplu de soluție de construcție distribuită este IncrediBuild [8] de la Xoreax pentru platforma Microsoft Visual Studio . Acest lucru poate necesita configurarea specifică a mediului software pentru a funcționa cu succes pe o platformă distribuită (trebuie să specificați locația bibliotecilor, variabilele de mediu și așa mai departe).

Note

  1. Gestionarea construcției și lansării | freshmeat.net Arhivat din original pe 30 septembrie 2007.
  2. IBM developerWorks: Întreținerea site-ului . Consultat la 4 octombrie 2009. Arhivat din original pe 2 martie 2009.
  3. Buildbot (link în jos) . Consultat la 4 octombrie 2009. Arhivat din original la 6 decembrie 2010. 
  4. GNU Make - Proiect GNU - Free Software Foundation (FSF) . Consultat la 4 octombrie 2009. Arhivat din original la 5 iulie 2006.
  5. Dr. Loadbuilds distribuite de Dobb , < http://www.ddj.com/architect/184405385 > . Preluat la 13 aprilie 2009. 
  6. Dr. Dobb's Take My Build, please , < http://www.ddj.com/architect/184415472 > 
  7. Ghidul utilizatorului LSF - Utilizarea lsmake , < http://www.lle.rochester.edu/pub/support/lsf/10-lsmake.html > . Extras 13 aprilie 2009. Arhivat 7 octombrie 2007 la Wayback Machine 
  8. Compilări Visual Studio distribuite , < http://www.xoreax.com/solutions_vs.htm > . Extras 8 aprilie 2009. Arhivat 12 aprilie 2009 la Wayback Machine 

Literatură