Programavimas

Nuolatinė integracija su Hudsonu

Nuolatinė integracija tapo įprasta komandų praktika, kurios tikslas - užtikrinti kodo kokybę per visą programinės įrangos kūrimo gyvavimo ciklą. Šiame straipsnyje Nicholas Whiteheadas supažindina su Hudsonu, populiariu atvirojo kodo CI serveriu. Sužinokite, kaip nustatyti „Hudson“ serverį programų kūrimo aplinkoje (pavyzdžiai pateikti „Windows XP“ su „Tomcat 6“ arba „Ubuntu Linux“ su „JBoss AS“), gaukite daugelio „Hudson“ teikiamų konfigūravimo parinkčių apžvalgą, tada įgyvendinkite automatizuotą kūrimą, testavimą, ir pavyzdinio projekto ataskaitų teikimo procesas. Lygis: pradedantysis

Nuolatinė integracija (CI) yra praktikos rinkinys, skirtas palengvinti ir stabilizuoti programinės įrangos kūrimo procesą. KI padeda vystymo komandoms spręsti šiuos iššūkius:

  • Programinės įrangos kūrimo automatika: Naudodamiesi CI, galite paleisti programinės įrangos artefakto kūrimo procesą paspaudę mygtuką, iš anksto nustatytą tvarkaraštį arba atsakydami į nurodytą įvykį. Jei norite sukurti programinės įrangos artefaktą iš šaltinio, jūsų kūrimo procesas nėra susietas su konkrečiu IDE, kompiuteriu ar asmeniu.
  • Nuolatinis automatizuotas konstrukcijos patikrinimas: BP sistema gali būti sukonfigūruota nuolat vykdyti versijas, kai yra įregistruotas naujas ar modifikuotas šaltinio kodas. Tai reiškia, kad nors programinės įrangos kūrėjų komanda periodiškai tikrina naują ar modifikuotą kodą, KI sistema nuolat tikrina, ar komponavimas nėra sugadintas. pagal naująjį kodą. Tai sumažina kūrėjų poreikį tarpusavyje tikrinti, ar keičiasi vienas nuo kito priklausantys komponentai.
  • Nuolatinis automatizuotas konstrukcijos testavimas: Kūrimo patikrinimo išplėtimas, šis procesas užtikrina, kad dėl naujo ar modifikuoto kodo nepavyks sugadinti iš anksto nustatytų sukurtų artefaktų bandymų. Tiek tikrinimo, tiek bandymų metu dėl gedimų suinteresuotoms šalims gali būti pranešimai, rodantys, kad nepavyko sukurti arba kai kurie bandymai.
  • Procedūrų automatizavimas po sukūrimo: Programinės įrangos artefakto kūrimo gyvavimo ciklas taip pat gali pareikalauti papildomų užduočių, kurias bus galima automatizuoti baigus kūrimo patikrą ir testavimą, pvz., Dokumentacijos generavimas, programinės įrangos pakavimas ir artefaktų išdėstymas veikiančioje aplinkoje arba programinės įrangos talpykloje. Tokiu būdu artefaktai gali būti greitai prieinami vartotojams.

Norėdami įdiegti CI serverį, turite bent jau prieinamą šaltinio kodų saugyklą (ir joje esantį šaltinio kodą), sukūrimo scenarijų ir procedūrų rinkinį bei bandymų rinkinį, skirtą atlikti pagal sukurtus artefaktus. 1 paveiksle pateikiama pagrindinė KI sistemos struktūra.

Sistemos komponentai pradeda veikti tokia seka:

  1. Kūrėjai patikrina naują ir modifikuotą kodą šaltinio kodo saugykloje.
  2. CI serveris sukuria kiekvienam projektui skirtą darbo sritį. Prašant ar suplanavus naują paketą, šaltinis iš saugyklos gaunamas į šią darbo vietą, kur tada vykdomas kūrimas.
  3. BP serveris vykdo naujai sukurtos arba atnaujintos darbo srities kūrimo procesą.
  4. Baigęs kurti, CI serveris gali pasirinktinai iškviesti apibrėžtą bandymų rinkinį naujuose artefaktuose. Jei nepavyksta sukurti, registruotiems asmenims gali būti pranešama el. Paštu, tiesioginiais pranešimais ar kitu būdu.
  5. Jei sukūrimas sėkmingas, artefaktai supakuojami ir perduodami į diegimo tikslą (pvz., Programų serverį) ir (arba) saugomi kaip naujos versijos artefaktai programinės įrangos saugykloje. Ši saugykla gali būti CI serverio dalis arba išorinė saugykla, pvz., Failų serveris arba programinės įrangos platinimo svetainė, pvz., „Java.net“ ar „SourceForge“. Šaltinio kodo saugykla ir artefaktų saugykla gali būti atskiros, ir iš tikrųjų įmanoma naudoti kai kuriuos CI serverius be jokios oficialios šaltinio valdymo sistemos.
  6. CI serveriuose paprastai yra tam tikra konsolė, kurioje galima sukonfigūruoti ir derinti projektus, ir kur galima pateikti užklausas dėl tokių operacijų kaip ad hoc neatidėliotini kūrimai, ataskaitų generavimas ar pastatytų artefaktų paieška.

Hudsonas: Nuolatinis integracijos serveris

Nuolatinė integracija per pastaruosius kelerius metus išpopuliarėjo ir šiandien jūs galite pasirinkti nemažai CI serverių, tiek komercinių, tiek nemokamų. Aš asmeniškai buvau naudojęs keturis CI serverius, kol kolega rekomendavo man pažvelgti į Hudsoną. Man tai iškart padarė įspūdį. Nors iš pradžių maniau, kad Hudsonas nebuvo gerai žinomas, „Java Power Tools“ svetainėje atlikta apklausa rodo, kad jis yra plačiausiai naudojamas respondentų CI serveris, surinkęs (šio rašymo metu) 37,8 proc. Visų balsų.

Palaikomi SCM

„Hudson“ integravo „Subversion“ palaikymą tiesiai iš dėžutės ir norint integruoti su CVS reikia tik nedidelės konfigūracijos dalies, darant prielaidą, kad CVS klientas yra įdiegtas „Hudson“ pagrindiniame kompiuteryje. Keletas kitų šaltinio kodo valdymo (SCM) sprendimų palaikomi „Hudson“ papildinių pavidalu. Rašymo metu palaikomi šie SCM:

  • Accurev
  • „BitKeeper“
  • „ClearCase“
  • Git
  • Merkurijus
  • Priverstinis
  • „StartTeam“
  • „Team Foundation Server“
  • „Visual SourceSafe“
  • URL SCM (specialus SCM papildinys, leidžiantis naudoti URL SCM)

Šiame straipsnyje naudosiu „Subversion“ ir šaltinių saugyklą „Java.net“, todėl nereikės diegti nė vieno iš šių papildinių. (Beje, aš žinau ką nors, kas dirba su „MKS SourceIntegrity Hudson“ papildiniu. Jei tai jus domina, atsiųskite man el. Laišką.)

„Hudson“ yra nemokamas ir atviro kodo produktas, priglobtas „Java.net“. Iš pradžių jį parašė „Sun Microsystems“ personalo inžinierius Kohsuke Kawaguchi, kuris 2005 m. Vasario mėn. Paskelbė apie savo išleidimą savo tinklaraštyje. Hudson nuo to laiko turi maždaug 154 leidimus.

Štai keletas priežasčių, kodėl man patinka Hudsonas ir kodėl aš rekomenduočiau tai jums, neįtraukdamas jokių neįprastų reikalavimų:

  • Iš visų mano naudojamų KI produktų tai yra lengviausia įdiegti ir konfigūruoti.
  • Jo žiniatinklio vartotojo sąsajos yra labai draugiškos, intuityvios ir jautrios, daugeliu atvejų teikiančios skubius atsiliepimus apie „Ajax“ apie atskirus konfigūracijos laukus.
  • „Hudson“ yra „Java“ pagrindu (tai naudinga, jei esate „Java“ kūrėjas), tačiau neapsiriboja „Java“ pagrindu sukurtos programinės įrangos kūrimu.
  • „Hudson“ yra aiškiai sukomponuotas ir siūlo gerai apibrėžtą ir dokumentais pagrįstą išplėtimo API „Hudson“ papildinių pavidalu. Tai savo ruožtu sukėlė didelę „Hudson“ papildinių biblioteką, kuri išplėtė serverio funkcionalumą; jie yra laisvai prieinami ir įdiegiami iš „Hudson“ pulto.

„Hudson“ diegimas: „Windows XP“ arba „Ubuntu Linux“

Norėdami naudoti „Hudson“, jums reikės prieinamos ir palaikomos šaltinio valdymo sistemos (sąrašą rasite šoninėje juostoje „Palaikomi SCM“), šaltinio, kurį galima integruoti į artefaktą, ir veikiančio sukūrimo scenarijaus. Be to, viskas, ko jums tikrai reikia norint įdiegti ir sukonfigūruoti veikiantį „Hudson“ serverį, yra „Java“, 1.5 ar naujesnės versijos, diegimas ir „Hudson“ diegimo failas, kuris pateikiamas „Java EE Web Archive“ (WAR) pavidalu. Serverį galite paleisti labai paprastai naudodami šią komandinę eilutę:

C: \ hudson> java -jar hudson.war

Tačiau tikriausiai labiau įprasta „Hudson“ diegti į „Java“ servleto talpyklą, pagrįstą „Servlet 2.4“ ir „JSP 2.0“ specifikacijomis, tokiomis kaip „GlassFish“, „Tomcat“, „JBoss“ ar „Jetty“. Tolesniuose skyriuose apžvelgsiu du „Hudson“ diegimo scenarijus: vieną naudojant „Tomcat 6“ „Windows XP“, o kitą naudojant „JBoss 4.2.3“ „Ubuntu Linux“. („JBoss AS 5.0“ buvo išleista po šio straipsnio pateikimo datos.)

„Hudson“ diegimas: „Tomcat 6“ ir „Windows XP“

Darau prielaidą, kad jūsų „Windows XP“ kompiuteryje jau įdiegta „Java“ versija 1.5 ar naujesnė. Atlikę toliau nurodytus veiksmus, „Tomcat 6.0.18“ įdiegsite naudodami „Windows Service Installer“, kad „Hudson“ prasidėtų iškart po „Windows XP“ paleidimo ir veiktų fone net tada, kai nėra prisijungęs nė vienas vartotojas. „Tomcat“ atsisiuntimo failas yra apache-tomcat- 6.0.18.exe, kurį turėtumėte atlikti, kad pradėtumėte „Tomcat“ diegimą.

„Tomcat“ diegimas paskatins jus pasirinkti diegimo parinktis. Būtinai pasirinkite Pasirinktinis parinktys ir tada Aptarnavimas, kaip parodyta 2 paveiksle, kad „Tomcat“ veiktų kaip paslauga.

Tada pasirinkite katalogą, kuriame norite įdiegti „Tomcat“, kaip parodyta 3 paveiksle. Aš labai rekomenduoju pasirinkti katalogą be tarpų. Vėliau galite man padėkoti.

Dabar diegimo programa paklaus jūsų, kuriame uoste norite klausytis. Pagal numatytuosius nustatymus yra 8080 prievadas, kuris tikriausiai yra tinkamas; tiesiog įsitikinkite, kad neturite kitos programos, naudojančios tą prievadą. Jei tai padarysite, „Tomcat“ nebus tinkamai paleistas. Taip pat jūsų bus paprašyta pateikti „Tomcat“ administratoriaus vartotojo vardą ir slaptažodį. Visa tai parodyta 4 paveiksle.

Tada diegimo programa paprašys jūsų nurodyti įdiegtos „Java JRE“ vietą. Kaip matote 5 paveiksle, aš naudojau „Sun Java 1.6.0_07“.

Kai spustelėsite Diegti, diegimas turėtų būti baigtas ir paslauga pradės veikti. Galite įsitikinti, kad „Tomcat“ veikia tinkamai, nurodydami savo žiniatinklio naršyklę adresu // localhost: 8080 (vietinį kompiuterį pakeisdami atitinkamu vardu ar IP adresu, jei nenaudojate žiniatinklio naršyklės, veikiančios kompiuteryje, kuriame įdiegta „Tomcat“). Rodomas tinklalapis turėtų atrodyti panašus į 6 paveiksle pateiktą ekrano kopiją.

Dabar, norėdami įdiegti „Hudson“, nukopijuokite failą „hudson.war“ į „Tomcat“ diegimo katalogo žiniatinklio aplankų katalogą. Jei naudojote tą patį diegimo katalogą, parodytą 3 paveiksle, tai būtų C: \ Tomcat6 \ webapps. „Tomcat“ karštai įdiegs WAR failus, tačiau dabar paprasčiausia iš naujo paleisti „Tomcat“. Tai galima padaryti dviem būdais. Pirmasis yra atidaryti DOS apvalkalą ir įvesti šias komandas:

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

Antroji galimybė yra atidaryti „Services“ programėlę. Šią programėlę galite rasti valdymo skydo grupėje Administravimo įrankiai, kurią galite rasti spustelėję mygtuką Pradėti „Windows“ įrankių juostoje, tada pasirinkę Nustatymai ir tada Kontrolės skydelis. „Services“ programėlėje raskite pavadintą paslaugą Apache Tomcat ir tada spustelėkite Perkrauti mygtuką. Tai pavaizduota 7 paveiksle.

Dabar „Hudson“ turėtų būti įdiegta. Tai galite patikrinti, nukreipdami savo žiniatinklio naršyklę į // localhost: 8080 / hudson. Pagrindinis Hudsono ekranas parodytas 8 paveiksle.

Tai viskas, ką gali! Jei jums patiko programų kūrimo aplinka, pagrįsta „Windows XP“ ir „Tomcat“, viskas paruošta. Jei norite sistemos, kurioje veikia „JBoss“ ir „Ubuntu Linux“, skaitykite toliau.

„Hudson“: JBoss 4.2.3 diegimas „Ubuntu Linux 8.04“ (Hardy Heronas)

Norėdami įdiegti „Sun Java 1.6“ į „Ubuntu“, atidarykite apvalkalą ir vykdykite šią komandą:

 sudo apt-get install sun-java6-jdk

Išduodant a sudo komandą, būsite paraginti įvesti slaptažodį.

Atkreipkite dėmesį, kad yra keli būdai, kaip įdiegti „JBoss“; čia aprašytoje technikoje sukursite tam skirtą jboss Vartotojas. Tai laikoma geriausia praktika ir geriau nei įdiegti „JBoss“ savo namų kataloge. Čia aprašyta procedūra buvo sutrumpinta iš naudingo aprašymo Ubuntu forumuose.

Pirmiausia turite atsisiųsti „JBoss 4.2.3.GA“ paketą. Ieškokite failo pavadinimu jboss-4.2.3.GA.zip.

Tada turėsite sukurti vartotoją, namų katalogą ir grupę, visa tai pavadinta jboss. Grupė yra patogumas, nenagrinėtas šiame straipsnyje; tai leis jums išplėsti „JBoss“ privilegijas kitiems vartotojams jūsų „Ubuntu“ serveryje.

1 sąraše rodomos komentuojamos komandos, skirtos sukurti jboss namų katalogą, vartotoją ir grupę, tada įdiekite „JBoss“ serverį. Kai kurios komandos yra pažymėtos priešais sudo nes tai yra šaknų privilegijuotos komandos.

Sąrašas 1. „jboss“ paskyros sukūrimas ir serverio įdiegimas

echo Sukurkite „jboss“ grupę sudo groupadd jboss echo Sukurkite „jboss“ vartotoją, apibrėžkite „bash“ kaip numatytąjį vartotojo apvalkalą, o „home / jboss“ - kaip namų katalogo aidą ir paverskite vartotoją jboss grupės „jboss sudo useradd -s / bin / bash“ dalimi - d / home / jboss -m -g jboss jboss echo Nukopijuokite jboss-4.2.3.GA failą į / home / jboss arba atsisiųskite tiesiai į tą katalogą sudo mv jboss-4.2.3.GA / home / jboss echo Pakeisti savininką failo jboss sudo chown jboss: jboss /home/jboss/jboss-4.2.3.GA echo Prisijunkite prie jboss paskyros sudo su jboss echo Eikite į jboss namų katalogą cd ~ echo Išpakuokite failą jboss-4.2.3. GA išpakuokite jboss-4.2.3.GA echo Sukurkite simbolinę nuorodą „jboss“, skirtą „jboss-4.2.3.GA“. echo Tai leidžia keisti JBoss versijas su minimaliais pakeitimais ln -s jboss-4.2.3.GA jboss

Jei išpakavimo komanda dar nėra įdiegta, įveskite šią komandą (kai esate prisijungę kaip „sudo“ palaikantis vartotojas), kad ją įdiegtumėte:

„Sudo apt-get install“ išpakuokite

Dabar iš esmės yra įdiegtas „JBoss“ serveris. Serverį galite paleisti naudodami šią komandą:

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

Tačiau šiame pavyzdyje jūs įdiegsite automatinio paleidimo scenarijų, kad paslauga būtų paleista automatiškai, kai paleidžiamas pagrindinis kompiuteris. „JBoss“ atsisiuntime yra trys skirtingi „int.d“ scenarijai, tačiau kiekvieną iš jų reikia patobulinti; galite atsisiųsti jboss-init.sh scenarijų, kuris įgalins automatinį serverio paleidimą ir sustabdymą. Tada vykdykite komandas, nurodytas 2 sąraše.

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