Na jaren werken met GitLab CI/CD in verschillende projecten, hier vijf praktijken die consequent snellere, betrouwbaardere pipelines opleveren.

1. Caching slim gebruiken

Dependencies cachen tussen jobs om herhaald downloaden te voorkomen:

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

De key zorgt ervoor dat verschillende branches aparte caches hebben.

2. Tests paralleliseren

Je testsuite verdelen over meerdere jobs:

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

Dit kan de testtijd van 20 minuten naar 5 minuten terugbrengen.

3. rules: gebruiken in plaats van only/except

De nieuwere rules: syntax is krachtiger en leesbaarder:

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

4. Docker images optimaliseren

Kleine base images en multi-stage builds gebruiken. Alpine-gebaseerde images kunnen 10x kleiner zijn dan Ubuntu-gebaseerde.

5. Snel falen

Snelle checks (linting, formatting) aan het begin van de pipeline zetten. Geen zin om een testsuite van 20 minuten te draaien als de code niet eens compileert.


Wat zijn jouw favoriete CI/CD optimalisaties? We horen er graag over.