Programovanie

Nepretržitá integrácia s Hudson

Nepretržitá integrácia sa stala bežnou praxou pre tímy zamerané na zabezpečenie kvality kódu počas celého životného cyklu vývoja softvéru. V tomto článku predstavuje Nicholas Whitehead Hudson, populárny server CI s otvoreným zdrojovým kódom. Naučte sa, ako nastaviť server Hudson vo svojom vývojovom prostredí aplikácií (príklady sú uvedené pre Windows XP s Tomcat 6 alebo Ubuntu Linux s JBoss AS), získajte prehľad o mnohých možnostiach konfigurácie, ktoré Hudson poskytuje, potom implementujte automatické zostavenie, otestujte, a proces podávania správ pre príkladný projekt. Úroveň: Začiatočník

Nepretržitá integrácia (CI) je sada postupov zameraných na uľahčenie a stabilizáciu procesu vytvárania softvérových zostavení. CI pomáha vývojovým tímom pri nasledujúcich výzvach:

  • Automatizácia zostavovania softvéru: Pomocou CI môžete spustiť proces vytvárania softvérového artefaktu stlačením tlačidla, podľa vopred definovaného plánu alebo v reakcii na zadanú udalosť. Ak chcete vytvoriť softvérový artefakt zo zdroja, váš proces vytvárania nie je viazaný na konkrétne IDE, počítač alebo osobu.
  • Nepretržité automatizované overovanie zostavenia: Systém CI je možné nakonfigurovať tak, aby neustále vykonával zostavy, keď sa kontroluje nový alebo upravený zdrojový kód. To znamená, že zatiaľ čo tím vývojárov softvéru pravidelne kontroluje nový alebo upravený kód, systém CI nepretržite overuje, či nedošlo k narušeniu zostavy. novým kódom. To znižuje potrebu, aby vývojári vzájomne kontrolovali zmeny vzájomne závislých komponentov.
  • Nepretržité automatizované testovanie zostavenia: Rozšírenie overovania zostavenia, tento proces zaisťuje, že nový alebo upravený kód nespôsobí zlyhanie sady preddefinovaných testov na zabudovaných artefaktoch. Pri overovaní aj pri testovaní zostavy môžu zlyhania spustiť oznámenia pre zainteresované strany, čo naznačuje, že zostava alebo niektoré testy zlyhali.
  • Automatizácia postupu po zostavení: Životný cyklus zostavenia softvérového artefaktu môže vyžadovať aj ďalšie úlohy, ktoré je možné automatizovať po dokončení overenia a testovania zostavenia, napríklad generovanie dokumentácie, zabalenie softvéru a nasadenie artefaktov do spusteného prostredia alebo do softvérového úložiska. Týmto spôsobom môžu byť artefakty rýchlo sprístupnené používateľom.

Na implementáciu servera CI potrebujete minimálne prístupné úložisko zdrojového kódu (a zdrojový kód v ňom), sadu skriptov a postupov na zostavenie a sadu testov na vykonanie proti vytvoreným artefaktom. Obrázok 1 načrtáva základnú štruktúru systému CI.

Komponenty systému prichádzajú do hry v nasledujúcom poradí:

  1. Vývojári kontrolujú nový a upravený kód v úložisku zdrojového kódu.
  2. Server CI vytvára vyhradený pracovný priestor pre každý projekt. Keď sa požaduje alebo naplánuje nové zostavenie, zdroj sa načíta z úložiska do tohto pracovného priestoru, kde sa potom zostavenie vykoná.
  3. Server CI vykoná proces zostavenia na novovytvorenom alebo obnovenom pracovnom priestore.
  4. Po dokončení zostavenia môže server CI voliteľne vyvolať definovanú testovaciu sadu na nové artefakty. Ak zostavenie zlyhá, zaregistrované osoby môžu byť informované e-mailom, okamžitými správami alebo iným spôsobom.
  5. Ak je zostavenie úspešné, artefakty sa zabalia a prenesú do cieľa nasadenia (napríklad na aplikačný server) a / alebo sa uložia ako nový verzovaný artefakt v softvérovom úložisku. Toto úložisko môže byť súčasťou servera CI alebo môže ísť o externé úložisko, napríklad súborový server alebo stránky na distribúciu softvéru, ako je Java.net alebo SourceForge. Úložisko zdrojových kódov a úložisko artefaktov môžu byť oddelené a niektoré servery CI je skutočne možné používať aj bez akéhokoľvek formálneho systému riadenia zdrojov.
  6. Servery CI majú zvyčajne nejaký druh konzoly, kde je možné konfigurovať a ladiť projekty a kde je možné vydávať požiadavky na operácie, ako sú okamžité zostavenia ad hoc, generovanie správ alebo načítanie vytvorených artefaktov.

Hudson: Server pre nepretržitú integráciu

Neustála integrácia si za posledných niekoľko rokov získala na popularite a dnes máte na výber z niekoľkých serverov CI, komerčných i bezplatných. Osobne som použil štyri servery CI predtým, ako mi kolega odporučil pozrieť sa na Hudsona. Okamžite ma to zaujalo. Aj keď som pôvodne predpokladal, že Hudson nie je dobre známy, prieskum na stránkach Java Power Tools ukazuje, že je to medzi respondentmi najpoužívanejší server CI a získal (v čase písania tohto článku) 37,8 percenta všetkých hlasov.

Podporované SCM

Hudson má integrovanú podporu pre Subversion hneď po vybalení z krabice a na integráciu s CVS je potrebné len malé množstvo konfigurácie za predpokladu, že je klient CVS nainštalovaný na hostiteľovi Hudson. Niekoľko ďalších riešení na správu zdrojových kódov (SCM) je podporovaných vo forme doplnkov Hudson. V čase písania tohto článku sú podporované nasledujúce SCM:

  • Accurev
  • BitKeeper
  • ClearCase
  • Git
  • Mercurial
  • Perforce
  • StartTeam
  • Team Foundation Server
  • Visual SourceSafe
  • URL SCM (špeciálny doplnok SCM, ktorý umožňuje použitie adries URL pre SCM)

V tomto článku budem používať Subversion a zdrojové úložisko na Java.net, takže nebudete musieť inštalovať žiadny z týchto doplnkov. (Mimochodom, poznám niekoho, kto pracuje na pluginu MKS SourceIntegrity Hudson. Ak vás to zaujíma, pošlite mi e-mail.)

Hudson je bezplatný produkt s otvoreným zdrojovým kódom hostovaný na serveri Java.net. Pôvodne ho napísal Kohsuke Kawaguchi, pracovník inžinierstva spoločnosti Sun Microsystems, ktorý oznámil svoje vydanie na svojom blogu vo februári 2005. Od tej doby mal Hudson približne 154 vydaní.

Tu je niekoľko dôvodov, prečo sa mi Hudson páči, a preto by som vám ho odporučil po vylúčení akýchkoľvek neobvyklých požiadaviek:

  • Zo všetkých produktov CI, ktoré som použil, je inštalácia a konfigurácia zďaleka najjednoduchšia.
  • Jeho webové používateľské rozhrania sú veľmi priateľské, intuitívne a pohotové, v mnohých prípadoch poskytujú okamžitú spätnú väzbu s podporou Ajaxu na jednotlivé konfiguračné polia.
  • Hudson je založený na prostredí Java (čo je užitočné, ak ste vývojárom prostredí Java), ale neobmedzuje sa iba na tvorbu softvéru založeného na prostredí Java.
  • Hudson je čisto komponentizovaný a ponúka dobre definované a zdokumentované rozšírenie API vo forme doplnkov Hudson. To následne viedlo k veľkej knižnici doplnkov Hudson, ktoré rozširujú funkčnosť servera; sú voľne dostupné a dajú sa nainštalovať z konzoly Hudson.

Inštalácia aplikácie Hudson: Windows XP alebo Ubuntu Linux

Ak chcete používať Hudson, budete potrebovať prístupný a podporovaný systém riadenia zdrojov (zoznam nájdete na bočnom paneli „Podporované SCM“), zdroj, ktorý je možné zabudovať do artefaktu, a funkčný skript na zostavenie. Okrem toho všetko, čo skutočne potrebujete na inštaláciu a konfiguráciu fungujúceho servera Hudson, je inštalácia Java verzie 1.5 alebo vyššej a inštalačný súbor Hudson, ktorý má formu webového archívu Java EE (WAR). Server môžete veľmi jednoducho spustiť pomocou nasledujúceho príkazového riadku:

C: \ hudson> java -jar hudson.war

Pravdepodobne je však bežnejšie nasadiť Hudson na kontajner servletu Java, ktorý je založený na špecifikáciách Servlet 2.4 a JSP 2.0, ako sú GlassFish, Tomcat, JBoss alebo Jetty. V ďalších častiach vás prevediem dvoma scenármi inštalácie Hudson: jedným s použitím Tomcat 6 v systéme Windows XP a druhým v prostredí JBoss 4.2.3 v systéme Ubuntu Linux. (JBoss AS 5.0 bol vydaný po dátume odoslania tohto článku.)

Inštalácia aplikácie Hudson: Tomcat 6 a Windows XP

Budem predpokladať, že vo svojom počítači so systémom Windows XP už máte nainštalovanú verziu 1.5 alebo vyššiu. Podľa nasledujúcich pokynov nainštalujete Tomcat 6.0.18 pomocou Inštalátora služby Windows, takže Hudson sa spustí okamžite po zavedení systému Windows XP a bude bežať na pozadí, aj keď nie je prihlásený žiadny používateľ. Súbor na stiahnutie pre Tomcat je apache-tomcat- 6.0.18.exe, ktorý by ste mali spustiť na spustenie inštalácie Tomcat.

Inštalácia Tomcat vás vyzve na výber možností inštalácie. Určite vyberte Vlastné možnosti a potom Služby, ako je to znázornené na obrázku 2, aby Tomcat fungoval ako služba.

Ďalej vyberte adresár, do ktorého chcete nainštalovať Tomcat, ako je to znázornené na obrázku 3. Dôrazne vám odporúčam zvoliť adresár bez medzier. Môžete sa mi poďakovať neskôr.

Teraz sa vás inštalátor opýta, na ktorom porte chcete počúvať. Predvolený port je 8080, čo je pravdepodobne v poriadku; len sa uistite, že nemáte inú aplikáciu používajúcu tento port. Ak tak urobíte, Tomcat sa nespustí správne. Tiež sa zobrazí výzva na zadanie používateľského mena a hesla správcu Tomcat. To všetko je znázornené na obrázku 4.

Inštalátor vás potom požiada o poskytnutie umiestnenia Java JRE, ktoré ste nainštalovali. Ako vidíte na obrázku 5, použil som Sun Java 1.6.0_07.

Akonáhle kliknete Inštalácia, inštalácia by mala bežať do konca a služba sa spustí. Môžete sa ubezpečiť, že Tomcat funguje správne, nasmerovaním webového prehliadača na // localhost: 8080 (nahradením príslušného názvu alebo adresy IP pre localhost, ak nepoužívate webový prehliadač spustený na počítači, kde je nainštalovaný Tomcat). Zobrazená webová stránka by mala vyzerať asi ako snímka obrazovky na obrázku 6.

Ak chcete teraz nainštalovať Hudson, skopírujte súbor hudson.war do podadresára webapps vášho inštalačného adresára Tomcat. Ak ste použili rovnaký inštalačný adresár uvedený na obrázku 3, bude to C: \ Tomcat6 \ webapps. Tomcat nasadí súbory WAR za horúca, ale najjednoduchšie je teraz reštartovať Tomcat. Existujú dva spôsoby, ako to urobiť. Prvým je otvorenie systému DOS a zadanie nasledujúcich príkazov:

 C: \ Tomcat6> čisté zastavenie Tomcat6 C: \ Tomcat6> čisté spustenie Tomcat6

Druhou možnosťou je otvorenie appletu Služby. Tento applet sa nachádza v skupine Nástroje na správu v ovládacom paneli, ktorú nájdete kliknutím na tlačidlo Štart na paneli nástrojov systému Windows a následným výberom nastavenie a potom Ovládací panel. V applete Služby vyhľadajte pomenovanú službu Apache Tomcat a potom kliknite na ikonu Reštart tlačidlo. To je znázornené na obrázku 7.

Hudson by mal byť teraz nainštalovaný. Môžete to overiť nasmerovaním svojho webového prehliadača na // localhost: 8080 / hudson. Hlavná obrazovka Hudson je zobrazená na obrázku 8.

To je všetko! Ak vám vyhovuje vývojové prostredie aplikácií založené na Windows XP a Tomcat, máte všetko pripravené. Ak dávate prednosť systému so systémom JBoss a Ubuntu Linux, čítajte ďalej.

Inštalácia Hudson: JBoss 4.2.3 na Ubuntu Linux 8.04 (Hardy Heron)

Ak chcete nainštalovať Sun Java 1.6 na Ubuntu, otvorte shell a vykonajte nasledujúci príkaz:

 sudo apt-get nainštalovať sun-java6-jdk

Pri vydávaní a sudo príkaz, zobrazí sa výzva na zadanie hesla.

Upozorňujeme, že existuje niekoľko spôsobov, ako nainštalovať JBoss; technikou tu načrtnutou vytvoríte dedikovaný jboss používateľ. Toto sa považuje za najlepší postup a je vhodnejšie inštalovať JBoss do vlastného domovského adresára. Postup tu uvedený bol zhustený z užitočného popisu na fórach Ubuntu.

Najskôr si musíte stiahnuť balíček JBoss 4.2.3.GA. Vyhľadajte súbor s názvom jboss-4.2.3.GA.zip.

Ďalej budete musieť vytvoriť používateľa, domovský adresár a skupinu s celými menami jboss. Táto skupina nie je pohodlnosťou, ktorú tento článok skúma; umožní vám rozšíriť oprávnenie JBoss na ďalších používateľov vášho servera Ubuntu.

Výpis 1 zobrazuje komentované príkazy na vytvorenie súboru jboss domovský adresár, používateľ a skupina a potom nainštalujte server JBoss. Pred niektorými príkazmi je predpona sudo pretože sú to príkazy s oprávnením root.

Zoznam 1. Vytvorenie účtu jboss a inštalácia servera

echo Vytvorte skupinu jboss sudo groupadd jboss echo Vytvorte používateľa jboss, definujte bash ako predvolený shell používateľa a / home / jboss ako domovský adresár echo a urobte z používateľa jboss súčasť skupiny jboss sudo useradd -s / bin / bash - d / home / jboss -m -g jboss jboss echo Skopírujte súbor jboss-4.2.3.GA do adresára / home / jboss alebo ho stiahnite priamo do tohto adresára sudo mv jboss-4.2.3.GA / home / jboss echo Zmeniť vlastníka súboru do jboss sudo chown jboss: jboss /home/jboss/jboss-4.2.3.GA echo Prihláste sa do účtu jboss sudo su jboss echo Prejdite do domovského adresára jboss cd ~ echo Rozbaľte súbor jboss-4.2.3. GA unzip jboss-4.2.3.GA echo Vytvorte symbolický odkaz „jboss“ pre „jboss-4.2.3.GA“. echo To vám umožňuje meniť verzie JBoss s minimálnymi zmenami ln -s jboss-4.2.3.GA jboss

Ak príkaz unzip ešte nie je nainštalovaný, nainštalujte ho nasledujúcim príkazom (keď ste prihlásený ako používateľ s povoleným sudo):

Sudo apt-get nainštalovať rozbaliť

Server JBoss je teraz v podstate nainštalovaný. Server môžete spustiť pomocou nasledujúceho príkazu:

/home/jboss/jboss/bin/run.sh

V tomto príklade však namiesto toho nainštalujete skript automatického spustenia, aby sa služba spustila automaticky pri spustení hostiteľa. Stiahnutie JBoss je dodávané s tromi rôznymi skriptmi int.d, ale každý je potrebné vylepšiť; môžete si stiahnuť skript jboss-init.sh, ktorý umožní automatické spustenie a zastavenie servera. Potom spustite príkazy zobrazené v zozname 2.

$config[zx-auto] not found$config[zx-overlay] not found