Programování

Kontinuální integrace s Hudson

Kontinuální integrace se stala běžnou praxí pro týmy zaměřené na zajištění kvality kódu během celého životního cyklu vývoje softwaru. V tomto článku představuje Nicholas Whitehead Hudson, oblíbený server CI s otevřeným zdrojovým kódem. Naučte se, jak nastavit server Hudson ve vašem vývojovém prostředí aplikací (příklady jsou uvedeny pro Windows XP s Tomcat 6 nebo Ubuntu Linux s JBoss AS), získejte přehled o mnoha možnostech konfigurace, které Hudson poskytuje, poté implementujte automatizované sestavení, otestujte, a reporting pro příklad projektu. Úroveň: Začátečník

Kontinuální integrace (CI) je sada postupů určených k usnadnění a stabilizaci procesu vytváření sestavení softwaru. CI pomáhá vývojovým týmům s následujícími výzvami:

  • Automatizace vytváření softwaru: S CI můžete zahájit proces sestavení softwarového artefaktu stisknutím tlačítka, v předdefinovaném plánu nebo v reakci na zadanou událost. Pokud chcete vytvořit softwarový artefakt ze zdroje, váš proces sestavení není vázán na konkrétní IDE, počítač nebo osobu.
  • Průběžné automatické ověřování sestavení: Systém CI lze nakonfigurovat tak, aby neustále prováděl sestavování při kontrole nového nebo upraveného zdrojového kódu. To znamená, že zatímco tým vývojářů softwaru pravidelně kontroluje nový nebo upravený kód, systém CI neustále ověřuje, že sestavení není narušeno. podle nového kódu. To snižuje potřebu vývojářů vzájemně si kontrolovat změny vzájemně závislých komponent.
  • Kontinuální automatizované testování sestavení: Rozšíření ověření sestavení, tento proces zajišťuje, že nový nebo upravený kód nezpůsobí selhání sady předdefinovaných testů na vytvořených artefaktech. Při ověřování i testování sestavení mohou selhání aktivovat oznámení zúčastněným stranám, což naznačuje, že sestavení nebo některé testy selhaly.
  • Automatizace postupu po sestavení: Životní cyklus sestavení softwarového artefaktu může také vyžadovat další úkoly, které lze automatizovat po dokončení ověření a testování sestavení, například generování dokumentace, zabalení softwaru a nasazení artefaktů do běžícího prostředí nebo do softwarového úložiště. Tímto způsobem mohou být artefakty rychle zpřístupněny uživatelům.

K implementaci serveru CI potřebujete minimálně přístupné úložiště zdrojového kódu (a zdrojový kód v něm), sadu skriptů a postupů pro sestavení a sadu testů, které je třeba provést proti vytvořeným artefaktům. Obrázek 1 nastiňuje základní strukturu systému CI.

Součásti systému vstupují do hry v následujícím pořadí:

  1. Vývojáři kontrolují nový a upravený kód do úložiště zdrojového kódu.
  2. Server CI vytváří vyhrazený pracovní prostor pro každý projekt. Když je požadováno nebo naplánováno nové sestavení, zdroj se načte z úložiště do tohoto pracovního prostoru, kde se potom sestavení provede.
  3. Server CI provede proces sestavení na nově vytvořeném nebo obnoveném pracovním prostoru.
  4. Po dokončení sestavení může server CI volitelně vyvolat definovanou testovací sadu na nové artefakty. Pokud sestavení selže, mohou být registrovaní jednotlivci informováni e-mailem, rychlou zprávou nebo jinou metodou.
  5. Pokud je sestavení úspěšné, artefakty jsou zabaleny a přeneseny do cíle nasazení (například na aplikační server) a / nebo uloženy jako nový artefakt ve verzi v softwarovém úložišti. Toto úložiště může být součástí serveru CI nebo může být externím úložištěm, jako je souborový server nebo web pro distribuci softwaru, jako je Java.net nebo SourceForge. Úložiště zdrojového kódu a úložiště artefaktů mohou být oddělené a je skutečně možné použít některé servery CI bez jakéhokoli formálního systému řízení zdrojů.
  6. Servery CI obvykle mají nějaký druh konzoly, kde lze konfigurovat a ladit projekty a kde lze vydávat požadavky na operace, jako jsou okamžitá sestavení ad hoc, generování sestav nebo načítání vytvořených artefaktů.

Hudson: Server pro nepřetržitou integraci

Průběžná integrace se v posledních několika letech rozšířila na popularitě a dnes máte na výběr z několika serverů CI, komerčních i bezplatných. Osobně jsem použil čtyři CI servery, než mi kolega doporučil podívat se na Hudsona. Okamžitě na mě udělalo dojem. I když jsem původně předpokládal, že Hudson není dobře známý, průzkum na webu Java Power Tools ukazuje, že je mezi respondenty nejpoužívanějším CI serverem, sbíral (v době psaní tohoto článku) 37,8 procenta všech hlasů.

Podporované SCM

Hudson má integrovanou podporu Subversion hned po vybalení a pro integraci s CVS je vyžadováno jen malé množství konfigurace za předpokladu, že je klient CVS nainstalován na hostiteli Hudson. Několik dalších řešení pro správu zdrojového kódu (SCM) je podporováno ve formě doplňků Hudson. V době psaní tohoto článku jsou podporovány následující SCM:

  • Accurev
  • BitKeeper
  • ClearCase
  • Git
  • Mercurial
  • Nezbytně
  • StartTeam
  • Team Foundation Server
  • Visual SourceSafe
  • URL SCM (speciální modul SCM, který umožňuje použití adres URL pro SCM)

V tomto článku budu používat Subversion a zdrojové úložiště na Java.net, takže nebudete muset instalovat žádný z těchto pluginů. (Kromě toho znám někoho, kdo pracuje na pluginu MKS SourceIntegrity Hudson. Pokud vás to zajímá, pošlete mi e-mail.)

Hudson je bezplatný produkt s otevřeným zdrojovým kódem hostovaný na serveru Java.net. Původně jej napsal Kohsuke Kawaguchi, technický pracovník společnosti Sun Microsystems, který oznámil své vydání na svém blogu v únoru 2005. Od té doby měl Hudson přibližně 154 vydání.

Zde jsou některé z důvodů, proč se mi Hudson líbí, a proč bych vám ho doporučil, s vyloučením neobvyklých požadavků:

  • Ze všech produktů CI, které jsem použil, je instalace a konfigurace zdaleka nejjednodušší.
  • Jeho webová uživatelská rozhraní jsou velmi přátelská, intuitivní a pohotová a v mnoha případech poskytují okamžitou zpětnou vazbu s podporou Ajaxu na jednotlivá pole konfigurace.
  • Hudson je založen na prostředí Java (což je užitečné, pokud jste vývojář prostředí Java), ale neomezuje se pouze na vytváření softwaru založeného na prostředí Java.
  • Hudson je čistě komponentizován a nabízí dobře definované a zdokumentované API rozšiřitelnosti ve formě Hudsonových pluginů. To zase vedlo k velké knihovně Hudsonových pluginů, které rozšiřují funkčnost serveru; jsou volně dostupné a instalovatelné z konzoly Hudson.

Instalace Hudson: Windows XP nebo Ubuntu Linux

Chcete-li použít Hudson, budete potřebovat přístupný a podporovaný systém ovládání zdroje (seznam najdete v postranním panelu „Podporované SCM“), zdroj, který lze zabudovat do artefaktu, a funkční skript sestavení. Kromě toho vše, co opravdu potřebujete k instalaci a konfiguraci funkčního serveru Hudson, je instalace prostředí Java verze 1.5 nebo vyšší a instalační soubor Hudson, který je dodáván ve formě webového archivu Java EE (WAR). Server můžete spustit velmi jednoduše pomocí následujícího příkazového řádku:

C: \ hudson> java -jar hudson.war

Pravděpodobnější je však častější nasazení Hudsona na kontejner servletů Java, který je založen na specifikacích Servlet 2.4 a JSP 2.0, jako jsou GlassFish, Tomcat, JBoss nebo Jetty. V dalších částech vás provedu dvěma instalačními scénáři Hudson: jedním používajícím Tomcat 6 v systému Windows XP a druhým používajícím JBoss 4.2.3 v systému Ubuntu Linux. (JBoss AS 5.0 byl vydán po datu odeslání tohoto článku.)

Instalace Hudson: Tomcat 6 a Windows XP

Předpokládám, že ve svém počítači se systémem Windows XP již máte nainstalovanou verzi Java 1.5 nebo vyšší. Následujícím postupem nainstalujete Tomcat 6.0.18 pomocí Instalační služby systému Windows, takže Hudson se spustí ihned po spuštění systému Windows XP a bude spuštěn na pozadí, i když není přihlášen žádný uživatel. Soubor ke stažení pro Tomcat je apache-tomcat- 6.0.18.exe, který byste měli spustit, abyste zahájili instalaci Tomcat.

Instalace Tomcat vás vyzve k výběru možností instalace. Nezapomeňte vybrat Zvyk možnosti a poté Servis, jak je znázorněno na obrázku 2, takže Tomcat poběží jako služba.

Dále vyberte adresář, kam chcete nainstalovat Tomcat, jak je znázorněno na obrázku 3. Důrazně doporučuji vybrat adresář bez mezer. Můžete mi poděkovat později.

Nyní se vás instalační program zeptá, na kterém portu chcete poslouchat. Výchozí hodnota je port 8080, což je pravděpodobně v pořádku; jen se ujistěte, že nemáte jinou aplikaci používající tento port. Pokud tak učiníte, Tomcat se nespustí správně. Budete také požádáni o zadání uživatelského jména a hesla správce Tomcat. To vše je znázorněno na obrázku 4.

Instalační program vás poté požádá o zadání umístění Java JRE, které jste nainstalovali. Jak vidíte na obrázku 5, použil jsem Sun Java 1.6.0_07.

Jakmile kliknete Nainstalujte, instalace by měla běžet do dokončení a služba bude spuštěna. Správným fungováním Tomcatu se můžete ujistit tím, že svůj webový prohlížeč nasměrujete na // localhost: 8080 (pokud nepoužíváte webový prohlížeč spuštěný v počítači, kde je nainstalován Tomcat, nahraďte odpovídající název nebo IP adresu localhost). Zobrazená webová stránka by měla vypadat podobně jako snímek obrazovky na obrázku 6.

Chcete-li nyní nainstalovat Hudson, zkopírujte soubor hudson.war do podadresáře webapps vašeho instalačního adresáře Tomcat. Pokud jste použili stejný instalační adresář uvedený na obrázku 3, byl by to C: \ Tomcat6 \ webapps. Tomcat bude hotově nasazovat soubory WAR, ale nejjednodušší je nyní restartovat Tomcat. Existují dva způsoby, jak toho dosáhnout. Prvním je otevření prostředí DOS a zadání následujících příkazů:

 C: \ Tomcat6> net stop Tomcat6 C: \ Tomcat6> net start Tomcat6

Druhou možností je otevřít applet Služby. Tento applet najdete ve skupině Nástroje pro správu v Ovládacích panelech, kterou najdete kliknutím na tlačítko Start na panelu nástrojů Windows a výběrem Nastavení a pak Kontrolní panel. V appletu Služby vyhledejte pojmenovanou službu Apache Tomcat a poté klikněte na ikonu Restartujte knoflík. To je znázorněno na obrázku 7.

Hudson by nyní měl být nainstalován. Můžete to ověřit nasměrováním webového prohlížeče na // localhost: 8080 / hudson. Hlavní obrazovka Hudson je zobrazena na obrázku 8.

To je vše! Pokud vám vyhovuje vývojové prostředí aplikací založené na Windows XP a Tomcat, máte vše hotovo. Pokud dáváte přednost systému se systémem JBoss a Ubuntu Linux, čtěte dále.

Instalace Hudson: JBoss 4.2.3 na Ubuntu Linux 8.04 (Hardy Heron)

Chcete-li nainstalovat Sun Java 1.6 na Ubuntu, otevřete shell a proveďte následující příkaz:

 sudo apt-get install sun-java6-jdk

Při vystavování a sudo příkaz, budete vyzváni k zadání hesla.

Všimněte si, že existuje několik způsobů instalace JBoss; v technice popsané zde vytvoříte vyhrazený jboss uživatel. To je považováno za osvědčený postup a je lepší než instalovat JBoss do vlastního domovského adresáře. Zde popsaný postup byl zkrácen z užitečného popisu na fórech Ubuntu.

Nejprve si musíte stáhnout balíček JBoss 4.2.3.GA. Vyhledejte soubor s názvem jboss-4.2.3.GA.zip.

Dále budete muset vytvořit uživatele, domovský adresář a skupinu s názvem jboss. Tato skupina není v tomto článku prozkoumávána; umožní vám rozšířit oprávnění JBoss na další uživatele na vašem serveru Ubuntu.

Výpis 1 zobrazuje komentované příkazy k vytvoření souboru jboss domovský adresář, uživatel a skupina a poté nainstalujte server JBoss. U některých příkazů je předpona sudo protože jsou to příkazy s oprávněním root.

Výpis 1. Vytvoření účtu jboss a instalace serveru

echo Vytvořte skupinu jboss sudo groupadd jboss echo Vytvořte uživatele jboss, definujte bash jako výchozí shell uživatele a / home / jboss jako domovský adresář echo a udělejte z uživatele jboss část skupiny jboss sudo useradd -s / bin / bash - d / home / jboss -m -g jboss jboss echo Zkopírujte soubor jboss-4.2.3.GA do / home / jboss nebo jej stáhněte přímo do tohoto adresáře sudo mv jboss-4.2.3.GA / home / jboss echo Změňte vlastníka souboru do jboss sudo chown jboss: jboss /home/jboss/jboss-4.2.3.GA echo Přihlaste se k účtu jboss sudo su jboss echo Přejděte do domovského adresáře jboss cd ~ echo Rozbalte soubor jboss-4.2.3. GA unzip jboss-4.2.3.GA echo Vytvořte symbolický odkaz „jboss“ pro „jboss-4.2.3.GA“. echo To vám umožňuje měnit verze JBoss s minimálními změnami ln -s jboss-4.2.3.GA jboss

Pokud příkaz unzip ještě není nainstalován, nainstalujte jej pomocí následujícího příkazu (pokud jste přihlášeni jako uživatel s povoleným sudo):

Sudo apt-get install unzip

Server JBoss je nyní v zásadě nainstalován. Server můžete spustit pomocí následujícího příkazu:

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

V tomto příkladu však místo toho nainstalujete automatický spouštěcí skript, aby se služba spouštěla ​​automaticky při spuštění hostitele. Stahování JBoss je dodáváno se třemi různými skripty int.d, ale každý musí být vylepšen; můžete si stáhnout skript jboss-init.sh, který umožní automatické spuštění a zastavení serveru. Poté spusťte příkazy uvedené v seznamu 2.

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