The 7 levels of continuous integration

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:

  1. No Server, no automation – no problems
  2. Have nightly build that run each day – at least we know that the project compiles
  3. Started writing “unit” tests – now running as part of the nightly build
  4. Created a build that runs on each commits – who broke the build?!
  5. Added static code analysis and style checking to the build
  6. Server Build, deploy & run the tests on several environments also used to deploy on testing (and production) environments
  7. 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?

Happy coding…

4 thoughts on “The 7 levels of continuous integration

  1. We have adopted Continuous Integration a year ago. Now we are at stage 5.
    have full automatied builds (trunk for every commit, nightly,
    integration tests etc. ) , unit tests, database integration tests (
    dbunit ),  static analysis ( quite easy that part with Sonar ) and now
    we are trying to automate some gui tests using Selenium.
     You can add maybe between stage two and stage three the adoption of a developers guidelines as described in a related blog here

  2. Shouldn't there be an eight level which takes the continuous delivery aspect into a account. This isn't possible for all applications, but still relevant where you have so much trust in your automation that you actually ships it automatically if it completes all steps in the build.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.