Continuous integration is the practice of having a build server regularly compile and test the latest code base. Using continuous integration has many advantages:

  • Developers can be alerted by the build server when a recent commit will not compile ("breaks the build") or fails tests.
  • When development slows down, the build server continues to regularly download and compile the app, alerting developers to bit rot.
  • In cases where a project's test suite takes a long time to run, the burden can be shifted to the build server by creating a temporary "staging" branch.
  • Build servers are an ideal "outside tester" for your build process. They don't share the peculiarities of your shell environment, home directory, /usr/local/bin directory, etc.

Wikipedia lists even more advantages. Continuous integration is not much less important than source control and build automation; it should be a part of most of your projects!

Jenkins

Set up a free hosted Jenkins

Add a build status image to your README file

Integrate IRC and Twitter (seriously!)

This guide is still being written.

 

If you'd like to help out with our documentation effort, please let us know on the mailing list, or come say hello in IRC.