CI/CD automates software development workflows, reduces costs, and ensures code quality
Continuous integration pipelines →
Benefits of continuous integration →
Implement continuous integration →
Continuous integration best practices →
Pipeline as code →
Shift left DevOps →
How to choose the right continuous integration tool →
What is a continuous integration server? →
What is cloud native continuous integration? →
Continuous integration in Agile development →
Continuous integration (CI) and continuous delivery (CD) enable DevOps teams to increase the speed of software development and deliver better quality code, faster. Continuous integration works to implement code from your team in a shared repository which vastly improves your deployment pipeline. Developers that employ full CI/-CD share their new code in a merge (pull) request, which triggers a pipeline to build, test, and validate the new code before merging the changes in the repository. Continuous delivery deploys CI-validated code to your application.
All code is tested throughout each stage to secure better quality builds and applications with fewer bugs. CI/CD pipelines can determine what happens when builds pass or fail these tests, meaning that errors are identified much faster. As code goes through each stage of the development process, it’s continually validated against many other changes in the repository happening concurrently, which ensures code integrity throughout the pipeline. Together, CI and CD accelerate how quickly your team delivers results for your customers and stakeholders.
Continuous delivery is often used interchangeably with a continuous deployment release process, but there is a subtle difference between the two. Continuous deployment means that all validated code deploys to production automatically, whereas continuous delivery means that this code can be deployed. The flexibility for code to be deployed at any time is what differentiates delivery from deployment, and practicing continuous deployment is possible when continuous delivery is already in place.
Continuous Integration is the practice of integrating code into a shared repository and building/testing each change automatically, as early as possible – usually several times a day.
Continuous Delivery ensures CI-validated code can be released to production at any time.
Continuous delivery is often used interchangeably with a continuous deployment release process, but there is a subtle difference between the two. Continuous deployment means that all validated code deploys to production automatically, whereas continuous delivery means that this code can be deployed. The flexibility for code to be deployed at any time is what differentiates delivery from deployment, and practicing continuous deployment is possible when continuous delivery is already in place.
CI/CD is all about efficiency and is built around fundamental elements to make it effective.
Source code management (SCM) that houses all necessary files and scripts to create builds.
Scripts should include everything you need to build from a single command.
Testing scripts should ensure that the failure of a test should result in a failed build.
Multiple commits to the repository mean there are fewer places for conflicts to hide.
Code should be tested in a cloned version of the production environment.
Every developer should be able to access the latest executables and see any changes made to the repository.
Code should be able to deploy into multiple environments easily.
Here’s a list of resources on CI/CD that we find to be particularly helpful in understanding CI/CD and implementation. We would love to get your recommendations on books, blogs, videos, podcasts and other resources that tell a great CI/CD story or offer valuable insight on the definition or implementation of the practice.
Please share your favorites with us by tweeting us @gitlab!
Mastering continuous software development →
Scaled continuous integration and delivery →
The benefits of single application CI/CD →
Cloud Native Computing Foundation (CNCF) →
Verizon →
Ticketmaster →
Voted a leader in The 2019 Forrester Wave Cloud-Native Continuous Integration Tools →
Voted as a Strong Performer in The Forrester Wave™ Continuous Delivery And Release Automation, Q2 2020 →
by Chrissie Buchanan
With GitLab’s out-of-the-box CI/CD, you can spend less time maintaining and more time creating.
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 Chrissie Buchanan
See what happened when these five teams moved on from old continuous integration and delivery solutions and switched to GitLab CI/CD.
Learn more
by Chrissie Buchanan
Learn how to implement and measure a successful CI/CD pipeline strategy and help your DevOps team deliver higher quality software, faster!
Learn more
by Chrissie Buchanan and William Chia
How a good CI/CD strategy generates revenue and keeps developers happy.
Learn more
by José Iván Vargas
The GitLab frontend team uses DevOps and CI/CD to ensure code consistency, fast delivery, and simple automation.
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