Why Nightly Build Is A Must-Have

So you have your CI and you are very proud of it. Every time your team commits some code to SCM (SVN, git, ...) CI server takes it and builds instantly. You feel safe with all the green lights on your dashboard. Cool.

The question is, if you still need a nightly build? There is some discussion regarding this in the community (see http://tinyurl.com/3v3pzcy) but I will cut it short: yes, you still need nightly builds (or any kind of frequent, regular periodic build - but, since nightly builds are kind of traditional, then I will stick to them).

Well, what for, your code is tested every time it changes, so why bother? What is more, your builds run also if any dependency is build, so you are safe, aren't you?

Well, you are not safe. How so!? Because even if your code does not change, the environment can! You update your CI server (e.g. new versions of Jenkins are published frequently), install new plugins, update your build tool, install the latest Java etc. etc. And most of all the date changes every day, and this has serious impact on some tests (even if in ideal world it shouldn't).

Such changes as described about do not trigger your builds (no changes in SCM, right?) so you wake up few month later, when you do some cosmetic change and all of sudden a build fails! And then you cry in dismay, and you can't understand what has happened. ...I tell you what happened. You forgot about the nightly builds.

So, a nightly build is a must-have. Howgh!

Please comment using