Ohjelmointi

Jatkuva integraatio Hudsonin kanssa

Jatkuvasta integroinnista on tullut yleinen käytäntö tiimeille, jotka keskittyvät koodin laadun varmistamiseen koko ohjelmistokehityksen elinkaaren ajan. Tässä artikkelissa Nicholas Whitehead esittelee Hudsonin, suositun avoimen lähdekoodin CI-palvelimen. Opi määrittämään Hudson-palvelin sovelluskehitysympäristössä (esimerkkejä annetaan Windows XP: lle Tomcat 6: lla tai Ubuntu Linux: lla JBoss AS: llä), saat yleiskatsauksen Hudsonin tarjoamista monista määritysvaihtoehdoista ja toteuta sitten automaattinen koontiversio, testi, ja raportointiprosessi esimerkkiprojektille. Taso: Aloittelija

Jatkuva integraatio (CI) on joukko käytäntöjä, joiden tarkoituksena on helpottaa ja vakauttaa ohjelmistokehitysten luomista. CI auttaa kehitystiimejä seuraavissa haasteissa:

  • Ohjelmistojen rakennusautomaatio: CI: n avulla voit käynnistää ohjelmisto-artefaktin valmistusprosessin napin painalluksella, ennalta määritetyllä aikataululla tai vastauksena tiettyyn tapahtumaan. Jos haluat rakentaa ohjelmisto-artefaktin lähteestä, rakennusprosessisi ei ole sidottu tiettyyn IDE: hen, tietokoneeseen tai henkilöön.
  • Jatkuva automaattinen koontiverifikaatio: CI-järjestelmä voidaan määrittää suorittamaan kokoamisia jatkuvasti uuden tai muokatun lähdekoodin sisäänkirjautumisen yhteydessä. Tämä tarkoittaa, että vaikka ohjelmistokehittäjien tiimi tarkistaa säännöllisesti uutta tai muokattua koodia, CI-järjestelmä tarkistaa jatkuvasti, että koontiversiota ei rikota uudella koodilla. Tämä vähentää kehittäjien tarvetta tarkistaa keskenään riippuvaisiin komponentteihin tehtäviä muutoksia.
  • Jatkuva automaattinen koontitestaus: Koontiversion laajennus, tämä prosessi varmistaa, että uusi tai muokattu koodi ei aiheuta rakennettujen artefaktien ennalta määritettyjen testien sarjaa epäonnistumaan. Sekä koontiversiossa että testauksessa viat voivat aiheuttaa ilmoituksia kiinnostuneille osapuolille, mikä osoittaa, että koontiversio tai jotkut testit ovat epäonnistuneet.
  • Rakennuksen jälkeinen prosessiautomaatio: Ohjelmistoaineiston rakennuksen elinkaari voi vaatia myös muita tehtäviä, jotka voidaan automatisoida, kun koontiverifikaatio ja testaus on valmis, kuten dokumentaation luominen, ohjelmiston pakkaaminen ja artefaktien sijoittaminen käynnissä olevaan ympäristöön tai ohjelmistovarastoon. Tällä tavalla artefaktit voidaan nopeasti asettaa käyttäjien saataville.

CI-palvelimen käyttöönottoon tarvitaan vähintään käytettävissä oleva lähdekoodivarasto (ja sen lähdekoodi), joukko koontikomentosarjoja ja -proseduureja sekä joukko testejä suoritettavaksi rakennettuja artefakteja vastaan. Kuvassa 1 hahmotellaan CI-järjestelmän perusrakenne.

Järjestelmän komponentit tulevat pelaamaan seuraavassa järjestyksessä:

  1. Kehittäjät tarkistavat uuden ja muokatun koodin lähdekoodivarastoon.
  2. CI-palvelin luo erillisen työtilan kutakin projektia varten. Kun uutta koontiversiota pyydetään tai ajoitetaan, lähde haetaan arkistosta tähän työtilaan, jossa sitten koontiversio suoritetaan.
  3. CI-palvelin suorittaa uudelle luodun tai päivitetyn työtilan rakennusprosessin.
  4. Kun koontiversio on valmis, CI-palvelin voi vaihtoehtoisesti kutsua määritetyn testipaketin uusiin artefakteihin. Jos koontiversio epäonnistuu, rekisteröidyille henkilöille voidaan ilmoittaa sähköpostitse, pikaviestinnällä tai muulla tavalla.
  5. Jos koontiversio on onnistunut, artefaktit pakataan ja lähetetään käyttöönottotavoitteelle (kuten sovelluspalvelimelle) ja / tai tallennetaan uutena versiona artefaktina ohjelmistovarastoon. Tämä arkisto voi olla osa CI-palvelinta tai se voi olla ulkoinen arkisto, kuten tiedostopalvelin tai ohjelmistojakelusivusto, kuten Java.net tai SourceForge. Lähdekoodivarasto ja artefaktivarasto voivat olla erilliset, ja joitain CI-palvelimia on todella mahdollista käyttää ilman mitään muodollista lähdeohjausjärjestelmää.
  6. CI-palvelimilla on yleensä jonkinlainen konsoli, jossa projektit voidaan määrittää ja virheenkorjauksia varten ja jossa voidaan lähettää pyyntöjä toiminnoille, kuten tilapäisille välittömille koontiversioille, raporttien luomiselle tai rakennettujen artefaktien hakemiselle.

Hudson: Jatkuva integraatiopalvelin

Jatkuvan integraation suosio on kasvanut viime vuosien aikana, ja tänään sinulla on valittavanasi muutama CI-palvelin, sekä kaupallinen että ilmainen. Olin henkilökohtaisesti käyttänyt neljää CI-palvelinta, ennen kuin kollegani suositteli tarkastelemaan Hudsonia. Se oli heti vaikuttunut minusta. Vaikka oletin alun perin, että Hudson ei ollut hyvin tunnettu, Java Power Tools -sivustossa tehty kysely osoittaa sen olevan yleisimmin käytetty CI-palvelin vastaajien keskuudessa ja keräsi (tämän kirjoituksen aikaan) 37,8 prosenttia kaikista äänistä.

Tuetut SCM: t

Hudson on integroinut Subversion-tuen heti laatikosta, ja vain pieni määrä kokoonpanoja tarvitaan integroitumaan CVS: ään, olettaen, että CVS-asiakas on asennettu Hudson-isäntään. Useita muita lähdekoodinhallintaratkaisuja (SCM) tuetaan Hudson-laajennusten muodossa. Tämän kirjoituksen aikana seuraavia SCM: iä tuetaan:

  • Accurev
  • BitKeeper
  • ClearCase
  • Git
  • Oikukas
  • Pakostakin
  • StartTeam
  • Team Foundation Server
  • Visual SourceSafe
  • URL SCM (erityinen SCM-laajennus, joka sallii URL-osoitteiden käytön SCM: lle)

Tässä artikkelissa käytän Subversionia ja Java.netin lähdetietovarastoa, joten sinun ei tarvitse asentaa mitään näistä laajennuksista. (Syrjänä tunnen jonkun, joka työskentelee MKS SourceIntegrity Hudson -laajennuksen parissa. Jos olet kiinnostunut siitä, lähetä minulle sähköpostia.)

Hudson on ilmainen ja avoimen lähdekoodin tuote, jota isännöi Java.net. Sen kirjoitti alun perin Sun Microsystemsin henkilöstöinsinööri Kohsuke Kawaguchi, joka ilmoitti julkaisemisestaan ​​blogissaan helmikuussa 2005. Hudsonilla on sittemmin ollut noin 154 julkaisua.

Tässä on joitain syitä, miksi pidän Hudsonista ja miksi suosittelen sitä sinulle, estäen epätavalliset vaatimukset:

  • Kaikista käyttämistäni CI-tuotteista se on ylivoimaisesti helpoin asentaa ja konfiguroida.
  • Sen verkkopohjaiset käyttöliittymät ovat erittäin ystävällisiä, intuitiivisia ja reagoivia, ja ne tarjoavat usein Ajax-yhteensopivaa palautetta yksittäisistä määrityskentistä.
  • Hudson on Java-pohjainen (mikä on hyödyllistä, jos olet Java-kehittäjä), mutta ei rajoitu Java-pohjaisten ohjelmistojen rakentamiseen.
  • Hudson on siististi komponentoitu ja tarjoaa hyvin määritellyn ja dokumentoidun laajennettavuuden sovellusliittymän Hudson-laajennusten muodossa. Tämä on puolestaan ​​johtanut suureen Hudson-laajennusten kirjastoon, joka laajentaa palvelimen toiminnallisuutta; nämä ovat vapaasti saatavilla ja asennettavissa Hudson-konsolista.

Hudsonin asentaminen: Windows XP tai Ubuntu Linux

Hudsonin käyttäminen edellyttää käytettävissä olevaa ja tuettua lähteenhallintajärjestelmää (katso luettelo tuettujen SCM: ien sivupalkista), lähteen, joka voidaan rakentaa artefaktiin, ja toimivan koontikomentosarjan. Sen lisäksi kaikki, mitä todella tarvitset toimivan Hudson-palvelimen asentamiseen ja konfigurointiin, on Java-version 1.5 tai uudemman asennus ja Hudson-asennustiedosto, joka tulee Java EE Web -arkiston (WAR) muodossa. Voit käynnistää palvelimen hyvin yksinkertaisesti seuraavalla komentorivillä:

C: \ hudson> java -jar hudson.war

Todennäköisesti on kuitenkin yleistä, että Hudson asennetaan Java-palvelinsisäilöön, joka perustuu Servlet 2.4- ja JSP 2.0 -ominaisuuksiin, kuten GlassFish, Tomcat, JBoss tai Jetty. Seuraavissa osissa käyn läpi kaksi Hudson-asennusskenaariota: yhden Tomcat 6: n Windows XP: ssä ja toisen JBoss 4.2.3: n Ubuntu Linuxissa. (JBoss AS 5.0 julkaistiin tämän artikkelin julkaisupäivän jälkeen.)

Hudson: Tomcat 6 ja Windows XP: n asentaminen

Oletan, että sinulla on jo Java-versio 1.5 tai uudempi asennettuna Windows XP-koneellesi. Seuraavien vaiheiden noudattaminen asentaa Tomcat 6.0.18: n Windows Service Installer -sovelluksella, jotta Hudson käynnistyy heti Windows XP: n käynnistymisen jälkeen ja toimii taustalla, vaikka yksikään käyttäjä ei ole kirjautunut sisään. Tomcatin lataustiedosto on apache-tomcat- 6.0.18.exe, joka sinun on suoritettava aloittaaksesi Tomcat-asennuksen.

Tomcatin asennus kehottaa sinua valitsemaan asennusvaihtoehdot. Muista valita Mukautettu ja sitten Palvelu, kuten kuvassa 2 on esitetty, jotta Tomcat toimii palveluna.

Valitse seuraavaksi hakemisto, johon haluat asentaa Tomcatin, kuvan 3 mukaisesti. Suosittelen, että valitset hakemiston, jossa ei ole välilyöntejä. Voit kiittää minua myöhemmin.

Nyt asennusohjelma kysyy, mitä porttia haluat kuunnella. Oletusarvo on portti 8080, mikä on todennäköisesti hieno; vain varmista, että sinulla ei ole toista sovellusta, joka käyttää kyseistä porttia. Jos teet niin, Tomcat ei käynnisty kunnolla. Sinua pyydetään myös antamaan Tomcatin järjestelmänvalvojan käyttäjänimi ja salasana. Kaikki tämä on esitetty kuvassa 4.

Asentaja pyytää sitten antamaan asentamasi Java JRE: n sijainnin. Kuten kuvasta 5 näet, käytin Sun Java 1.6.0_07: tä.

Kun napsautat Asentaa, asennuksen pitäisi olla valmis ja palvelu alkaa toimia. Voit varmistaa, että Tomcat toimii oikein, osoittamalla verkkoselaimesi kohtaan // localhost: 8080 (korvaamalla asianmukainen nimi tai IP-osoite localhostille, jos et käytä verkkoselainta, joka on käynnissä tietokoneessa, johon Tomcat on asennettu). Näytettävän verkkosivun tulisi näyttää jotain kuvakaappaukselta kuten kuvassa 6.

Asenna Hudson kopioimalla hudson.war-tiedosto Tomcat-asennushakemistosi webapps-alihakemistoon. Jos käytit samaa asennushakemistoa, joka on esitetty kuvassa 3, tämä olisi C: \ Tomcat6 \ webapps. Tomcat ottaa WAR-tiedostot käyttöön nopeasti, mutta helpoin asia on nyt käynnistää Tomcat uudelleen. Voit tehdä tämän kahdella tavalla. Ensimmäinen on avata DOS-kuori ja kirjoittaa seuraavat komennot:

 C: \ Tomcat6> verkkopysäytys Tomcat6 C: \ Tomcat6> verkkokäynnistys Tomcat6

Toinen vaihtoehto on avata Services-sovelma. Tämä sovelma löytyy Ohjauspaneelin Hallintatyökalut-ryhmästä, joka löytyy napsauttamalla Windowsin työkalurivin Käynnistä-painiketta ja valitsemalla asetukset ja sitten Ohjauspaneeli. Etsi Palvelut-sovelmasta nimetty palvelu Apache Tomcat ja napsauta sitten Uudelleenkäynnistää -painiketta. Tämä on havainnollistettu kuvassa 7.

Hudson pitäisi nyt asentaa. Voit tarkistaa tämän osoittamalla verkkoselaimellasi // localhost: 8080 / hudson. Hudsonin päänäyttö on esitetty kuvassa 8.

Siinä kaikki siinä on! Jos olet tyytyväinen Windows XP- ja Tomcat-pohjaiseen sovelluskehitysympäristöön, olet valmis. Jos haluat mieluummin JBossia ja Ubuntu Linuxia käyttävän järjestelmän, lue lisää.

Hudson: JBoss 4.2.3: n asentaminen Ubuntu Linux 8.04: een (Hardy Heron)

Asenna Sun Java 1.6 Ubuntuun avaamalla komentotulkki ja suorittamalla seuraava komento:

 sudo apt-get asenna sun-java6-jdk

Annettaessa a sudo -komento, sinua pyydetään antamaan salasanasi.

Huomaa, että JBoss voidaan asentaa useilla tavoilla; täällä hahmotellussa tekniikassa luot omistetun jboss käyttäjä. Tätä pidetään parhaana käytäntönä, ja se on parempi kuin JBoss asennetaan omaan kotihakemistoon. Tässä kuvattu menettely on tiivistetty hyödyllisestä kuvauksesta Ubuntun foorumeilla.

Ensin sinun on ladattava JBoss 4.2.3.GA -paketti. Etsi tiedosto nimeltä jboss-4.2.3.GA.zip.

Seuraavaksi sinun on luotava käyttäjä, kotihakemisto ja ryhmä, kaikki nimetty jboss. Ryhmä on mukavuus, jota ei ole tutkittu tässä artikkelissa; sen avulla voit laajentaa JBoss-käyttöoikeuksia muihin käyttäjiin Ubuntu-palvelimellasi.

Listaus 1 näyttää kommentoidut komennot jboss kotihakemisto, käyttäjä ja ryhmä ja asenna sitten JBoss-palvelin. Jotkut komennot on merkitty etuliitteellä sudo koska ne ovat root-etuoikeutettuja komentoja.

Luettelointi 1. Luo jboss-tili ja asenna palvelin

echo Luo jboss-ryhmä sudo groupadd jboss echo Luo jboss-käyttäjä, määritä bash käyttäjän oletuskuoreksi ja / home / jboss kotihakemiston kaiuksi ja tee käyttäjän jboss osaksi ryhmää jboss sudo useradd -s / bin / bash - d / home / jboss -m -g jboss jboss echo Kopioi jboss-4.2.3.GA-tiedosto / home / jboss tai lataa suoraan siihen hakemistoon sudo mv jboss-4.2.3.GA / home / jboss echo Vaihda omistaja tiedoston jboss sudo chown jboss: jboss /home/jboss/jboss-4.2.3.GA echo Kirjaudu jboss-tiliin sudo su jboss echo Siirry jbossin kotihakemistoon cd ~ echo Pura tiedosto jboss-4.2.3. GA pura jboss-4.2.3.GA -kaiku. Luo symbolinen linkki "jboss" sanalle "jboss-4.2.3.GA". kaiku Tämän avulla voit vaihtaa JBoss-versioita minimaalisilla muutoksilla ln -s jboss-4.2.3.GA jboss

Jos unzip-komentoa ei ole vielä asennettu, kirjoita seuraava komento (kun olet kirjautunut sisään sudo-käyttäjänä) sen asentamiseksi:

Sudo apt-get install pura

JBoss-palvelin on nyt periaatteessa asennettu. Voit käynnistää palvelimen seuraavalla komennolla:

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

Tässä esimerkissä asennat sen sijaan automaattisen käynnistyskomentosarjan, jotta palvelu käynnistyy automaattisesti, kun isäntä käynnistyy. JBoss-latauksessa on kolme erilaista int.d-komentosarjaa, mutta kutakin on muokattava; voit ladata jboss-init.sh-komentosarjan, joka mahdollistaa palvelimen automaattisen käynnistyksen ja pysäytyksen. Suorita sitten Listaus 2: ssa esitetyt komennot.

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