Continuous integration is a hot topic now a days and is one of the best new tools for the software industry in resent years.
With that I would like to share some of my continuous integration best practices that I employ with in my development environment.
- Don't keep all the build code in one build file. Specially true when using ant. Ant is very powerful but can be very hard to debug when everything is a one big file. Split it into multiple files.
- Keep everything under source control.
- Keep one job doing one thing. It is better to have multiple jobs then one big job. This shortens the feedback cycle to the developer as they don't have to wait for a long job to finish or a very heavy processor job to know the compiler failed to compile the code due to a semicolon (;)
- Build the binary once and then fingerprint and reuse. This will help you in identifying where the files are being used in what jobs and you can then tie them together if needed.
- Tag every successful build with in the source control. This will enable you to get the latest good build for release.
- Automate everything. Not to say people aren't great they are just "unexpected" feature prone.
- Make sure the continuous integration server has a notification mechanism such as lava lamp, extrema feedback panel or email.
- If your business process allows automate release cycle.