Retour au blog
DevOpsGitLabCI/CDAutomation

Construire une pipeline GitLab CI/CD propre, du premier commit au déploiement

Lint, tests, build, deploy. Un `.gitlab-ci.yml` minimal mais sérieux, prêt pour la prod.

Publié le 1 mars 20266 min de lecture

Les 4 étapes incontournables

stages:
  - lint
  - test
  - build
  - deploy

image: node:20-alpine

cache:
  paths:
    - node_modules/

lint:
  stage: lint
  script:
    - npm ci
    - npm run lint

test:
  stage: test
  script:
    - npm ci
    - npm run test:ci
  coverage: '/Lines\s*:\s*([0-9.]+)%/'

build:
  stage: build
  script:
    - npm ci
    - npm run build
  artifacts:
    paths:
      - dist/
    expire_in: 1 week

deploy:
  stage: deploy
  only:
    - main
  script:
    - npm run deploy

Les optimisations qui changent tout

Cache intelligent

Au lieu de réinstaller node_modules à chaque job, partage le cache :

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

Parallélisation

Tests unitaires et e2e en parallèle :

test:unit:
  stage: test
  script: npm run test:unit

test:e2e:
  stage: test
  script: npm run test:e2e

Variables sensibles

Jamais en clair. GitLab Settings → CI/CD → Variables (masked + protected).

Le piège que tout le monde fait

npm install au lieu de npm ci. Le premier modifie package-lock.json, le second échoue si le lock n'est pas synchro. En CI, toujours npm ci.

Bilan

Une pipeline propre, c'est 20 lignes de YAML. Tout le reste, c'est de l'optimisation. Commence simple, itère.