Continuous Integration and Continuous Delivery (CICD)
Continuous integration (CI)
Developers typically write code under source control on their own computers. They then may create a branch off of a “main” repo or work in their own fork of the repo. Developers work in a distributed fashion. CI changes that. CI brings together all of that code in one place by merging code into what’s sometimes called a mainline. This code is typically merged together multiple times per day. CI will then typically run the build process automatically.
In a CI workflow, every time a developer commits code to a repository, the build and tests run. CI automates the build trigger from a manual step to invoking the build upon each code commit. This automation then forces the code to run through the build and testing process more often, hopefully leading to a more reliable end product.
CI keeps code deployable at any time. It typically means testing and packaging up the code to be able to deploy to target systems at any time.