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.
Source
↓
Dependencies
↓
Build
↓
ArtifactExemples 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.
npm ci
npm run buildmvn clean packagedocker 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.
Erreur fréquente : reconstruire avec des dépendances flottantes
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.