67 lines
1.8 KiB
Org Mode
Executable File
67 lines
1.8 KiB
Org Mode
Executable File
:PROPERTIES:
|
||
:ID: 5b714c6c-7eaf-4f3f-b4f6-2166ff3a9963
|
||
:END:
|
||
#+title: CI/CD Summary
|
||
#+filetags: :notes:technical:career:
|
||
#+category: Career Concepts
|
||
|
||
* Summary
|
||
CI/CD stands for Continuous Integration and Continuous Delivery/Deployment. It’s a development practice that automates building, testing, and delivering software so code changes can be released quickly and reliably.
|
||
|
||
** Continuous Integration (CI)
|
||
|
||
CI means developers frequently merge their code into a shared repository. Every time code is pushed:
|
||
|
||
1. The code is built automatically.
|
||
2. Automated tests run.
|
||
3. If something breaks, the team is alerted.
|
||
|
||
Goal: catch bugs early and ensure new code works with the rest of the project.
|
||
|
||
** Continuous Delivery / Continuous Deployment (CD)
|
||
CD takes the tested code from CI and prepares it for release.
|
||
|
||
- Continuous Delivery: Code is automatically prepared for production, but a human approves the final deployment.
|
||
|
||
- Continuous Deployment: Code is automatically deployed to production with no manual approval.
|
||
|
||
Goal: make releases faster and safer.
|
||
|
||
** Pipelines
|
||
A pipeline is the automated workflow that runs these steps in sequence. Think of it as a script that defines what happens after a code change.
|
||
|
||
Typical pipeline stages:
|
||
|
||
1. Source – code pushed to repository
|
||
2. Build – compile the application
|
||
3. Test – run automated tests
|
||
4. Package – create deployable artifact (e.g., Docker image)
|
||
5. Deploy – release to staging or production
|
||
|
||
Example simplified pipeline:
|
||
|
||
~Code Push → Build → Test → Package → Deploy~
|
||
|
||
Why CI/CD is useful
|
||
|
||
- Faster development cycles
|
||
|
||
- Fewer integration bugs
|
||
|
||
- Automated testing and deployment
|
||
|
||
- More reliable releases
|
||
|
||
Common CI/CD tools
|
||
|
||
- GitHub Actions
|
||
|
||
- Jenkins
|
||
|
||
- GitLab CI/CD
|
||
|
||
- CircleCI
|
||
|
||
In short:
|
||
CI/CD uses pipelines to automatically build, test, and deploy software whenever code changes are made.
|