 |
MIFOS Project Home MIFOS Wiki Home
Cruise Control
Currently on grape.mifos.org, which is hosted at linode. This is a virtual server that has variable "time slices" and memory. It can very easily be pushed to it's limits, causing mysterious build/fest failures you may not see on your development machine. Expect to see builds take 10 to 20 times longer than on your box. It may be frustrating at time, but it actually helps expose stability and performance issues with the system.
- Design/tune your code to use less memory, and you might even end up with more efficient algorithms.
- Make sure your tests don't leak memory / database rows. Compare row counts and data pre setUp() and post tearDow(); this will also prevent tests from conflicting with each other when their order changes.
Cruise Control Installation:
CC is installed in /home/cruise/cruisecontrol. It is started as a daemon from /etc/init.d/cruisecontrol. Console output (stdout/stderr) are sent to /var/log/cruisecontol/cruisecontrol.out.log, and the log file is rotated by /etc/logrotate.d/cruisecontrol.
Each build should perform the following targets: jdepend, jspc, war, coverage (implied test), findbugs.
The jspc task is currently failing so it is temporarily removed until all JSPs can compile, and deprecated ones are removed. More stricter verification can be done by enabling web.xml validation, in order to uncovering malformed TLDs or incompatible versions of the J2EE? specs. The jspc task uses jasper from Tomcat 6.
Possible future enhancements:
- Put the MySQL database on a ramdisk (purpose would be to speed up the tests: has anyone done this on other projects and if so what was the speedup?), tho this approach is more meaningful for a dedicated server than the current virtual host.
- Bring back the jspc target in ~cruise/projects/build-mifos.xml. Maybe even distribute Mifos with precompiled JSPs (see precompiled-war target in mifos/build-jspc.xml). (Why would you distribute compiled JSPs? Doesn't the output of the JSP compiler differ from one servlet container to the next?)
See also
|