Outreachy: What is Continuous Integration?

Outreachy: What is Continuous Integration?

This week’s blog prompt is to talk about an open source vocabulary term I didn’t know about before applying to Outreachy. Before applying to Outreachy I didn’t know what Continuous Integration(CI) meant. During the contribution period I kept seeing this term but I didn’t try to find out what it meant until much later. What is Continuous Integration?

Continuous Integration(CI) is the practise of automating the integration of code changes from multiple contributors into a single software projects.

That is a lot to take in so let’s break it down. Imagine two developers working on a project, let’s call them Janet and Brad. Janet is working on a feature, she adds stuff and removes stuff. Brad is working on the same file Janet is working on, he also adds and removes stuff. I’m sure you know what happens now, there’s a big nasty merge conflict. In the normal tech world it wouldn’t be just two developers working on a code, it could be hundreds. As a result of this the software quality reduces, there’s slow code delivery and you get headaches thinking about work. Every time you submit a change, you are like hope nothing breaks🤞🏿.

This is where Continuous Integration comes in. CI requires developers to integrate code frequently so that you spend less time fixing errors and more time working on features. Each check-in is followed by an automated build and tests which allows teams to detect errors quickly.

For example, PublicLab runs a set of tests whenever a new PR is opened. When a test fails you can click on the details link to check what the cause of the failure is. Some checks were not successful.png

Big words can be scary and reaching out for help when you encounter them is even scarier. First, try searching for the meaning of the term on Google or any other search engine and if that doesn’t help reach out to someone who can. We first have to not know something to know it.