După ani de lucru cu GitLab CI/CD în diverse proiecte, iată cinci practici care oferă constant pipeline-uri mai rapide și mai fiabile.

1. Folosește cache-ul inteligent

Cache-ază dependențele între job-uri pentru a evita re-descărcarea lor:

cache:
  key: ${CI_COMMIT_REF_SLUG}
  paths:
    - node_modules/
    - .npm/

key asigură că diferite branch-uri au cache-uri separate.

2. Paralelizează testele

Împarte suita de teste pe mai multe job-uri:

test:
  parallel: 4
  script:
    - npm run test -- --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL

Acest lucru poate reduce timpul de testare de la 20 minute la 5 minute.

3. Folosește rules: în loc de only/except

Noua sintaxă rules: este mai puternică și mai lizibilă:

deploy:
  rules:
    - if: $CI_COMMIT_BRANCH == "main"
      when: on_success
    - when: never

4. Optimizează imaginile Docker

Folosește imagini de bază mici și build-uri multi-stage. Imaginile bazate pe Alpine pot fi de 10x mai mici decât cele bazate pe Ubuntu.

5. Eșuează rapid

Pune verificările rapide (linting, formatare) la începutul pipeline-ului. Nu are sens să rulezi o suită de teste de 20 minute dacă codul nici măcar nu compilează.


Care sunt optimizările tale CI/CD preferate? Ne-ar plăcea să auzim despre ele.