130 likes | 282 Views
Commentor A/S Hørkær 24, 2730 Herlev. Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk. Build jobs med Team Foundation Server Baseret på 3 måneders erfaringer med Windows Mobile Projekter. Baggrund – kort præsentation af projektet og mine roller
E N D
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Build jobs med Team Foundation ServerBaseret på 3 måneders erfaringer med Windows Mobile Projekter • Baggrund – kort præsentation af projektet og mine roller • Kort præsentation af TFS – hvilke funktioner tilbydes • Hvorfor bruge build server til builds • Afvikling af et build job – overblik over de steps der gennemløbes • Hvordan oprettes et build job • Hvordan redigeres et build job • Hvordan startes et build job • Setup projekter under TFS build jobs – hvordan kan det gøres • Erfaringer med builds under TFS – uhensigtsmæssigheder og workarounds • Mit build job – en skitse over det skelet jeg bygger build jobs over • Referencer • Debat, spørgsmål og kommentarer
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk BaggrundKort præsentaion af projektet og mine roller • Microsoft udvikler ERP relateret SW til Windows Mobile 5.0 • Klient applikationer til devices .NET Compact Framework 2.0 • Server komponenter .NET 2.0, ASP.NET 2.0 • ERP komponenter f.eks. Axapta • Udviklingskomponenter (SDK) .NET 2.0, .NET CF 2.0 • Installations projekter • Devices CAB filer • Serverkomponenter m.m. MSI filer • Udviklingskomponenter MSI filer • Roller • Test og planlægning af test og test miljøer • Opsætning af build jobs • Udvikling
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Kort præsentation af TFShvilke funktioner tilbydes • Opgavestyring ifm. projekter • Styring af indberetning og rettelse af fejl • Source Control – afløser for VSS • Rapporteringsværktøjer • Central styring af build jobs og test • Build server skal installeres særskilt • Kan installeres på TFS server eller på seperat maskine • Der kan installeres flere build servere • Hver build server kan kun køre ét job ad gangen for hvert projekt
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Hvorfor bruge build server til buildsHvad er der galt med ”Build Solution”. • Risici ved lokale builds • Kodeændringer checkes ikke ind • Kode, der ikke kan kompilere, checkes ind • Hvem bygger ”master” versionen • På build server bygges med den kode der er checket ind i Source Control • Build jobs baseres på MSBUILD – stor fleksibilitet • Automatisk generering af changesets • Automatisk kørsel af unit tests – hvis testen fejler, fejler hele build jobbet • Nem integration af egne scripts eller funktioner • Builds kan startes decentralt af udvikler, men køres på build serveren • Historik over builds og genererede binaries • Let at starte automatisk builds på fastsatte tidspunkter f.eks. hver nat
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Afvikling af et build joboverblik over de steps der gennemløbes • 1. BeforeEndToEndIteration*2. BuildNumberOverrideTarget*3. InitializeEndToEndIteration4. BeforeClean*5. CoreClean6. AfterClean*7. Clean8. InitializeBuild9. BeforeGet*10. InitializeWorkspace11. CoreGet12. AfterGet*13. PreBuild14. BeforeCompile*15. CoreCompile16. AfterCompile* • 17. Compile18. GetChangeSetsAndUpdateWorkItems19. PostBuild20. BeforeTest*21. CoreTest22. AfterTest*23. Test24. PackageBinaries*25. TeamBuild26. BeforeDropBuild*27. CoreDropBuild28. CopyLogFiles29. AfterDropBuild*30. DropBuild31. AfterEndToEndIteration*32. EndToEndIteration
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Hvordan oprettes et build job • Fra Team Explorer i Visual Studio startes en wizard • Under kørslen af wizarden angives • Navn • Beskrivelse • En eller flere solutions der skal bygges • Konfiguration, f.eks. ”Release” • Build server jobbet skal køres på • Lokal folder på buildserver til build • Folder til drop for build • Evt. angivelse af hvilke tests der skal køres efter compile. Henviser til en .vsmdi fil. • Valg om der skal laves kodeanalyse (FxCop)
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Hvordan redigeres et build job • Wizard ”New Team Build Type” danner projekt fil (xml) • Jobbet redigeres via denne xml fil • Filen findes i Source Control under ”TeamBuildTypes”
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Hvordan startes et build job • Under hvert projekt i Team Explorer, findes mappen ”Team Builds” med de builds der findes for dette projekt. • Jobbet startes via højreklik. • Status for tidligere udførte builds kan ses ved dobbeltklik.
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Setup projekter under build jobsHvordan kan det gøres • MSBUILD understøtter ikke build af setup projekter • Denne mangel ”arver” TFS Build Jobs, da de er baseret på MSBUILD • Løsningen er at kalde et script f.eks. i AfterCompile steppet. • Først kompileres selve projektet. • I scriptet bygges setup projektet med DEVENV kommandoen • Derefter kopierer scriptet den resulterende fil (f.eks. MSI) til dropfolderen.
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Erfaringer med builds under TFSuhensigtsmæssigheder og workarounds • Setup projekter understøttes ikke brug AfterCompile script • MSBUILD opfører sig nogen gang anderledes end Visual Studio • Kode der bygger fint under VS bygger ikke under TFS build. Som regel en god forklaring, men ind i mellem mystiske fejl der f.eks. løses ved at fjerne og genindsætte en reference. • Tests kan udføres under VS men fejler når de kaldes fra TFS build. • Hvis TFS serveren står i en anden tidszone end build serveren nummereres builds forkert. En løsning kan være at definere eget build nr. • Hvis en mappe under build folderen er åbent f.eks. i explorer, vil build jobbet fejle, da det ikke kan lave en CLEAN. • Første gang et job kører, tager det meget lang tid at generere changeset. Hvis jobbet fejler, genereres changeset igen ved næste kørsel • Et build job kan ikke stoppes, når det er sat i gang • Setup projekter med ”project output” kompilerer binaries igen, når setup projektet bygges.
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Mit build joben skitse over det skelet jeg bygger build jobs over • BeforeCompile • Generer nyt versionsnummer • Opdater versionsnummer i fælles ”AssemblyInfo.cs” • AfterCompile • Fjerner skrivebeskyttelse på alle filer under build folder • Signerer evt. binaries med midlertidig signatur • Genererer evt. help files • Bygger setup projekt • Signerer evt. MSI / CAB fil med midlertidig signatur • Kopierer output fra setup projekt til Drop Folderen
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Referencer • http://msdn2.microsoft.com/en-us/library/ms252495.aspx • http://msdn2.microsoft.com/en-us/library/ms400688.aspx • http://blogs.msdn.com/anutthara/archive/2006/01/05/509606.aspx
Commentor A/S Hørkær 24, 2730 Herlev Tel : (+45) 44530760, Fax : (+45) 44530761 Web : www.commentor.dk, Email : info@commentor.dk Spørgsmål og kommentarer