Continuous Integration (CI) is a staple of modern software development. While CI doesn’t technically require specific tools, most teams use a continuous integration server to help them streamline processes.
There are two approaches to CI: Manual builds and builds facilitated by a CI server. Learn the difference between manual and CI server builds and how a CI server works.
A continuous integration server (sometimes known as a build server) essentially manages the shared repository and acts as a referee for the code coming in. When developers commit to the repository, the CI server initiates a build and documents the results of the build. Typically, the developer that committed the code change to the repository will receive an email notification with the results.
The majority of teams building software today are practicing continuous integration. Of those teams practicing continuous integration, most rely on a CI server to automate builds.
For teams that do not use a CI server, they’re still able to achieve continuous integration through periodic builds they manage internally. Teams can use scripts they build themselves or manually trigger builds. Continuous integration isn’t a tool in iself, it’s a larger framework with a set of practices aided by certain tools.
For teams that want to practice continuous integration, there are some helpful tools that can make continuous integration easier. For teams that bypass using a CI server, it’s about having more control over the source code, testing, and commit processes.
Teams find CI servers useful in software development because it can offer certain process advantages.
When code is committed using a CI Server, errors in the code are detected automatically. The server tests the code and provides feedback to the committer quickly, without the committer having to initiate a manual build.
Instead of relying on developers to keep the shared repository up to date, the CI server manages all code coming in and maintains the integrity of the source code through automatic builds and tests. This allows developers to focus on their own projects instead of worrying about other projects breaking their tests. Teams can collaborate without worrying about code.
Without CI servers, developers are working on different layers of the application with code saved on local machines. While teams that do manual or self-managed testing can get around these potential issues, a CI server takes this extra layer of coordination out of the workflow.
The majority of tools we consider continuous integration tools are, in fact, CI servers. Some include additional functionality, such as source code management, continuous delivery, and testing.
by Brendan O'Leary
Let's talk about building build images with GitLab CI/CD. The power of Docker as a build platform is unleashed when you get meta.
Learn more
by Riccardo Padovani
Here's how to help everyone on your team, like designers and testers, get started with GitLab CI.
Learn more
by Sara Kassabian
If you need to make the case for DevOps to a non-technical crowd, it's important to be prepared. Here's what you need to know.
Learn more
GitLab is more than just source code management or CI/CD. It is a full software development lifecycle & DevOps tool in a single application.
Try GitLab Free