Integrare continuă configurarea Hudson

În această serie de tutori vom explora un proces discutat foarte rar (dar foarte valoros) de dezvoltare a unui software care este dezamăgitor de absent în lumea iOS și mobil: Integrare continuă.


Disponibile și în această serie:

  1. Integrare continuă: introducerea seriei
  2. Integrare continuă: configurarea Tomcat
  3. Integrare continuă: configurarea Hudson
  4. Integrare continuă: Scrierea Xcode Builds
  5. Integrare continuă: Îmbunătățiri scripturi

Unde am plecat

În partea a 1-a, am discutat conceptul de Integrare continuă și modul în care ne poate ajuta să dezvoltăm mai rapid software-ul. În partea a doua, am demonstrat cum să instalăm "Apache Tomcat", care este serverul web care va găzdui software-ul nostru CI.


Introducerea lui Hudson

Hudson este un server open-source de integrare continuă, scris în Java. Acesta este unul dintre cele mai populare servere CI utilizate împreună cu Jenkins și Atlassian's Bamboo. Folosim Hudson pentru că:

  • Este ușor de instalat și configurat.
  • Este ușor de folosit.
  • Suportul robust pentru plugin-uri este disponibil.
  • Este gratis!

Hudson este menținut în prezent de Oracle, care a declarat că intenționează să continue să sprijine și să dezvolte Hudson împreună cu comunitatea.


Ce face Hudson?

Hudson joacă un rol important în procesul CI. Monitorizează depozitul de coduri și verifică continuu actualizările. După ce a determinat existența unei actualizări, va face o actualizare / tragere și va începe construirea. Este important să rețineți că Hudson nu este responsabil pentru acțiunea de construcție în sine. Se poate numi doar un script (pe care îl vom scrie) care va face construirea și arhivarea. Odată ce scenariul a început, Hudson va monitoriza scenariul. Dacă nu reușește, va raporta o construcție ruptă.


Pasul 1: Descărcați și instalați Hudson

Setarea lui Hudson este foarte ușoară. În primul rând, navigați la site-ul web al lui Hudson la http://hudson-ci.org/, apoi faceți clic pe link-ul de descărcare pentru cea mai recentă versiune de producție (2.1.2 în momentul redactării), aceasta va descărca un fișier * .war.

După terminarea descărcării, redenumiți fișierul la "hudson.war" și puneți fișierul în folderul "webapps" al Tomcat:

 mv hudson.war / usr / local / tomcat / webapps /

Dacă serverul rulează în prezent, reporniți-l executând scriptul de închidere, așteptați câteva secunde, apoi executați din nou scriptul de pornire. După ce sa terminat, deschideți un browser și navigați la:

http: // localhost: 8080 / hudson

Hudson vă va spune că se pregătește. Odată ce ați terminat, veți vedea ecranul principal al lui Hudson.



Pasul 2: Creați-vă proiectul

Acum, când Hudson este în funcțiune, trebuie să înființăm un proiect sau un "loc de muncă". Acest loc de muncă se va referi la un proiect pe care dorim să îl adăugăm la CI.

Acest "loc de muncă" va fi responsabil pentru monitorizarea depozitului nostru, pentru a rămâne la curent și pentru a construi proiectul. Faceți clic pe o nouă activitate și introduceți numele proiectului / aplicației ca denumire de activitate. Selectați "Construiți un proiect de software liber" ca tip de activitate. Acest lucru ne va oferi flexibilitatea de a personaliza munca la nevoile noastre. Faceți clic pe "ok" când ați terminat.


Apoi, trebuie să configurați setările proiectului. Secțiunile importante de pe această pagină sunt "Sursa
Managementul codului "," Construirea declanșatorilor "și" Construiți ".


Pasul 3: Configurarea gestionării codului sursă

În "Managementul codului sursă", alegem tipul de depozit pe care îl folosim și se află URL-ul. În acest exemplu, folosesc GIT, dar Subversion urmează același proces.


Rețineți că modul în care vă conectați la depozit va defini cum se configurează această secțiune:

HTTPS

Este posibil să aveți o problemă dacă utilizați HTTPS (nume de utilizator și parolă) pentru a vă conecta cu un depozit GIT. În prezent, Hudson nu acceptă cu ușurință autentificarea parolei pentru GIT.

Pentru cei care utilizează SVN, pur și simplu introduceți adresa URL a repozitorului dvs. și ar trebui să vă solicite un nume de utilizator și o parolă. Pentru utilizatorii GIT, încercați să introduceți detalii în felul următor:

 https: // nume de utilizator: password@serverurl/username/reponame.git

Acest lucru ar trebui să funcționeze pentru dvs. dacă nu aveți un simbol '@' în parola dvs., caz în care nu veți putea utiliza HTTPS pentru autentificarea dvs., va trebui să utilizați SSH.

SSH

Dacă utilizați SSH (utilizând chei private / publice), atunci va trebui să vă asigurați că generați o cheie SSH pentru serverul dvs. de construire și adăugați-l în managerul dvs. de depozit.

De asemenea, va trebui să vă asigurați că serverele de depozit RSA sunt adăugate în lista gazdelor cunoscute înainte de a începe construirea. Cea mai ușoară modalitate de a face acest lucru este conectarea la server prin SSH:

 ssh -T [email protected]

Ar trebui să vedeți ceva de genul:


Nu vă faceți griji dacă vedeți o eroare ca cea de mai sus după ce ați adăugat amprenta RSA pe lista dvs. de gazde cunoscute. Aceasta înseamnă, de obicei, că serverul nu permite accesul în shell. Cel mai important lucru este că ne putem conecta și cunoaștem identitatea serverului.


Pasul 4: Setați declanșatorul de configurare

Trebuie să-i spunem lui Hudson când vrem să înceapă construcția. Vom analiza repo-ul în fiecare minut pentru a vedea dacă a avut loc o schimbare.

Verificați caseta "Poll SCM" și introduceți (ca în imaginea de mai jos):

* * * * *


Nu trebuie să faceți un sondaj în fiecare minut. Dacă doriți să o schimbați numai pentru a face acest lucru zilnic sau pe oră, puteți seta și asta. Rețineți, totuși, că, cu atât mai des vom face un sondaj în repo, cu cât va fi mai mult procesul nostru.


Pasul 5: Adăugați comanda Build

În cele din urmă, trebuie să compilăm proiectul și să îl exportăm acolo unde este cazul. Pentru a face acest lucru, trebuie să adăugăm un pas de construire în secțiunea de construire.

Faceți clic pe butonul "Adăugați o etapă de construire" și selectați "Executați Shell". Apoi vom adăuga o comandă care execută scriptul de construire din directorul proiectului (nu am adăugat încă acest lucru, o vom face mai târziu).


Șirul "Workspace" din imaginea de mai sus se referă la directorul de lucru al proiectului, așa cum există în Hudson. Acesta este nivelul maxim al depozitului dvs..

Când ați terminat, faceți clic pe "salvați". Veți fi duși la ecranul de construcție principal și după o secundă sau două vă veți vedea proiectul dvs. face prima construcție!


Pasul 6: Urmăriți eșecul construirii

După ce ați salvat setările proiectului, veți fi returnați în tabloul de bord pentru Locuri de muncă. După câteva secunde, veți vedea o pornire a construcției. Faceți clic pe pictograma terminal mic pentru a vedea ieșirea construirii.


Putem vedea ce face Hudson. A detectat o schimbare în CSM (în acest caz este prima conexiune) și continuă să închidă codul repozitorului în spațiul de lucru. Ea face toate acestea cu succes, cu toate acestea nu reușește atunci când încearcă să execute script-ul nostru de a construi.

Putem vedea de la ieșire că nu a reușit deoarece fișierul script-ului de construire nu există încă. Să adăugăm asta proiectului nostru și să îl angajăm în depozit.



Pasul 7: Actualizați depozitul

Adăugați un dosar numit "Scripturi" în cel mai înalt nivel al depozitului dvs. Odată creat, utilizați orice editor de text pentru a crea un fișier numit "build_script.sh" în directorul "Scripts" cu următorul text:

 #! / bin / sh echo "Vom construi mai tarziu :)"

Tot ce face acest script este să imprimați un șir la linia de comandă. Vom discuta cum să construiți proiectul următorului tutorial, dar pentru moment trebuie doar să adăugăm scenariul în depozit.

Odată ce fișierul a fost creat, adăugați-l la depozit. După un minut, ar trebui să vedeți că Hudson începe o nouă construcție. Faceți clic pe pictograma terminal pentru a vizualiza ieșirea.

Tot ce merge bine ar trebui să vedeți ceva de genul:


Acum, că fișierul există, construirea nu eșuează. Dacă vă uitați atent, puteți vedea și rezultatul scenariului nostru pe ultima linie a treia.


Pasul 8: Explorați Hudson

Înainte de a termina, este important să explorați câteva caracteristici ale lui Hudson.

Unde Hudson ține fișierele

Dacă doriți vreodată să vedeți directorul hudson, căutați sub folderul ascuns ".hudson" din dosarul dvs. de utilizator. Puteți accesa această opțiune selectând go-> go to folder "(în finder) și introducând:

/ Utilizatori //.hudson

Aici se petrece magia. Tot codul dvs. este păstrat într-un dosar spațiu de lucru în cadrul serviciului relevant. Pentru proiectul meu (AwesomeApp) codul va fi păstrat în:

/Users/abury/.hudson/jobs/AwesomeApp/Workspace

Este important să înțelegeți unde se află fișierele în directorul Hudson. Este posibil să aveți un fișier ignorat pe care trebuie să-l adăugați manual sau o problemă SVN pe care trebuie să o reparați.

Tabloul de bord al proiectului

Tabloul de bord al proiectului vă permite să vizualizați tot felul de informații care sunt utile pentru monitorizarea sănătății construcției. Puteți vedea un jurnal al modificărilor recente (inclusiv o modificare care a rupt recent construirea).


De asemenea, puteți explora spațiul de lucru din browser și puteți vizualiza fișierele aflate în prezent în spațiul de lucru.

Caracteristici suplimentare

Hudson vă poate notifica rezultatul unei construcții recente în mai multe moduri. Acesta menține un feed RSS pe care îl puteți monitoriza, vă poate trimite e-mailuri, există chiar și un plugin pentru a face vorbi! Când aveți ceva timp să aruncați o privire la configurarea lui Hudson pentru a utiliza aceste funcții.

Data viitoare

În următorul articol vom trece prin scrierea scriptului de construire care va compila și semna codul dvs. într-un fișier .ipa gata de a fi instalat pe un iPhone sau iPad. Vom acoperi principiile bash, comenzile folosite și cum să depășim capcanele comune. Prindeți data viitoare!

Cod