Čo je Continuous Integration?
Continuous Integration (CI) je prax vývoja softvéru, pri ktorej vývojári pravidelne integrujú svoje zmeny do spoločného repozitára. Každá integrácia sa automaticky zostaví a otestuje, čím sa chyby odhalia čo najskôr.
Definícia Continuous Integration
Čo je Continuous Integration
Continuous Integration (kontinuálna integrácia, CI) je prax, pri ktorej vývojári často integrujú zmeny kódu do spoločného repozitára a automatizovaný systém zostaví a otestuje celú aplikáciu. Pojem CI prvýkrát použil Grady Booch v roku 1991. V roku 1997 ho Kent Beck a Ron Jeffries rozvinuli ako súčasť metodológie Extreme Programming (XP).
Ako CI funguje
- Vývojár pushne kód do zdieľaného repozitára (napr. Git)
- CI server automaticky deteguje zmenu a spustí build
- Spustia sa unit testy, integračné testy a statická analýza
- Tím dostane okamžitú spätnú väzbu — build prešiel alebo zlyhal
- Ak build zlyhá, oprava má najvyššiu prioritu
CI nástroje a CI/CD pipeline
Medzi najpopulárnejšie CI nástroje patria GitHub Actions, GitLab CI/CD, Jenkins a CircleCI. Prvý open-source CI nástroj CruiseControl bol vydaný v roku 2001. CI je zvyčajne prvou časťou CI/CD pipeline — za kontinuálnou integráciou nasleduje kontinuálne doručovanie (CD), ktoré automatizuje nasadenie do produkcie.
Praktický príklad
Príklad: Tím piatich vývojárov pracuje na webovej aplikácii. Používajú GitHub Actions ako CI nástroj.
Každý vývojár denne pushne zmeny do svojej vetvy a vytvorí pull request. GitHub Actions automaticky:
- Nainštaluje závislosti (
pnpm install) - Spustí linter (
pnpm lint) - Spustí testy (
pnpm test) - Zostaví aplikáciu (
pnpm build)
Ak niektorý krok zlyhá, pull request sa nedá zlúčiť. Tím tak má istotu, že v hlavnej vetve je vždy fungujúci kód.
Často kladené otázky
Čo je Continuous Integration?
Continuous Integration (CI) je prax, pri ktorej vývojári pravidelne integrujú kód do spoločného repozitára. Automatizovaný systém potom kód zostaví a otestuje, čím sa chyby odhalia čo najskôr.
Aký je rozdiel medzi CI a CD?
CI (Continuous Integration) sa zameriava na automatické zostavenie a testovanie kódu po každej zmene. CD (Continuous Delivery/Deployment) rozširuje CI o automatizované nasadenie do produkcie.
Ktoré CI nástroje sú najlepšie?
Najpopulárnejšie sú GitHub Actions (pre projekty na GitHube), GitLab CI/CD (pre GitLab), Jenkins (open-source, self-hosted) a CircleCI (cloudový). Výber závisí od platformy a potrieb tímu.
Ako často by sa mal kód integrovať?
Ideálne denne alebo viackrát denne. Čím častejšie sa kód integruje, tým menšie sú zmeny a tým ľahšie sa riešia konflikty. Dlhé vetvy vedú k náročným merge konfliktom.
Súvisiace pojmy
Potrebujete pomôcť s webom?
Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.