Data report"State of code review 2024" is now liveRead the full report

What does CI/CD stand for?

Kenny DuMez
Kenny DuMez
Graphite software engineer

The CI portion of CI/CD stands for "continuous integration" and the CD portion can stand for either "continuous deployment" or "continuous delivery". These practices enhance the speed, efficiency, and quality of the software development and release process. Let's break down these concepts and explain how they operate in a development environment.

Continuous integration is a development practice where each merge triggers an automated build and testing process which aims to detect integration errors as quickly as possible.

  • Commit-triggered: Developers commit changes to a central version control system, triggering the CI process.
  • Automated build: An automated system retrieves the latest codebase and performs a build process to ensure the software compiles and builds correctly.
  • Automated testing: The build is then tested automatically to catch any functional errors or bugs present in the code.
  • Feedback: Results of the build and tests are relayed back to the development team, often via a dashboard or notifications.
  • Early bug detection: Bugs and integration errors are discovered before they are released into production, reducing the cost and time to fix them.
  • Faster release rate: With more testing and faster feedback, the release process is faster without sacrificing quality.
  • Reduced manual tasks: Automating builds and tests reduces manual overhead and frees developers to focus on net new feature work.

Continuous deployment and continuous delivery are practices that automatically deploy software changes to production and testing environments after the CI process succeeds. Continuous deployment pushes changes to production automatically without human intervention, while continuous delivery refers to a deployment process that requires manual approval before deployment.

  • Passing CI: Once the CI process completes successfully, the CD process starts.
  • Automated release: The CD process automates the release of the build to a staging or production environment.
  • Monitoring: The deployment is monitored for any issues that might occur in a live environment.
  • Speed and efficiency: Reduces the time it takes to get software releases to users.
  • Reliability: Reduces human errors associated with manual deployment.
  • Improved productivity: Allows teams to focus more on development and less on the process nuances since the deployment is automated.
  • Web applications: CI/CD is crucial for services requiring constant updates, such as e-commerce platforms and social networks.
  • Mobile applications: Enables frequent updates and ensures that applications perform well across various devices and operating systems.
  • Microservices: Particularly useful in microservices architectures where multiple services are developed and deployed independently.

CI/CD is not just a set of tools but also a cultural practice that encourages a proactive approach to integration, testing, and deployment. Adopting CI/CD can significantly transform the dynamics of development teams, leading to more innovative, stable, and responsive software development cycles.

Git gud
"It's the first Git workflow I've used that actually feels good."
–@robboclancy
Learn more

Graphite
Git stacked on GitHub

Stacked pull requests are easier to read, easier to write, and easier to manage.
Teams that stack ship better software, faster.

Or install our CLI.
Product Screenshot 1
Product Screenshot 2