Skip to main content

Command Palette

Search for a command to run...

What is Continuous Integration?

Updated
3 min read
What is Continuous Integration?
T

Tilda Udufo is a Software Engineer and open source community organizer with a passion for building inclusive, people-centered tech ecosystems.

Before applying to Outreachy, I had never heard of Continuous Integration — or CI for short. The term kept popping up during the contribution period, especially on GitHub pull requests and in error messages like “Some checks were not successful”. At the time, I just skimmed past it without asking what it meant. It wasn’t until much later that I paused and asked myself: “What even is Continuous Integration?”

Turns out, it’s something that every open source contributor — and developer in general — eventually has to work with. So in this post, I’ll walk through what I learned, how I understood it, and why it’s useful.

🧠 What Is Continuous Integration (CI)?

Continuous Integration is the practice of automatically integrating code changes from multiple contributors into a shared codebase, usually several times a day. Every time a developer pushes a change, the system runs automated builds and tests to make sure everything still works.

That might sound like a lot, so let’s break it down with an example.

👩🏾‍💻 Let’s Talk About Desire and Tobi

Imagine two developers, Desire and Tobi. They’re both working on different features in the same project. Each time they finish a piece of work, they push their code.

Without any checks in place, these changes could introduce bugs, and no one would know until much later, when someone manually runs the app or notices something's broken.

But with Continuous Integration (CI) set up, every time Janet or Brad pushes code:

  • An automated build starts.

  • Tests are run to check that core features still work.

  • If anything fails, the system flags it immediately.

This saves everyone a lot of time and frustration. You no longer have to cross your fingers every time you push and hope nothing breaks. CI catches those issues early, before they get buried under other people’s changes.

With CI:

  • Developers push changes frequently, ideally several times a day.

  • Every time code is pushed, automated tests and build steps run.

  • If something breaks, the team is alerted right away, not two weeks later.

  • Integration issues are caught early, not after 10 developers have stacked changes on top of each other.

So instead of fearing a giant merge conflict or silent bug, CI gives you near-instant feedback. You can fix issues while the changes are still small and easy to understand.

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. That’s the magic of CI. You don’t have to manually run all the tests or guess what might be broken. The system shows you results before your code even gets reviewed.

Some checks were not successful.png

🌱 Final Thoughts

CI might sound like a big, intimidating concept, but it’s just a smart way of working together on code. It’s about automation, early feedback, and keeping projects stable even with lots of contributors.

If you're new to open source (like I was), don't be afraid to stop and ask, "What does that mean?" That's how you grow.

Remember: we first have to not know something to know it.

M

Good work, Tilda! <3

1