Archiv für die Kategorie ‘TF Build’

Maven Buildskripte mit TeamBuild ausführen

Dienstag, 22. Juni 2010

Eine Frage die sich vieler unserer Kunden mit einer heterogenen System-/Programmlandschaft stellen ist die Frage: „Muss ich meine Maven Buildskripte jetzt mit Team Foundation Build 2008 / 2010 neu schreiben?“

(more…)

Prevent test results blowing up your TFS Databases

Montag, 14. Juni 2010

After migrating from TFS 2008 to TFS 2010 the way test results are handled has changed.

Szenario

When running tests a whole system szenario is setup which means that a lot of files and additional content  is copied to the test run folder

Issue

 When test results are published to TFS 2010 the content of the test run folder is also published. This causes the TFS databases to grow rapidly

Solution

1.       Disable publishing test result

2.       Cleanup test result folders before publishing the test results

3.       Publish test results manually

HowTo: Disable publishing test results

Simply set a specific MSBuild property that is used by the TestToolsTask

<PublishTestResults>false</PublishTestResults>

TFS 2010: Cleanup test result folders before publishing the test results

The test run’s execution folder is the out directory. From that directory we drop everything except the  instrumented binaries and debug symbols. This allows us to still retrieve code coverage data. Dropping all other files will prevent the test execution when we open the test results from the build summary.

<CreateItem Include="$(TestResultsRoot)\**\Out\*.instr.pdb">

    <Output TaskParameter="Include" ItemName="InstrumentedDebugSymbolFiles"/>

</CreateItem>

<RegExReplace Input="@(InstrumentedDebugSymbolFiles)" Expression="\.instr\.pdb$" Replacement=".exe">

    <Output ItemName="InstrumentedExeAssemblies" TaskParameter="Output" />

</RegExReplace>

<RegExReplace Input="@(InstrumentedDebugSymbolFiles)" Expression="\.instr\.pdb$" Replacement=".dll">

    <Output ItemName="InstrumentedDllAssemblies" TaskParameter="Output" />

</RegExReplace>

<CreateItem Include="$(TestResultsRoot)\**\Out\**\*" exclude="@(InstrumentedExeAssemblies);@(InstrumentedDllAssemblies);@(InstrumentedDebugSymbolFiles)">

 

    <Output TaskParameter="Include" ItemName="TestOutputToDelete"/>

</CreateItem>

<Delete Files="@(TestOutputToDelete)"  />

HowTo: Publish test results manually

In order to publish the test result we just use the publishing feature of mstest. We identify all trx files and publish them one by one. For ease of use we do not determine the MSTest.exe path dynamically. We just defined a property that keeps the path.

<MSTestCommand>$(ProgramFiles)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe</MSTestCommand>

Using this property and the information from the current build we can easily publish the results as follows:

<!– Get all trx files for publishing –>

<CreateItem Include="$(TestResultsRoot)\**\*.trx">

    <Output TaskParameter="Include" ItemName="TestResultFiles"/>

</CreateItem>

   

<!– Now publish all trx files –>

<Exec Command="&quot;$(MSTestCommand)&quot; /publish:&quot;$(TeamFoundationServerUrl)&quot; /publishbuild:&quot;$(BuildUri)&quot; /PublishResultsFile:&quot;%(TestResultFiles.Identity)&quot; /teamproject:&quot;$(TeamProject)&quot; /platform:&quot;Mixed Platforms&quot; /flavor:&quot;Debug&quot;" ContinueOnError="true" />

Please also notice that we do not determine the build configuration (platform and flavor) dynamically. We “hard-coded” it.

VS 2010 Architecture Tools – Layer validation aktivieren

Mittwoch, 09. Juni 2010

Wie kann ich die Layer Validation während des Team Build-Prozesses ausführen? Wei aktiviere ich Architekturvalidierungen während des zentralen Builds?

(more…)

Visual Studio 2010 – Einrichten von Symbol- und Source-Server

Freitag, 04. Juni 2010

Wie können zentral gebaute Debug-Symbole verteilt werden? Wie kann man Quellcode für das Debugging in der richtigen Version passend zur Applikationsversion bereitstellen?

(more…)

Migration von Team Build 2008 auf Team Build 2010

Donnerstag, 06. Mai 2010

Wie kann ich meine angepassten Build-Prozesse in Form von TFSBuild.proj-Dateien auf das neue Team Build 2010 migrieren?

Wer mit TFS 2008 eine Build-Infrastruktur aufgebaut hat und zahlreiche Prozess aufgesetzt und angepasst hat, sollte ein Upgrade auf den neuen Team Foundation Server 2010 genau planen. Die folgenden Schritte sollen helfen, nichts zu vergessen und sich auf die Migration vorzubereiten.

(more…)

Skalierung von Build-Umgebungen

Montag, 03. Mai 2010

Wie kann die Build-Umgebung mit Team Foundation Build 2010 für kleine lokale bis hin zu global verteilten Teams skaliert werden?

(more…)

Einrichten einer Buildumgebung mit Team Foundation Server 2010

Montag, 15. März 2010

Diese Schritt-für-Schritt-Anleitung zeigt die Konfiguration eines Build-Controllers und Build-Agents um mit Team Foundation Server 2010 Builds starten und auswerten zu können. Allgemeine Informationen rund um das Thema Build Management finden Sie in unserem Build Whitepaper.

(more…)

Company-Wide Build Processes – A Vision Within Reach

Sonntag, 07. Februar 2010

[Deutsche Version des Artikels]

A significant amount of project effort, especially at customers doing mainly product development, goes into migrating and optimizing build processes. Build processes exhibit 3 important aspects, which due to their criticality and benefits legitimate project costs:

  1. Build processes are implicitly business critical – only a working build process results in deliverable products.
  2. Heterogeneous build processes imply high – mostly hidden maintenance efforts without directly visible benefits. Small changes in “the scripts” are long lasting and expensive tasks which can be done by high qualified resources only.
  3. Build processes often require manual steps, which can be automated with modern platform. Which saves costs!

This article introduces the new free AIT Build Suite 2010. With which complex build processes can be configured easily using centralized builds with Microsoft Visual Studio Team Foundation Server 2010.

(more…)

Unternehmensweite Buildprozesse – eine Vision rückt in greifbare Nähe

Freitag, 05. Februar 2010

[English version of this article]

In unseren Projekten, vor allem bei Kunden mit Schwerpunkt auf Produktentwicklungen ist ein wesentlicher Teil der Arbeit die Migration und Optimierung von Buildprozessen. Buildprozesse besitzen 3 wesentlich Eigenschaften, die aufgrund des Nutzens die anfallenden Kosten rechtfertigen:

  1. Buildprozesse sind implizit geschäftskritische Prozesse – nur ein                   funktionierender Build resultiert in einem auslieferbaren Produkt.
  2. Stark heterogene Buildprozesse erforden einen hohen – meist versteckten Wartungsaufwand ohne direkten Nutzen. Kleine Änderungen an “den Skripten” dauern lange und involvieren zu viele qualifizierte Ressourcen.
  3. Buildprozesse erfordern häufig manuelle Schritte, die sich aber mit modernen Tools automatisieren lassen. Das spart Kosten!

Dieser Beitrag stellt die neue, kostenlose Build Suite 2010 der AIT vor. Damit lassen sich komplexe Buildprozesse auf Basis des Microsoft Visual Studio Team Foundation Server 2010 einfach und parametrisierbar umsetzen.

(more…)

Projekteigenschaften von Visual C++ Projekten mit Property Sheets konsolidieren

Donnerstag, 28. Januar 2010

Bei der Pflege von C++ Solutions fällt ein größerer Anteil der Aufwände auf die Projekteigenschaften wie z.B. die Liste Include-Pfade. Nicht selten kommt es bei “gewachsenen” Solutions zu umfangreichen Listen von “..\..\..\include” Verzeichnissen:

image

Wenn dies in mehreren 100 Projekten geändert werden muss, ist das nicht mehr benutzerfreundlich. Abhilfe schaffen gemeinsame Property Sheets, die sogenannten .props-Dateien…

(more…)