Ugrás a tartalomhoz

CI/CD

A Wikiszótárból, a nyitott szótárból


Főnév

CI/CD (tsz. CI/CDs)

  1. (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:

  1. Kód feltöltése (Git push, Pull request)
  2. Build (pl. make, npm run build, mvn package)
  3. Teszt (unit, integration, e2e)
  4. Artifact készítés (pl. Docker image, JAR, ZIP)
  5. 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