Upload
bathildis-strohschein
View
123
Download
0
Embed Size (px)
Citation preview
Become a Build Master with TFS
Roger BoeschDeveloper Technical SpecialistDeveloper and Platform Group
Agenda
Was ist Build Automation?Team Foundation Server Build
Build ExecutionBuild ArchitekturContinuous Integration
DemoBuild Customization
Build DefinitionenTargets and TasksBuild API
Demo
Build Automation ist nicht …
F5
Die Phasen in der Build Automation sind…
Collecting
Assembling
Validating
Auditing
Build Automation beantwortet folgende Fragen
Wird aus unseren Bits auch ein Produkt?Sind wir im Zeitplan?Ist die Produkt-Qualität gut?
Build Automation macht es einfach, den Puls im Team zu messen!
Team Foundation Server Build
Build Automation in Visual Studio Team System
Team Build 2008
Offizielle BezeichnungVisual Studio 2008 Team Foundation Server Build
Core Feature von TFS (Kein Zusatzprodukt)Umfassende, in TFS integrierte Build AutomationBietet “F5-Experience” für’s ganze TeamTeam Build benutzt MSBuild EngineTeam Build besteht aus
MSBuild Tasks für Team System Komponenten (Testing, Code Churn, Work Items Update etc.)MSBuild Project File
Erstellung im GUIDefinition der Build Optionen
Build Execution
Build Initiated from TFS
Prepare build agent and create
build number
Sync Sources
Compile and Analyze
Execute Tests
Update Work Items
Calculate Code
Coverage
Calculate Code Churn
Produce Build Report
Copy to Drop
Publish Results to
TFS
Notify Event Subscribers
BuildDefinition \ TFSBuild.proj
Team Build Architektur
Team FoundationServer
Build Agent
msbuild.exe
BuildDefinition\ TFSBuild.proj
msbuildm.exe
SolutionA.sln
msbuild.exe
SolutionB.sln
Calls
Compiles
Runs
Power Tools
Continuous Integration in TFS 2008
submits
processes
raises
handles
queries
queues
receives
servicesstarts
raises
handles
polls
notifies
Build Service
Version Control Service
Build Agent
Notification Application
Check-in Event
Build Completion
Event
Build Build Queue
Build Definitions
Changeset
Database
Developer
Build Automation
Roger BoeschDeveloper Technical SpecialistDeveloper and Platform Group
demo
Team Foundation Server Build
Build Customization
Anpassen der Build Definitionen
Core Build wird in TfsBuild.proj definiertCheck-out um den Build anzupassenTargets
Gruppieren einzelne Tasks und definieren die ReihenfolgeErlaubt es einzelne Bereiche aus der Kommandozeile aufzurufen
TasksTasks definieren Operationen, die in einzelnen Managed Assemblies liegenStellen den Code zur Verfügung, der während des BuildEigene Tasks können erstellt werden
Implementieren von ITaskAbleiten von der Helper Class Task
Team Build Managed API
Zugriff auf die selbe API wie Team BuildErlaubt die volle Automatiserbarkeit der UI-Funktionen und mehr...Gute Basis zur Integration von bestehenden Build Systemen (Nant, Ant, make etc.) in Team Build
Build customizen
Properties um den Build zu kontrollieren
Build Targets die überschrieben werden können
IncrementalGet StopOnFirstFailure
IncrementalBuild CleanCompilationOutputOnly
SkipWorkItemCreation
UpdateAssociatedWorkItemsOnBuildBreak
SkipLabel SkipGetChangesetsUpdateWorkItems
BeforeOnBuildBreak BuildNumberOverideTarget
BeforeCompile BeforeEndToEndIteration
BeforeTest AfterEndToEndIteration
PackageBinaries Before/After everything!
Team Build API Beispiel
C#TeamFoundationServer tfs =
TeamFoundationServerFactory.GetServer(“http://tfsserver:8080”);
IBuildServer buildServer = (IBuildServer)tfs.GetService(typeof(IBuildServer));
IBuildDefinition buildDef = buildServer.GetBuildDefinition("TeamProject", "Build Name");
buildServer.QueueBuild(buildDef);
VB.NET
Dim tfs As TeamFoundationServer = TeamFoundationServerFactory.GetServer("http://tfsserver:8080")
Dim buildServer As IBuildServer = DirectCast(tfs.GetService(GetType(IBuildServer)), IBuildServer)
Dim buildDef As IBuildDefinition = buildServer.GetBuildDefinition("TeamProject", “Build Name")
buildServer.QueueBuild(buildDef)
Build Customization
Roger BoeschDeveloper Technical SpecialistDeveloper and Platform Group
demo
Drei Dinge die man sich merken sollte
MSDN HelpUnderstanding Team Foundation Build Configuration Fileshttp://msdn2.microsoft.com/en-us/library/ms400710(VS.90).aspx
Microsoft.TeamFoundation.Build.targets file%ProgramFiles%\MSBuild\Microsoft\VisualStudio\TeamBuild\
Microsoft.TeamFoundation.Build.targets
!! DIESE DATEI NIEMALS EDITIEREN !!
Viele Angepasste Tasks sind bereits verfügbar – “Suchen“ bevor man selber zu programmieren beginnt
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after
the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.