>I’ve found that having a local CI build is actually very beneficial, beyond the the fact that one can truely verify everything is working locally before committing to an upstream repository. It also comes in handy when somebody asks if you tested that code already or not. All you have to do is show them your local Hudson build history and testing results.
It can also help when there are integration errors, because all you have to do to reproduce the issue locally, is re-pull and let your CI build pick up the latest changes. If there are issues you can then debug locally. Once you have it fixed and the CI build passes locally, you can push it back into the main repository.
I’ve found working this way over the last couple of weeks that the comfort level and error rates involved with bad builds drops dramatically. Feed back early and often is a good thing.
Of course all of this assumes that you are writing tests to go along with your changes, otherwise you are still playing russian roulette with your software and builds.