41
Automation Builds Ivan Peršić, Novatec * MS Team Foundation Server

MS Team Foundation Server

  • Upload
    mariko

  • View
    69

  • Download
    0

Embed Size (px)

DESCRIPTION

MS Team Foundation Server. Automation Builds Ivan Peršić, Novatec. Ivan Peršić, inf. [email protected] [email protected] Novatec, Kofax Algebra, Mencl. O meni. Uvod Što nam TFS omogućuje? TFS Infastruktura Automatski Buildovi TFS Automatski Buildovi Prilagodba Builda - PowerPoint PPT Presentation

Citation preview

Page 1: MS  Team Foundation  Server

Automation Builds

Ivan Peršić, Novatec

*MS Team Foundation Server

Page 2: MS  Team Foundation  Server

*O meni

*Ivan Peršić, inf.

*[email protected]

*[email protected]

*Novatec, Kofax

*Algebra, Mencl

Page 3: MS  Team Foundation  Server

*Sadržaj

*Uvod

*Što nam TFS omogućuje?

*TFS Infastruktura

*Automatski Buildovi

*TFS Automatski Buildovi

*Prilagodba Builda

*Kreiranje Build konfiguracije(screenshots)

*Zaključak

Page 4: MS  Team Foundation  Server

*Uvod

*Održanje kvalitete razvoja je vrlo bitan čimbenik u uspješnosti našeg softvera a često mu se i ne stigne kvalitetno pristupiti(kratki projekti, rokovi)...

* Uz Kotrolu Revizije(Version Control - Revision Control), Automatski Buildovi (Build Automation) jedni su od najvažnijih temelja za održanje kvalitete razvoja softvera.

*U ovoj prezentaciji proučit ćemo riješenje koje nam nudi Microsoft.

Page 5: MS  Team Foundation  Server

*Termini

*Check In - > Commit (TFS->SVN)

*Get Latest -> Update (TFS->SVN)

*Queue new Build -> Kick build (CCNet)

Page 6: MS  Team Foundation  Server

*TEAM FOUNDATION

SERVER

*TFS uz pomoć nekoliko integriranih alata omogućava cijelom timu jednostavno korišenje slijedećih usluga:

*Version control,

*Build automation,

*Project management(praćenje "work itema",taskovi, bugovi, izvještaji

*Test case management

Page 7: MS  Team Foundation  Server

*TFS infrastruktura

*Ukoliko instaliramo TFS u testne svrhe dovoljno je na praznoj VM pokrenuti instalaciju i prihvatiti zadane postavke(instalirati sve komponente na jednu mašinu)

*U praksi instalacija i podešavanje TFS izvodi se na složenoj infrastrukturi i to na minimalno dva servera od kojih je jedan fizički(TFS Server – source kontrola, taskManagment...) i jedan virtualni(BuildServer) Build Machine

Page 8: MS  Team Foundation  Server

*TFS Infrastruktura

Page 9: MS  Team Foundation  Server

*napomena...

*TFS je namjenjen za rad u domenskom okruženju.

Page 10: MS  Team Foundation  Server

*Automatski Build?

*Uz korištenje source kontrole, Automatski Build je slijedeća važna stvar koju bi trebali koristit kako bi dopridonijeli kvaliteti razvoja produkta

*U nekim produktima upotrebljava se od 70’ godina, (bat skripte)

Page 11: MS  Team Foundation  Server

*Automatski Build?

*Prebacivanje našeg programerskog(lokalnog) build procesa u zajednički - centralni proces koji će iz naše aplikacije učiniti uporabljiv produkt, preko jednostavne akcije(jedan klik ili triger).

*Build proces obuhvaće: Kompajliranje koda u binaran,

*a može i: pakiranje binarnog koda u msi, xap.., pokretanje testova, kreiranje dokumentacije, deploy...

Page 12: MS  Team Foundation  Server

*Automatski Build?

*Poboljšava integraciju koda,

*ostalim „ne programerima” vidjeti produkt u razvojnoj fazi

*omogućuje lakšu indentifikaciju defekata po radnim verzijama produkta, u svakom koraku razvoja.

Page 13: MS  Team Foundation  Server

*Vrste Buildova

*TFS nam omogućava više različitih vrsta buildova no mi ćemo se posvetiti dvoje najvažnijim:

*Continuous Integration Build,

*Full Build/Night Build

Page 14: MS  Team Foundation  Server

*Continuous Integration Build

*Integration Build služi najviše nama developerima a brine se da naš kod bude integralan

*Izaziva „viku” od članova tima na krivca koji skrši build

*Radi na principu automatskog pokretanja prilikom svakog „Check In-a”.

Page 15: MS  Team Foundation  Server

*Continuous Integration Build

*Primjer: Napravio sam izmjenu na kodu i Check In.

*Time se je startao Build

*Ukoliko Build prođe znači da je moj kod integralan, no ukoliko ne prođe dužan sam ga s čim prije natjerati da radi.(rezultate je moguće pratiti kroz VS, Build viewer, TeamExplorer, e-mail)

*Najčešći slučaj, dodao sam referencu na projekt i jednu klasu koja koristi referencu

Page 16: MS  Team Foundation  Server

*Continious Integration Build

*Napravio sam check-in klase, a zaboravio na chekc-in, project file-a. Takav solution se neće buildati

*Ukoliko me na to nebi upozorio Integration Build, drugi članovi tima bi mogli „Getat” trenutni kod i time dobiti projekt kojeg je nemoguće buildati...

Page 17: MS  Team Foundation  Server

*Continuous Integration Build

*Integration build je build s minimalnom konfiguracijom,

*U biti obuhvaća samo kompajliranje kode, kako bi trajao što kraće i čim prije upozorio na probleme

*TFS osim Integration builda, sadrži i Gatten Check In build, koji pokušava buildati prije nego dopusti Check In i time izbjegava pucanje.

*Ukoliko Build uspije znači da je naš kod integralan, no ukoliko ne prođe dužni smo ga s čim prije fiksati i natjerati da radi

Page 18: MS  Team Foundation  Server

*Full Build – Night Build

*Full/Night Build, riječ Full dolazi radi opsega buildanja: Kompajliranje koda u binaran, pakiranje binarnog koda u msi, xap.., pokretanje testova, kreiranje dokumentacije, deploy, a Night zato jer se on pokreće u zakazano vrijeme najčešće noću dok nitko ne radi

*Ovaj build omogućava da u tekućem danu, omogući verziji koda iz predhodnog dana da bude uporabljiv produkt

*Po potrebi može se i ručno pokrenuti tokom dana(Queue new build)

Page 19: MS  Team Foundation  Server

*Full Build – Night Build

*Full build je više koristan ne-programerima(Managerima i Testerima).

*Automatski Deploy(web app.) ili automatska izrada instalacije(Win app.) omogućavaju korištenje korisnicima koji su izvan razvojnih okruženja tj. Nemaju razvojna računala

*Na osnovu Noćne verzije evidentiraju se Bugovi i Defekti.

Page 20: MS  Team Foundation  Server

*Build Mašina

*Predhodno kad smo govorili o infrastrukturi i instalaciji napomenuli smo da se instalacija TFS-a dijeli na minimalno dvije, i to TFS Server i TFS Build Service.

*Build mašina je server na kojem je instaliran MS TFS Build Service

Page 21: MS  Team Foundation  Server

*Build Mašina

*Build mašina mora imati instalirano slijedeće:

*Odgovarajuć Os(MS Windows Server

*Odgovarajuće razvojno okruženje, sve kao i razvojne mašine(svi framework-si, i ostalo)

*TFS build service, i Tfs Build agent

*Zbog instalacija raznih dodatka i portabilnosti preporučeno je koristiti VM

Page 22: MS  Team Foundation  Server

*Instalacija

Page 23: MS  Team Foundation  Server

*Instalacija TFS Build Servisa

Page 24: MS  Team Foundation  Server

*Podešavanje servisa

Page 25: MS  Team Foundation  Server

*TFS Build konfiguracija

*Kreiranje build konfiguracije na TFS-u, svedeno je na svega par koraka,

*Za razliku od sličnih riješenja kamo to radimo pisanjem skripti (CC net)

Page 26: MS  Team Foundation  Server

* Koraci kreiranja TFS Build konfiguracije

Page 27: MS  Team Foundation  Server

* Koraci kreiranja TFS Build konfiguracije

Page 28: MS  Team Foundation  Server

* Koraci kreiranja TFS Build konfiguracije

Page 29: MS  Team Foundation  Server

* Koraci kreiranja TFS Build konfiguracije

Page 30: MS  Team Foundation  Server

* Koraci kreiranja TFS Build konfiguracije

Page 31: MS  Team Foundation  Server
Page 32: MS  Team Foundation  Server
Page 33: MS  Team Foundation  Server
Page 34: MS  Team Foundation  Server

*Build Template

*Sa instalacijom TFS Servera, dobijemo i default build template,

*Template je u MS Workflow formatu

*Novi template možemo izraditi sami ili modificirati postojeći

*Npr. Pokretanje testova na X. mašini

Page 35: MS  Team Foundation  Server

*Primjer Workflowa

Page 36: MS  Team Foundation  Server

*Web acces: Buildovi

Page 37: MS  Team Foundation  Server

*Web acces: Buildovi detalji

Page 38: MS  Team Foundation  Server

*Quee Build

Page 39: MS  Team Foundation  Server

*Statusi builda

Page 40: MS  Team Foundation  Server

*Materijali

PROFESSIONAL

Team Foundation Server 2010

Ed Blankenship

Martin Woodward

Grant Holliday

Brian Keller

Page 41: MS  Team Foundation  Server

*Zaključak

*MS TFS 2010 definitivno valja razmotiriti jer znatno olakšava i poboljšava uspješano funkciniranje tima

*Pitanja?

*Pizza i pivo