Allow builds to report a short message, to let users distinguish between various error cases ("Failed to obtain code" is different from "Failed to compile" and from "Unit tests failed").
Show these anywhere where we show the build status now (Like Revisions).
We could possibly hard-code N such possible results, but I fear users will always come up with new ways to fail.
The use-case I have is let users distinguish between different kinds of failures:
- build system blew up -> call build-eng
- something doesn't compile / tests fail - these are only slightly different; I think users might take "doesn't compile" more seriously than "2 tests fail".
- Deployment failed because of network -> try again later.
- Deployment failed because something else -> call build-eng.
And depending on how smart the build system:
- Build failed because master is broken -> fix master and try again.
- 4 tests failed, because Alice broke them last week -> go bug Alice to fix it.