At which point is a continuous integration server interesting?
- by Cedric Martin
I've been reading a bit about CI servers like Jenkins and I'm wondering: at which point is it useful?
Because surely for a tiny project where you'd have only 5 classes and 10 unit tests, there's no real need.
Here we've got about 1500 unit tests and they pass (on old Core 2 Duo workstations) in about 90 seconds (because they're really testing "units" and hence are very fast). The rule we have is that we cannot commit code when a test fail.
So each developers launches all his tests to prevent regression.
Obviously, because all the developers always launch all the test we catch errors due to conflicting changes as soon as one developer pulls the change of another (when any).
It's still not very clear to me: should I set up a CI server like Jenkins? What would it bring?
Is it just useful for the speed gain? (not an issue in our case)
Is it useful because old builds can be recreated? (but we can do this to with Mercurial, by checking out old revs)
Basically I understand it can be useful but I fail to see exactly why.
Any explanation taking into account the points I raised above would be most welcome.