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 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
Instalacija
Instalacija TFS Build Servisa
Podešavanje servisa
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
Koraci kreiranja TFS Build konfiguracije
Koraci kreiranja TFS Build konfiguracije
Koraci kreiranja TFS Build konfiguracije
Koraci kreiranja TFS Build konfiguracije
Koraci kreiranja TFS Build konfiguracije
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
Primjer Workflowa
Web acces: Buildovi
Web acces: Buildovi detalji
Quee Build
Statusi builda
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