CI/CD v GitLabe a end-to-end testy: Ako ich zaviesť vo vlastnom projekte
GitLab CI/CD a Cypress: Príklad pipeline, integrácia, tipy a vysvetlenie E2E testovania.
Automatizácia je dnes nevyhnutnou súčasťou každého moderného vývojového procesu. V tomto článku si ukážeme, ako nastaviť CI/CD pipelines v GitLabe a ako do nich integrovať end-to-end (E2E) testy napríklad pomocou Cypressu.
⚙️ Čo je CI/CD pipeline?
CI (Continuous Integration) = každá zmena kódu sa automaticky otestuje a pripraví na nasadenie.
CD (Continuous Delivery / Deployment) = po schválení (alebo automaticky) sa nový kód nasadí do produkcie alebo stagingu.
GitLab umožňuje vytvárať pipelines pomocou súboru .gitlab-ci.yml
, ktorý definuje jednotlivé kroky (joby).
📄 Príklad .gitlab-ci.yml pre JavaScript projekt
stages:
- install
- test
- e2e
install:
stage: install
image: node:18
script:
- npm install
artifacts:
paths:
- node_modules/
test:
stage: test
image: node:18
script:
- npm run test
e2e:
stage: e2e
image: cypress/browsers:node18.12.0-chrome107-ff107
script:
- npm run start &
- npx wait-on http://localhost:3000
- npx cypress run
V tomto príklade prebiehajú 3 fázy:
- install – nainštaluje závislosti
- test – spustí unit testy
- e2e – spustí lokálny dev server a následne Cypress testy
🔍 Čo sú E2E testy a prečo sú dôležité?
End-to-end testy simulujú správanie reálneho používateľa – klikajú, vypĺňajú formuláre, sledujú reakcie UI.
Pomáhajú zachytiť chyby, ktoré by unit testy nikdy neodhalili – napríklad zlé prepojenie komponentov alebo nefunkčný JavaScript po refaktoringu.
🚀 Integrácia Cypressu do projektu
npm install cypress --save-dev
- Pridať do
package.json
:
"scripts": {
"e2e": "cypress open",
"test": "cypress run"
}
- Vytvoriť priečinok
cypress/e2e/
a prvý test:
describe('Hlavná stránka', () => {
it('obsahuje nadpis', () => {
cy.visit('/')
cy.contains('Vitajte')
})
})
📦 Tipy pre rýchlejšie a stabilnejšie pipelines
- Používaj
artifacts
– zachováš buildy medzi krokmi - Vyčleňuj E2E testy do samostatnej fázy – rýchlejší feedback
- Pridaj cache pre
node_modules
– výrazne zrýchli CI - Monitoruj flakiness testov – Cypress má dashboard aj retry mechanizmy
🧠 Záver
CI/CD pipelines v GitLabe ti umožnia automaticky testovať a nasadzovať projekt. E2E testy sú dôležitým krokom na zachytenie chýb z pohľadu používateľa. Aj keď spočiatku pôsobia zložito, ich prínos pri udržiavaní kvality projektu je obrovský.
V ďalšom článku si ukážeme, ako rozdeliť pipeline na paralelné joby a ako použiť GitLab cache na zrýchlenie buildov.