I’ve noticed that when other developers talk about “continuous integration” they do not always mean the same thing.
The following is an outline of the seven stages of continuous integration based solely on my own experience:
- No Server, no automation – no problems
- Have nightly build that run each day – at least we know that the project compiles
- Started writing “unit” tests – now running as part of the nightly build
- Created a build that runs on each commits – who broke the build?!
- Added static code analysis and style checking to the build
- Server Build, deploy & run the tests on several environments also used to deploy on testing (and production) environments
- Everything is automated – Even Gui tests runs automatically on the latest code, you even got as far as testing the installer. Code is analyzed and results are sent by email. Nothing is done manually unless it is done only once…
These are my stages as I experienced them in several jobs – what are yours?