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.

CI/CD v GitLabe a end-to-end testy: Ako ich zaviesť vo vlastnom projekte
Photo by Erlend Ekseth / Unsplash

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

  1. npm install cypress --save-dev
  2. Pridať do package.json:
"scripts": {
  "e2e": "cypress open",
  "test": "cypress run"
}
  1. 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.