CI/CD · Build

Build

Transformez une source et ses dépendances maîtrisées en un artifact versionné et reproductible.

Leçon disponible
20 min

Objectifs

  • Expliquer compilation, dépendances, packaging et version.
  • Lire des commandes de build Node, Maven et Docker.
  • Comprendre pourquoi npm ci est adapté à la CI avec un lockfile.
  • Relier reproductibilité, traçabilité et fiabilité.

Le build

Le build transforme le code source en résultat utilisable : bundle web, binaire, JAR, package ou image. Il restaure les dépendances, compile si nécessaire, package le résultat et lui associe une version.

Un build reproductible doit produire un résultat équivalent à partir des mêmes sources, versions d’outils, dépendances verrouillées et paramètres. Cette stabilité facilite le diagnostic et la promotion entre environnements.

Du source à l’artifact

La pipeline identifie un commit, restaure des dépendances déterministes, exécute le build puis publie le résultat comme artifact. La version relie l’artifact au commit et au job qui l’a produit.

Principe du build
Source
   ↓
Dependencies
   ↓
Build
   ↓
Artifact

Exemples selon la stack

La commande dépend de l’écosystème, mais le principe reste identique. Ces exemples ne sont jamais lancés par les tests pédagogiques.

Node avec lockfile
npm ci
npm run build
Java avec Maven
mvn clean package
Image Docker versionnée
docker build -t myapp:1.0 .

Un build Docker peut exécuter du code provenant du Dockerfile et télécharger des dépendances. Utilisez des sources, images de base et runners maîtrisés.

Pourquoi npm ci et les builds reproductibles ?

Avec un package-lock.json cohérent, npm ci réalise une installation propre et figée : il échoue si package.json et le lockfile ne correspondent pas et ne réécrit pas les manifests. Cela détecte une dérive au lieu de la masquer dans la CI.

La reproductibilité demande aussi de fixer les versions du runtime, du compilateur, des plugins et des images de base. Un cache accélère le build, mais sa clé doit dépendre des bons fichiers et ne doit pas remplacer le lockfile.

  • Versionner les lockfiles et les fichiers de build.
  • Associer l’artifact au commit et à une version unique.
  • Éviter les dépendances flottantes non maîtrisées.
  • Vérifier les actions, plugins et images tiers utilisés par le runner.

Mini résumé

  • Le build transforme sources et dépendances en artifact versionné.
  • Node, Maven et Docker possèdent des commandes différentes pour le même objectif général.
  • npm ci vérifie et respecte le lockfile dans un environnement automatisé.
  • Un build reproductible renforce diagnostic, audit et promotion de l’artifact.

Mini quiz

Trois questions pour vérifier les notions essentielles de la leçon.

1. Quel est le résultat attendu d’un build CI ?
2. Pourquoi npm ci est-il souvent préféré dans une CI avec lockfile ?
3. Que facilite un build reproductible ?