410 likes | 550 Views
MS Team Foundation Server. Automation Builds Ivan Peršić, Novatec. Ivan Peršić, inf. i.persic@novatec.hr ivanpersic2@gmail.com Novatec, Kofax Algebra, Mencl. O meni. Uvod Što nam TFS omogućuje? TFS Infastruktura Automatski Buildovi TFS Automatski Buildovi Prilagodba Builda
E N D
MS Team Foundation Server Automation Builds Ivan Peršić, Novatec
Ivan Peršić, inf. • i.persic@novatec.hr • ivanpersic2@gmail.com • Novatec, Kofax • Algebra, Mencl O meni
Uvod • Što nam TFS omogućuje? • TFS Infastruktura • Automatski Buildovi • TFS Automatski Buildovi • Prilagodba Builda • Kreiranje Build konfiguracije(screenshots) • Zaključak Sadržaj
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. Uvod
Check In - > Commit (TFS->SVN) • Get Latest -> Update (TFS->SVN) • Queue new Build -> Kick build (CCNet) Termini
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 TEAM FOUNDATION SERVER
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 TFS infrastruktura
TFS je namjenjen za rad u domenskom okruženju. napomena...
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) 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... 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. Automatski Build?
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 Vrste Buildova
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”. Continuous IntegrationBuild
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 Continuous 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... Continious 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 Continuous Integration 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) 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. Full Build – Night Build
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 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 Build Mašina
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) TFS Build konfiguracija
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 Build Template
PROFESSIONAL Team Foundation Server 2010 Ed Blankenship Martin Woodward Grant Holliday Brian Keller Materijali
MS TFS 2010 definitivno valja razmotiriti jer znatno olakšava i poboljšava uspješano funkciniranje tima • Pitanja? • Pizza i pivo Zaključak