**Continuous integration** (CI) is a development practice that *checks code into a shared repository on a consistent ongoing basis*. In CI environments, this can range from a few times a day to a very frequent process of check-ins and automated builds. The main goal of this approach is to enable the use of *automation and scripting to implement automated courses of action* that result in continuous delivery of code.
Since continuous integration relies on an automated build process, it also requires automated testing. It is also often paired with **continuous deployment** (CD) (sometimes called continuous delivery), which *rolls out tested changes into production automatically* as soon as they have been tested.
![[CICD Pipeline.png]]
Using continuous integration and continuous deployment methods *requires building continuous validation and automated security testing* into the pipeline testing process. Logging, reporting, and continuous monitoring must all be designed to fit the CI/CD process.