It's not uncommon for tools run during a build process to create log files, xml or html files etc that you might want to keep, in other words Artifacts. Continua CI already has a mechanism for registering Artifacts, which enables them to be viewed/downloaded from the Build Artifacts page. Continua CI also has another way of viewing those files, Reports. Reports are viewed in an iframe, which allows you to stay within the Continua CI UI, but still navigate within the report files. A typical use of the Report feature is showing exported FinalBuilder html logs, or Code Coverage html reports (for example those produced by OpenCover).
Defining a Report
Defining a report is relatively simple. Just point it at a file you expect to appear in the Builds Workspace on the Server.
In this case we're expecting our build process to place a file named FinalBuilderReport.html in the $Workspace$\Reports folder. $Workspace$ will be replaced at run time with the builds workspace path on the server.
The next step is to make sure that the file actually gets copied to where we said it would be. We define a Workspace Rule to copy the file back to the build workspace on the server when the Stage completes. If your tool generates .css and image files then don't forget to add rules to copy those files into place too.
The final step is to make sure that the report file is actually produced. In this example, we are using an exported FinalBuilder Log file, which is created in $Workspace$\Output\FB7 - we tell FinalBuilder where the workspace is by setting a FinalBuilder variable (along with a buch of other stuff like version numbering etc) in the FinalBuilder Action.
Viewing the Report
All thats left to do now is run the build, and view the report, If everything went to plan, then when you click on the builds Report Tab, you should see something like this :
Notice the Home/Back/Forward Buttons. If your report comprises of multiple pages, and all the links in the html files are relative, then you get full history support in the iframe. FWIW, Open Cover with ReportGenerator does just that. We'll take a look at using Open Cover with Continua CI in a future post.