5 GitLab CI/CD Best Practices für schnellere Pipelines
Nach Jahren der Arbeit mit GitLab CI/CD in verschiedenen Projekten, hier fünf Praktiken die konstant schnellere, zuverlässigere Pipelines liefern.
1. Caching clever nutzen
Dependencies zwischen Jobs cachen um wiederholtes Herunterladen zu vermeiden:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
- .npm/
Der key stellt sicher, dass verschiedene Branches separate Caches haben.
2. Tests parallelisieren
Test-Suite auf mehrere Jobs aufteilen:
test:
parallel: 4
script:
- npm run test -- --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL
Das kann die Testzeit von 20 Minuten auf 5 Minuten reduzieren.
3. rules: statt only/except verwenden
Die neuere rules: Syntax ist mächtiger und lesbarer:
deploy:
rules:
- if: $CI_COMMIT_BRANCH == "main"
when: on_success
- when: never
4. Docker Images optimieren
Kleine Base-Images und Multi-Stage Builds nutzen. Alpine-basierte Images können 10x kleiner sein als Ubuntu-basierte.
5. Schnell scheitern
Schnelle Checks (Linting, Formatierung) an den Anfang der Pipeline setzen. Kein Grund eine 20-minütige Test-Suite laufen zu lassen, wenn der Code nicht mal kompiliert.
Was sind eure liebsten CI/CD Optimierungen? Wir freuen uns davon zu hören.