Contactez-nous

Projet 2 - Pipeline CI pour un projet applicatif simple (ex: page web statique)

Développez votre premier Pipeline CI Jenkins pour un projet de page web statique. Apprenez à utiliser un Jenkinsfile, intégrer Git, et simuler les étapes de build et test. Maîtrisez les bases du "Pipeline as Code" pour une automatisation CI/CD efficace.

Introduction au projet 2 : votre premier pipeline d'intégration continue

Après avoir exploré les fondations avec le Job Freestyle, ce second projet vous propulse vers une approche plus moderne et structurée de l'automatisation : le Pipeline Jenkins. Nous allons concevoir ensemble un pipeline d'intégration continue (CI) simple, mais complet dans ses concepts, pour un projet applicatif basique : une page web statique. Ce projet est essentiel pour comprendre comment orchestrer plusieurs étapes de manière cohérente et automatisée, depuis la récupération du code jusqu'à une simulation de tests.

L'objectif principal est de vous familiariser avec le concept de "Pipeline as Code" en utilisant un fichier spécial nommé Jenkinsfile. Vous apprendrez à : structurer un pipeline simple avec des étapes distinctes (appelées "stages"), intégrer votre Job Jenkins avec un dépôt Git pour récupérer le code source de la page web, et simuler des phases de construction ("build") et de test. Ce projet mettra en lumière la puissance et la flexibilité des pipelines déclaratifs, particulièrement adaptés aux débutants.

Ce passage du Job Freestyle au Pipeline représente une montée en compétence significative. En réalisant ce projet, vous ne construirez pas seulement une page web automatisée, mais vous poserez surtout les bases pour aborder des scénarios CI/CD bien plus complexes et réalistes. La maîtrise du Jenkinsfile et de l'orchestration des étapes est une compétence clé dans l'écosystème DevOps moderne.

Le Jenkinsfile : pierre angulaire de votre "Pipeline as Code"

Au coeur de ce projet se trouve le Jenkinsfile. Il s'agit d'un fichier texte qui définit l'ensemble de votre pipeline d'intégration continue. L'approche "Pipeline as Code" consiste à traiter la définition de votre pipeline comme du code : il est versionné (généralement avec votre code source applicatif dans Git), partageable, révisable et reproductible. Cela contraste avec la configuration des Jobs Freestyle, qui se fait principalement via l'interface utilisateur de Jenkins.

Les avantages de l'utilisation d'un Jenkinsfile sont nombreux. Il permet une meilleure collaboration au sein des équipes, car la définition du pipeline est visible et modifiable par tous ceux qui ont accès au code source. Il assure la durabilité de votre configuration CI/CD, car elle est sauvegardée et historisée. De plus, il facilite la création de pipelines complexes et la réutilisation de code entre différents pipelines.

Pour ce projet, nous nous concentrerons sur la syntaxe Déclarative des pipelines. Cette syntaxe est conçue pour être plus simple à lire et à écrire que la syntaxe Scriptée (l'autre option disponible), offrant une structure claire avec des sections prédéfinies comme agent, stages, et steps. C'est le point d'entrée idéal pour découvrir la puissance des pipelines Jenkins sans se perdre dans une complexité excessive.

Préparation de l'environnement et structure du pipeline

Avant de plonger dans la rédaction du Jenkinsfile et la configuration du Job dans Jenkins, une petite préparation est nécessaire. Vous aurez besoin d'un dépôt Git simple. Ce dépôt contiendra au minimum un fichier index.html (pour simuler notre page web statique) et un fichier nommé Jenkinsfile (qui sera initialement vide ou contiendra une structure de base que nous remplirons ensemble). De nombreux services d'hébergement Git gratuits comme GitHub, GitLab ou Bitbucket peuvent être utilisés.

Notre pipeline CI simulera les étapes fondamentales d'un cycle de développement. Il sera structuré autour des "stages" suivants :

  • Checkout SCM : Récupération du code source (notre index.html et le Jenkinsfile lui-même) depuis le dépôt Git.
  • Simulate Build : Une étape simulant le processus de construction. Pour une page statique, cela pourrait être très simple, comme afficher un message. Dans un projet réel, cela pourrait impliquer la compilation de code, la minification de fichiers CSS/JS, etc.
  • Simulate Test : Une étape simulant l'exécution de tests. Encore une fois, pour notre exemple simple, cela pourrait être un simple message. Dans un contexte réel, cela impliquerait l'exécution de tests unitaires, d'intégration, ou de linting.

Dans Jenkins, vous créerez un nouveau Job, mais cette fois de type "Pipeline". Contrairement au Job Freestyle, la configuration de ce type de Job est minimale dans l'interface utilisateur. L'essentiel de la logique sera délégué au Jenkinsfile que Jenkins ira lire depuis votre dépôt Git. Vous indiquerez à Jenkins l'URL de votre dépôt et le chemin vers le Jenkinsfile (qui est généralement à la racine du projet).

Une fois le Job configuré et lancé, vous pourrez observer l'exécution de chaque étape définie dans votre Jenkinsfile. L'interface de Jenkins, notamment la vue Blue Ocean (si activée), offre une visualisation claire de la progression du pipeline à travers ses différents stages, facilitant le suivi et le diagnostic en cas de problème. C'est une expérience très instructive pour comprendre le flux d'une chaîne CI.