CI/CD
Megjelenés
| part of a series on |
| software development |
|---|
Főnév
- (informatika) A CI/CD a modern szoftverfejlesztés egyik alappillére, amely a folyamatos integrációt (Continuous Integration) és folyamatos szállítást/telepítést (Continuous Delivery / Continuous Deployment) foglalja magába. Célja a gyorsabb, biztonságosabb és megbízhatóbb szoftverkiadási folyamat.
⚙️ Mit jelent a CI/CD?
🔁 CI – Continuous Integration (Folyamatos integráció)
- A fejlesztők gyakran (naponta többször) integrálják a kódjukat a központi tárolóba (pl. Git).
- Minden új integráció után automatikusan lefutnak:
- Build folyamat
- Unit tesztek
- Statisztikai elemzések (linting, code coverage)
- Cél: hibák gyors felismerése, a “merge hell” elkerülése.
🚚 CD – Continuous Delivery vs Deployment
📦 Continuous Delivery
- A kód automatikusan eljut a release-ready állapotba, de a telepítés kézi jóváhagyást igényel.
- Példa: staging környezetre automatikusan kerül ki a build, de a production kiadást ember engedélyezi.
🚀 Continuous Deployment
- A tesztek sikeres futása után a kód automatikusan éles rendszerbe kerül.
- Teljes automatizáció – gyors kiadások, de magas minőségi követelmények.
🔧 CI/CD pipeline lépései
graph TD A[Kód push → Git repo] --> B[CI folyamat: build, teszt] B --> C[CD folyamat: release csomag] C --> D[Staging környezet] D --> E[Manual vagy Auto deploy → Production]
Fő lépések:
- Kód feltöltése (Git push, Pull request)
- Build (pl.
make,npm run build,mvn package) - Teszt (unit, integration, e2e)
- Artifact készítés (pl. Docker image, JAR, ZIP)
- Telepítés staging/production környezetbe
📦 Népszerű CI/CD eszközök
| Típus | Eszközök |
|---|---|
| CI/CD keretrendszerek | Jenkins, GitHub Actions, GitLab CI/CD, CircleCI, Travis CI |
| Deployment | ArgoCD, Spinnaker, Octopus Deploy |
| Konténer / Felhő | Docker, Kubernetes, Helm, AWS CodePipeline |
✅ Előnyök
- Gyorsabb fejlesztési ciklus
- Automatizált hibakeresés
- Jobb minőség és kevesebb regresszió
- Könnyebb visszagörgetés
- Skálázható, jól szervezett folyamat
🧠 Példa – GitHub Actions CI pipeline
name: CI Pipeline
on:
push:
branches: [ main ]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: make
- name: Run tests
run: make test
Ez a pipeline minden main branch-re történő git push esetén lefuttatja a make és make test parancsokat.
🧨 Hibák, amiket el kell kerülni
- Túl hosszú pipeline → lassú visszajelzés
- Nem izolált tesztek → nem reprodukálható hibák
- Tesztek hiánya → hibás release
- Deployment előtti approval hiánya (ha nem 100% bizalom van a pipeline-ban)
📌 TL;DR
| Rövidítés | Jelentés | Funkció |
|---|---|---|
| CI | Continuous Integration | Kód rendszeres integrálása, buildelése, tesztelése |
| CD | Continuous Delivery | Automatikus release pipeline (kézi deploy) |
| CD | Continuous Deployment | Automatikus kiadás production-be |