harriyott.com

Build machine visibility

The build machine does many things, which I've previously listed. The whole process takes about 15 minutes, during which an plain orange HTML page is shown full screen. If the build passes, it turns green, and red if it fails, and then a look through the log file to find out what went wrong.

I decided to add some feedback to the orange screen so I know what's happening during the build. In each target, before each task, I added a WriteLinesToFile task that writes a brief description of the task to a file:

<target name="UnitTests">
<WriteLinesToFile
File="@(CurrentTaskFile)"
Lines="Running unit tests"
Overwrite="true"/>
<Exec Command="$(RunUnitTests)"/>
</target>


The HTML page refreshes every 5 seconds, and uses some JavaScript to insert the contents of this file into the page:



I made it horrendously big, because I sit the other side of the room to the build machine. After the final task has completed successfully, an empty string is written to the file, so a plain green screen is displayed on success. If the build fails, the "Currently:" becomes "Failed:", so the failing task is instantly visible.

2 December 2005