cruisecontrol.netcode-statistics

merge testresults from multiple cruise control .net projects


In a SOA - environment there tend to be a lot of projects in Cruise Control .net - I have about 30 at the moment and there will be more to come. In CI the narrow focus is a good thing but for me who want to present statistics of code quality and other metrics for the team as a whole it is a bit frustrating collecting the data from all the projects. So I wonder: Has anyone made some kind of summary project? With ccnets mergetask it should be doable as long as they don´t have the same name right?


Solution

  • It was no problem whatsoever

    I added a nulltask to generate a green build and a merge task with a gazillion references to all the other projects. the statistics xpaths expected only one report of each type so they need some tweaking but that's that.

    Ideally had been a way to copy all the reports from each project to the statisticsproject - but the naming and cleanup fixes made that a lot more complex solution. As long as we don´t create more than a handful new projects in a sprint this is painless.

    example:

     <triggers>
          <intervalTrigger seconds="$(MyTimeBetweenChecks)" name="continuous" buildCondition="IfModificationExists" />
          <scheduleTrigger time="23:55" buildCondition="ForceBuild" name="ContinousTriggerNightly">
          </scheduleTrigger>
        </triggers>
        <tasks>
          <nullTask/><!-- returnerar success så projektet inte failar för det inget gör-->
        </tasks>
        <publishers>
          <merge>
            <files>
    
    
              <!-- nunit  NCover-NUnit-Results-->
    
              <file>$(ServerDictionary)TemplateService_All\Artifacts\NCover-NUnit-Results.xml</file>
              <file>$(ServerDictionary)InvoiceService_All\Artifacts\NCover-NUnit-Results.xml</file>
              <file>$(ServerDictionary)ContactService_All\Artifacts\NCover-NUnit-Results.xml</file>
             <!-- fxcopreport-->
    
              <file>$(ServerDictionary)TemplateService_All\Artifacts\fxcopreport.xml</file>
              <file>$(ServerDictionary)InvoiceService_All\Artifacts\fxcopreport.xml</file>
              <file>$(ServerDictionary)ContactService_All\Artifacts\fxcopreport.xml</file>
              <!-- ncover_symbolmodule-->
    
              <file>$(ServerDictionary)InvoiceService_All\Artifacts\ncover_symbolmodule.xml</file>
              <file>$(ServerDictionary)ContactService_All\Artifacts\ncover_symbolmodule.xml</file>
              <!-- ncover_SymbolModuleNamespaceClassMethod-->
              <file>$(ServerDictionary)ExportService_All\Artifacts\ncover_SymbolModuleNamespaceClassMethod.xml</file>
              <file>$(ServerDictionary)PackageService_All\Artifacts\ncover_SymbolModuleNamespaceClassMethod.xml</file>
    
            </files>
          </merge>