Our goal is to understand where the time goes in our builds. More importantly, we want other developers to be able see it easily and witness the improvement or degradation of the build performance. The binary log is great, but we cannot have each Pull Request validation build produce one because it prolongs the duration of the build itself significantly. Plus one cannot really draw charts and present dashboards from a collection of binary logs.
We have decided to write our own logger in order to measure the events and push them to Application Insights. I hope to be able to publish the source code on GitHub really soon.
Our logger subscribes to the following msbuild events:
- BuildStarted/BuildFinished
- Produces the single
Build
entity.
- Produces the single
- ProjectStarted/ProjectFinished