Continuous Integration (CI) Jeremy Wilken www.gnomeontherun.com @gnomeontherun Lead Developer @ Joomlashack
What CI is not A program, tool, or something you install  A goal or something that you complete
The obligatory definition “ Continuous Integration is a software development  practice  where members of a team  integrate  their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an  automated build  (including  test ) to detect integration errors as quickly as possible.” - Martin Fowler with emphasis added
My shorter version “ Continuous Integration is a software development  process ,  where members of a team  combine and build  their code regularly, run  automated tests , and  distribute  a copy of the program for testing or use.” - Adapted from Martin Fowler's definition
An example development cycle Team of 5 developers, writing Java
Programmed individual parts separately
Merged and attempted to compile code
Debugging cycle until compiles
Product testing and further debugging
Product release completed
Goals of using a CI process Reduced bugs
Faster development
Better code management
Automated building
Unit tests Deployment of files
Version control with regular commits
Improve development workflow
Reduce risks
Pillars of CI Version Control Build Management Self Testing Deployment
Version Control Manages the source code, tracks changes, merge code changes Examples: Subversion, Git, Mercurial

Continous integration