GOAL: For a tester to hit a “build” button to get the current trunk revision.
We want a fast bug report to build turnaround time, like immediate. A web page with a “bugs fixed” revision log entry, build errors, and build button. This would require a few things on the end of the developers to work:
1) Unit tests. First test: revision builds successfully. Subsequent feature tests included as well.
2) Super stable trunk. The developers must take responsibility to keep the trunk as stable as possible by learning to use branches and patching techniques.
Has anyone else done this? I wrote something once in a Trac tool for a python app with extensive unit test reporting (made easy with an exception-based runtime), but never for a C++ application. Are there any web apps like this out there?
The most important thing is to remove the build phase from the project manager’s work plate.
I have, but alas, not open source. I think there is a need in the open source community for something like this.
I have seen something similar being used by the SchoolTool project: push a button on the web page (that lists the changes since the last build), and a Debian package is produced out of the project’s Bazaar branch.
It may not do exactly what you want, but Cruise Control is good for automating builds. I have it set up to check a Mercurial repository every 5 minutes. If there are changes, it pulls, builds and runs the tests. Results are reported on a web page with the changesets that triggered the build. Errors are emailed to the buildmaster and the developer who checked in the failure.
Similar to CruiseControl mentioned above, but superior IMHO, is Hudson https://hudson.dev.java.net/. Very easy to deploy and configure. It’s open source, written in Java.
Here is a very large comparison table of continuous integration servers:
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix