5 bune practici GitLab CI/CD pentru pipeline-uri mai rapide
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.