Continuous Integration (CI) is an automated process for continually integrating software development changes. CI processes automate the building, testing, and validation of source code. This blog post will answer common questions related to the software development practice of Continuous Integration.
Why use Continuous Integration?
CI emerged as a development practice to resolve the challenges of integrating software development code. Part of that development work involves not only the writing of code but also the testing and integration of those features into the products and services that organizations and teams own and ship today. Merge conflicts arise in any accelerated development team for short or long-lived development branches, and these new features and changes require validation and testing.
Continuous Integration alleviates these challenges allowing for on-demand, and regular code builds and releases. It provides visibility into the changes and status of those changes needed to build a deployable artifact. In case any checks fail, developers can fix broken builds immediately.
Organizations often include additional CI processes to ensure code standards and quality as well. Additionally, CI makes it easy for anyone to get and track the latest executable and deployable artifact.
What does a Continuous Integration process involve?
CI enables software builds. A build process complies or packages a version code into a runnable executable file.
Typically a developer will commit some code to a version control system like Git, which will trigger the CI process. This codebase is often scanned or analyzed using a static code analysis tool to determine code quality. If the source code passes all checks, the CI process will attempt to package or compile the code. Part of the build process involves unit testing as well.
CI processes also often include additional development workflows that integrate with your version control system. This can involve tagging or annotating specific versions of code, or managing resources such as branches within a version control system.
What is the difference between Continuous Integration and Continuous Delivery?
A continuous integration process involves itself with development workflows aiding in the development, build, and testing of source code. Continuous delivery closes the DevOps lifecycle loop by capturing Operations workflows. Continuous Delivery (CD) is an automated process for reliably releasing software. CD involves delivering deployable artifacts to provisioned environments, operationalizing, and monitoring code. Check out this blog post for a detailed discussion around CI/CD and software delivery.
How do I get started with CI?
Build and release processes orchestrated by CI solutions are typically triggered by some developer workflow, such as a code commit. Get started with CI by finding a CI solution that works with your version control system and application runtime.