With continuous delivery (CD) almost always in the spotlight, continuous integration (CI) is often left out in the cold. Indeed, it’s been in use for so long and so widely, we often take the model for granted. So what is CI and how can you make the most of it? This blog is intended to answer those questions.
Before we step into examining CI, we need to look back. Software developers often work in small teams and modularity, and need to integrate their changes with the rest of the project code base. Waiting to integrate code creates merge conflicts, bugs that can be tricky to resolve, diverging code strategies, and duplicated effort. Before CI, developers also had a problem of wasted time: they compiled and built their changes multiple times a day on their own machine and had to sit idle waiting for these processes to complete. Integrating the changes from all teams happened only at night on big dedicated «build» servers and any issues during this build could create further idle time the next morning as developers isolate and resolve last night’s issues.
Before we step into examining CI, we need to look back. Software developers often work in small teams and modularity, and need to integrate their changes with the rest of the project code base. Waiting to integrate code creates merge conflicts, bugs that can be tricky to resolve, diverging code strategies, and duplicated effort. Before CI, developers also had a problem of wasted time: they compiled and built their changes multiple times a day on their own machine and had to sit idle waiting for these processes to complete. Integrating the changes from all teams happened only at night on big dedicated «build» servers and any issues during this build could create further idle time the next morning as developers isolate and resolve last night’s issues.