Kontinuerlig integrasjon Hudson Setup

I denne opplæringsserien vil vi utforske en sjelden diskutert (men svært verdifull) prosess for å utvikle programvare som er skuffende fraværende i IOS og mobil verden: Kontinuerlig integrasjon.


Også tilgjengelig i denne serien:

  1. Kontinuerlig integrasjon: Serie Innledning
  2. Kontinuerlig integrasjon: Tomcat Setup
  3. Kontinuerlig integrasjon: Hudson Setup
  4. Kontinuerlig integrasjon: Scripting Xcode Builds
  5. Kontinuerlig integrering: Scriptforbedringer

Hvor vi forlot

I del 1 diskuterte vi begrepet kontinuerlig integrasjon og hvordan det kan hjelpe oss med å utvikle programvare raskere. I del 2 demonstrerte vi hvordan du installerer "Apache Tomcat", som er webserveren som vil være vert for vår CI-programvare.


Presenterer hudson

Hudson er en kontinuerlig integrasjonsserver for åpen kildekode som er skrevet i Java. Det er en av de mest populære CI-serverne som brukes sammen med Jenkins og Atlassians Bamboo. Vi bruker Hudson fordi:

  • Det er enkelt å installere og konfigurere.
  • Det er enkelt å bruke.
  • Robust plugin-støtte er tilgjengelig.
  • Det er gratis!

Hudson vedlikeholdes for tiden av Oracle, som har uttalt at de har til hensikt å fortsette å støtte og utvikle Hudson sammen med samfunnet.


Hva gjør Hudson?

Hudson spiller en viktig del av CI-prosessen. Den overvåker kodelageret og kontrollerer kontinuerlig for oppdateringer. Når det er avgjort at det har vært en oppdatering, vil den gjøre en oppdatering / trekk og start byggingen. Det er viktig å merke seg at Hudson ikke er ansvarlig for selve byggingen. Det kan bare ringe et skript (som vi skal skrive) som skal gjøre bygningen og arkiveringen. Når skriptet har startet, vil Hudson overvåke skriptet. Hvis det mislykkes, vil det rapportere en ødelagt bygge.


Trinn 1: Last ned og installer Hudson

Det er veldig enkelt å sette opp Hudson. Først, navigere til Hudson nettside på http://hudson-ci.org/, og klikk deretter på nedlastingskoblingen for den siste produksjonsversjonen (2.1.2 i skrivende stund) dette vil laste ned en * .war-fil.

Når nedlastingen er ferdig, endre navn på filen til "hudson.war" og legg filen i Tomcats "webapps" -mappe:

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

Hvis serveren kjører, starter du den på nytt ved å kjøre shutdown-skriptet, vent noen sekunder, og kjør oppstartskriptet på nytt. Når det er gjort, åpne en nettleser og naviger til:

http: // localhost: 8080 / Hudson

Hudson forteller deg at det er satt opp. Når det er gjort, ser du hovedskjermen til Hudson.



Trinn 2: Lag ditt prosjekt

Nå som Hudson er oppe, må vi sette opp et prosjekt eller en jobb. Denne jobben vil forholde seg til et prosjekt som vi vil legge til i vårt CI.

Denne "jobben" vil være ansvarlig for å overvåke vårt depot, holde seg oppdatert og bygge prosjektet. Klikk på ny jobb og skriv inn prosjekt / appnavn som jobbnavn. Velg "Bygg et frittstående programvareprosjekt" som type jobb. Dette gir oss fleksibiliteten til å tilpasse jobben til våre behov. Klikk "ok" når du er ferdig.


Deretter må vi sette opp prosjektinnstillingene. De viktige seksjonene på denne siden er "Kilde
Code Management "," Build Triggers "og" Build ".


Trinn 3: Konfigurer kildekoden

I "Source Code Management" velger vi hvilken type lagringsplass vi bruker og ser nettadressen. I dette eksemplet bruker jeg GIT, men Subversion følger samme prosess.


Vær oppmerksom på at måten du kobler til lagringsplassen din, definerer hvordan denne delen er opprettet:

HTTPS

Det kan føre til et problem hvis du bruker HTTPS (brukernavn og passord) for å koble til et GIT-lager. I øyeblikket støtter Hudson ikke lett passordgodkjenning for GIT.

For de som bruker SVN, bare skriv inn i depotets url, og det skal spørre deg om brukernavn og passord. For GIT-brukere kan du prøve å skrive inn detaljer som dette:

 https: // brukernavn: password@serverurl/username/reponame.git

Dette bør fungere for deg, med mindre du har et "@" -symbol i passordet ditt, og i så fall vil du ikke kunne bruke HTTPS til godkjenning, du må bruke SSH.

SSH

Hvis du bruker SSH (ved hjelp av private / offentlige nøkler), må du sørge for at du genererer en SSH-nøkkel for byggeserveren din, og legg den til i lagerføreren din.

Du må også sørge for at lagringsserverne RSA fingeravtrykk legges til listen over kjente verter før du starter byggene dine. Den enkleste måten å gjøre dette på er å koble til serveren via SSH:

 ssh -T [email protected]

Du bør se noe slikt:


Ikke bekymre deg hvis du ser en feil som den ovenfor, etter at du har lagt til RSA-fingeravtrykk til listen over kjente verter. Dette betyr vanligvis at serveren ikke tillater shell-tilgang. Det viktigste er at vi kan koble til og vi kjenner serverens identitet.


Trinn 4: Sett Bygg Trigger

Vi må fortelle Hudson når vi vil at bygningen skal begynne. Vi skal studere repoen hvert minutt for å se om det har skjedd en endring.

Sjekk "Poll SCM" -boksen og skriv inn (som per bildet nedenfor):

* * * * *


Du trenger ikke å polle det hvert minutt. Hvis du vil endre den til bare å gjøre det daglig, eller hver time, kan du sette det også. Vær imidlertid oppmerksom på at jo oftere vi poller repo desto mer kontinuerlig vil vår prosess være.


Trinn 5: Legg til bygningskommandoen

Til slutt må vi kompilere prosjektet og eksportere det der det er hensiktsmessig. For å gjøre dette må vi legge til et byggesteg i byggeseksjonen.

Klikk på 'Add build step' og velg "Execute Shell". Vi vil da legge til en kommando som utfører byggeskriptet fra prosjektkatalogen (Vi har ikke lagt til dette ennå, vi skal gjøre det senere).


"$ Workspace" -strengen i bildet ovenfor refererer til arbeidskatalogen for prosjektet som det finnes i Hudson. Dette er det øverste nivået i ditt arkiv.

Når du er ferdig, klikk "lagre". Du vil bli tatt til hovedbyggeskjermbildet, og etter et sekund eller to vil du se at prosjektet gjør sin første bygg!


Trinn 6: Se på Build fail

Når du har lagret prosjektinnstillingene, blir du tatt tilbake til jobbpanelet. Etter noen sekunder vil du se en oppstart. Klikk på det lille terminalikonet for å se utdataene fra bygningen.


Vi kan se hva Hudson gjør. Det oppdaget en endring i SCM (i dette tilfellet er den den første tilkoblingen) og fortsetter å sjekke lagerkoden inn i arbeidsområdet. Det gjør alt dette vellykket, men det mislykkes når det prøver å utføre vårt byggeskript.

Vi kan se fra utgangen at den mislyktes fordi bygningsskriptfilen ikke eksisterer ennå. La oss legge til det i vårt prosjekt og forplikte det til depotet.



Trinn 7: Oppdater Repositoriet

Legg til en mappe som heter 'Scripts' i øverste nivå på depotet ditt. Når du er opprettet, bruk en tekstredigerer til å lage en fil som heter "build_script.sh" i "Scripts" -mappen med følgende tekst:

 #! / bin / sh echo "Vi skal bygge senere :)"

Alt dette skriptet gjør er å skrive ut en streng til kommandolinjen. Vi vil dekke hvordan du bygger prosjektet ditt neste opplæring, men for nå trenger vi bare å legge til skriptet i depotet.

Når filen er opprettet, legg den til i depotet ditt. Etter et øyeblikk eller så bør du se Hudson starte en ny bygg. Klikk på terminalikonet for å vise utgangen.

Alt går bra, du bør se noe som følger:


Nå som filen eksisterer, svikter bygningen ikke. Hvis du ser nøye ut, kan du også se resultatet av vårt skript på den tredje siste linjen.


Trinn 8: Utforsk Hudson

Før vi er ferdige, er det viktig å utforske noen få funksjoner i Hudson.

Hvor Hudson holder filene

Hvis du vil se hudson-mappen, ser du under skjult mappen ".hudson" i brukermappen din. Du kan få tilgang til det ved å velge go-> go to folder '(i finder) og skrive inn:

/ Brukere //.hudson

Det er her den magien skjer. Alle koden holdes i en arbeidsområdemappe under den aktuelle jobben. For prosjektet mitt (AwesomeApp) vil koden bli holdt i:

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

Det er viktig å forstå hvor filene ligger i Hudson's katalog. Du kan ha en ignorert fil som du må legge til manuelt, eller et SVN-problem som du må reparere.

Prosjekt Dashboard

Prosjektpanelet lar deg se all slags informasjon som er nyttig for å overvåke helsen til bygningen. Du kan se en logg over de siste endringene (inkludert en endring som nylig brøt bygningen).


Du kan også utforske arbeidsområdet fra nettleseren og se filene som er i arbeidsområdet.

Tilleggsfunksjoner

Hudson kan varsle deg om resultatet av en nybygging på noen måter. Den opprettholder et RSS-feed som du kan peke på, det kan sende deg e-post, det er enda et plugin for å få det til å snakke! Når du har litt tid, ta en titt på å konfigurere Hudson for å bruke disse funksjonene.

Neste gang

I den neste artikkelen vil vi gå gjennom å skrive byggeskriptet som vil kompilere og signere koden til en .ipa-fil klar til å bli installert på en iPhone eller iPad. Vi vil dekke bash basics, kommandoene som brukes og hvordan å overvinne vanlige fallgruver. Fang deg neste gang!