CICD
Table of Contents
๐๐ผ๐ ๐๐ผ ๐ฐ๐ต๐ผ๐ผ๐๐ฒ ๐ฎ ๐ฐ๐น๐ผ๐๐ฑ ๐๐/๐๐ ๐ฝ๐น๐ฎ๐๐ณ๐ผ๐ฟ๐บ?
CI and CD stand for ๐๐ผ๐ป๐๐ถ๐ป๐๐ผ๐๐ ๐๐ป๐๐ฒ๐ด๐ฟ๐ฎ๐๐ถ๐ผ๐ป ๐ฎ๐ป๐ฑ ๐๐ผ๐ป๐๐ถ๐ป๐๐ผ๐๐ ๐๐ฒ๐น๐ถ๐๐ฒ๐ฟ๐. In the simplest terms possible, Continuous Integration (CI) is a technique where incremental code changes are reliably and regularly made. Code updates merged into the repository are made reliable by automated build-and-test procedures that CI sparks. Then, the code is swiftly and efficiently deployed as part of the CD process.
The ๐๐/๐๐ ๐ฝ๐ถ๐ฝ๐ฒ๐น๐ถ๐ป๐ฒ, as used in the software industry, is the automation that enables developers to reliably transfer incremental code changes from their machines to test and production.
CI/CD often includes a ๐๐ผ๐ป๐๐ถ๐ป๐๐ผ๐๐ ๐๐ฒ๐ฝ๐น๐ผ๐๐บ๐ฒ๐ป๐, too, which means that the code deployed to the repository will be automatically deployed to production. Taken together, these connected practices are often referred to as a “๐๐/๐๐ ๐ฃ๐ถ๐ฝ๐ฒ๐น๐ถ๐ป๐ฒ.” They are usually maintained using a DevOps or SRE approach.
Having CI/CD pipelines has multiple benefits, such as improved collaboration, code quality, and more agile and reliable systems.
There are ๐ฑ๐ถ๐ณ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ ๐๐๐ฎ๐ด๐ฒ๐ of a CI/CD pipeline, such as ๐ฏ๐๐ถ๐น๐ฑ, ๐๐ฒ๐๐ ๐ฎ๐ป๐ฑ ๐ฑ๐ฒ๐ฝ๐น๐ผ๐, but there could be much more activities included:
๐น Checking code from version control and building it
๐น Having staged gates for different kinds of approvals
๐น Managing environment variables
๐น Restarting services
๐น Executing tests
๐น And more…
Some popular CI/CD tools:
๐ธ Jenkins
๐ธ TeamCity
๐ธ CircleCI
๐ธ Bamboo
๐ธ GitLab
๐ธ Azure DevOps
When ๐ฐ๐ต๐ผ๐ผ๐๐ถ๐ป๐ด ๐๐ต๐ฒ ๐๐น๐ผ๐๐ฑ ๐๐/๐๐ ๐ฝ๐น๐ฎ๐๐ณ๐ผ๐ฟ๐บ, it must be tightly integrated with your repositories. Store your pipelines and config in version control, not just inside the CI/CD tool.
Choose tools like Docker that support your languages, frameworks, and containers. Ensure your team understands how CI/CD works and the tool youโre usingโsome platforms are easier to learn than others.
You donโt need to standardize on one tool across all projectsโdifferent stacks might need different pipelines.
![[Pasted image 20250416221234.png]]