part of a series on |
software development |
---|
continuous integration (tsz. continuous integrations)
A CI filozófiája szerint a fejlesztők gyakran és automatizáltan egyesítik munkájukat a központi tárolóval (pl. Git repository). Minden egyes integráció során automatikus build, tesztelés és ellenőrzés történik. A cél, hogy a szoftver mindig működőképes, tesztelt állapotban legyen – így az új funkciók és javítások gyorsan, biztonságosan beépülhetnek a rendszerbe.
Ha valami elromlik, a CI azonnal jelzi. Ez sokkal hatékonyabb, mint hetekkel később keresni, hogy mi okozott egy hibát.
A CI rendszerek futtatják az egységteszteket, integrációs teszteket, linters eszközöket stb., így a minőség folyamatosan kontrollálva van.
A fejlesztők szinte azonnal értesülnek, ha valami nem működik.
A CI futtatása mindig ugyanazon sablon alapján történik (pl. Docker konténerben vagy CI runneren), ezzel elkerülhető a „nálam működik” típusú probléma.
A gyakori integráció miatt kisebb változtatásokat kell kezelni, így kevesebb az ütközés és könnyebb hibát keresni.
Eszköz | Leírás |
---|---|
GitHub Actions | GitHub-integrált CI/CD rendszer |
GitLab CI/CD | GitLab beépített CI/CD motorja |
Jenkins | Nyílt forráskódú, rendkívül rugalmas |
CircleCI | Felhőalapú CI/CD gyors integrációval |
Travis CI | Egyszerű, YAML-alapú CI a GitHub projektekhez |
Bitbucket Pipelines | Bitbucket saját CI/CD eszköze |
Azure Pipelines | Microsoft CI/CD rendszere, széles integrációval |
TeamCity | JetBrains által fejlesztett, fejlett funkciókkal |
name: CI
on:
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
Ez a workflow minden push
és pull request
eseménynél:
A CI rendszerek gyakran kezelnek:
Ezért fontos a biztonságos secrets
kezelés (pl. GitHub secrets), a hozzáférési jogosultságok helyes beállítása, és a logok figyelése.
Előny | Részletezés |
---|---|
Gyors visszacsatolás | Azonnal értesülsz, ha hiba van a kódban |
Jobb csapatmunka | Kevesebb integrációs konfliktus |
Magasabb minőség | Automatikus tesztek futnak minden commitnál |
Kevesebb kézi hiba | Automatizált folyamatok |
Gyakori release lehetőség | A kód mindig kiadásra kész állapotban van |
A CI a DevOps egyik alappillére, ahol a folyamatos integráció a folyamatos szállítással (CD) és a folyamatos megfigyeléssel (monitoring) együtt biztosítja, hogy a szoftver gyorsan, biztonságosan és gyakran kiadható legyen.
Fogalom | Jelentés |
---|---|
CI (Continuous Integration) | Kód integrációja és automatikus tesztelése |
CD (Continuous Delivery) | A tesztelt kód automatikus előkészítése kiadáshoz |
CD (Continuous Deployment) | A kód automatikus kiadása éles környezetbe |
A Continuous Integration egy alapvető fejlesztési gyakorlat, amely segíti a csapatokat abban, hogy gyorsabban, megbízhatóbban, és hatékonyabban fejlesszenek szoftvert. A jól beállított CI rendszer képes automatikusan:
A CI nem csak technológia, hanem egy kultúra is, ahol a fejlesztők rendszeresen, felelősen, tesztelve adják hozzá kódjukat a közös rendszerhez. A végeredmény egy gyorsabb, megbízhatóbb, és skálázhatóbb szoftverfejlesztés.