MS Team Foundation Server
description
Transcript of MS Team Foundation Server
Automation Builds
Ivan Peršić, Novatec
*MS Team Foundation Server
*O meni
*Ivan Peršić, inf.
*Novatec, Kofax
*Algebra, Mencl
*Sadržaj
*Uvod
*Što nam TFS omogućuje?
*TFS Infastruktura
*Automatski Buildovi
*TFS Automatski Buildovi
*Prilagodba Builda
*Kreiranje Build konfiguracije(screenshots)
*Zaključak
*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.
*Termini
*Check In - > Commit (TFS->SVN)
*Get Latest -> Update (TFS->SVN)
*Queue new Build -> Kick build (CCNet)
*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
*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
*TFS Infrastruktura
*napomena...
*TFS je namjenjen za rad u domenskom okruženju.
*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)
*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.
*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
*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”.
*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
*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...
*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
*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)
*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.
*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
*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
*Instalacija
*Instalacija TFS Build Servisa
*Podešavanje servisa
*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)
* 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
*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
*Primjer Workflowa
*Web acces: Buildovi
*Web acces: Buildovi detalji
*Quee Build
*Statusi builda
*Materijali
PROFESSIONAL
Team Foundation Server 2010
Ed Blankenship
Martin Woodward
Grant Holliday
Brian Keller
*Zaključak
*MS TFS 2010 definitivno valja razmotiriti jer znatno olakšava i poboljšava uspješano funkciniranje tima
*Pitanja?
*Pizza i pivo