5 najlepszych praktyk GitLab CI/CD dla szybszych pipeline'ów
Po latach pracy z GitLab CI/CD w różnych projektach, oto pięć praktyk, które konsekwentnie dostarczają szybsze, bardziej niezawodne pipeline’y.
1. Mądre używanie cache
Cache’owanie zależności między jobami, aby uniknąć ponownego pobierania:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
- .npm/
key zapewnia, że różne gałęzie mają oddzielne cache.
2. Zrównoleglenie testów
Podziel swoją suite testową na wiele jobów:
test:
parallel: 4
script:
- npm run test -- --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL
To może skrócić czas testów z 20 minut do 5 minut.
3. Używaj rules: zamiast only/except
Nowsza składnia rules: jest bardziej potężna i czytelna:
deploy:
rules:
- if: $CI_COMMIT_BRANCH == "main"
when: on_success
- when: never
4. Optymalizacja obrazów Docker
Używaj małych obrazów bazowych i multi-stage builds. Obrazy oparte na Alpine mogą być 10x mniejsze niż te oparte na Ubuntu.
5. Szybkie niepowodzenie
Umieść szybkie sprawdzenia (linting, formatowanie) na początku pipeline’u. Nie ma sensu uruchamiać 20-minutowej suite testowej, jeśli kod się nawet nie kompiluje.
Jakie są Twoje ulubione optymalizacje CI/CD? Chętnie o nich usłyszymy.