Intégration de Jenkins avec le contrôle de source (Git)

JenkinsBeginner
Pratiquer maintenant

Introduction

Bienvenue dans ce laboratoire sur l'intégration de Jenkins avec Git. La Gestion de Versions (SCM - Source Control Management) est une pierre angulaire du développement logiciel moderne. L'intégration de votre serveur d'Intégration Continue (CI - Continuous Integration), comme Jenkins, avec un système SCM, comme Git, est une étape fondamentale pour automatiser vos processus de construction (build) et de test.

Dans ce laboratoire, vous apprendrez à :

  • Vérifier que le plugin Git de Jenkins est disponible.
  • Créer un projet Freestyle lié à un dépôt Git local.
  • Ajouter une étape de construction (build step) pour exécuter un script depuis le dépôt.
  • Exécuter une construction manuellement pour tester la configuration.
  • Configurer le sondage SCM (SCM polling) pour déclencher automatiquement les constructions lors de nouveaux commits.

Une instance Jenkins est déjà en cours d'exécution pour ce laboratoire. Vous pouvez accéder à l'interface web de Jenkins en ouvrant le navigateur Firefox sur le bureau. Le navigateur s'ouvrira automatiquement sur http://localhost:8080, vous n'avez donc pas besoin de saisir l'URL manuellement. Aucune connexion (login) n'est requise.

Vérifier le plugin Git

Jenkins est livré avec une intégration Git intégrée. Le plugin Git est déjà installé par défaut, permettant à Jenkins d'interagir avec les dépôts Git. Vérifions que le plugin Git est disponible.

  1. Ouvrez le navigateur Firefox depuis l'interface de bureau. Le navigateur s'ouvrira automatiquement sur http://localhost:8080, vous n'avez donc pas besoin de saisir l'URL manuellement. Aucune connexion n'est requise.
  2. Sur le tableau de bord Jenkins, cliquez sur l'icône d'engrenage (bouton des paramètres) dans le coin supérieur droit.
  3. Sur la page des paramètres, trouvez et cliquez sur Plugins.
  4. Sélectionnez l'onglet Installed plugins (Plugins installés).
  5. Dans la boîte de recherche à droite, tapez Git pour filtrer les plugins installés.
  6. Vous devriez voir le Git plugin listé parmi les plugins installés, confirmant que l'intégration Git est disponible.
Jenkins installed plugins page

Une fois que vous avez confirmé que le plugin Git est disponible, vous pouvez passer à l'étape suivante pour créer un projet qui utilise Git.

Créer un projet et configurer le SCM Git

Avec le plugin Git installé, vous pouvez maintenant créer un projet Jenkins et le configurer pour extraire le code source d'un dépôt Git.

  1. Retournez au tableau de bord principal de Jenkins en cliquant sur le lien Dashboard dans la navigation "breadcrumb" en haut à gauche.
  2. Cliquez sur New Item (Nouvel élément) dans la barre latérale gauche.
  3. Entrez git-integration-project comme nom de l'élément.
  4. Sélectionnez Freestyle project (Projet Freestyle).
  5. Cliquez sur OK.

Cela vous mènera à la page de configuration du projet.

  1. Faites défiler jusqu'à la section Source Code Management (Gestion du code source).
  2. Sélectionnez l'option Git. Si vous ne voyez pas cette option, veuillez vérifier que le plugin Git a été correctement installé à l'étape précédente.
  3. Dans le champ Repository URL (URL du dépôt), entrez le chemin absolu vers le dépôt Git local qui vous a été préparé :
https://github.com/labex-labs/git-playground
  1. Laissez le Branch Specifier (Spécificateur de branche) par défaut, */master. Cela indique à Jenkins d'utiliser la branche master.
  2. Cliquez sur le bouton Save (Enregistrer) en bas de la page.
Section Gestion du code source dans la configuration du projet

Vous avez créé avec succès une tâche Jenkins liée à un dépôt Git. Dans la prochaine étape, vous définirez ce que la tâche doit faire avec le code.

Ajouter une étape de build et lancer un build manuel

Maintenant que Jenkins sait où récupérer le code, vous devez lui indiquer quoi faire avec ce code. Vous allez ajouter une étape de build avec des commandes shell, puis exécuter un build manuellement pour le tester.

  1. Sur la page du projet git-integration-project, cliquez sur Configure (Configurer) dans la barre latérale gauche.
  2. Faites défiler jusqu'à la section Build Steps (Étapes de build).
  3. Cliquez sur le menu déroulant Add build step (Ajouter une étape de build) et sélectionnez Execute shell (Exécuter un shell).
  4. Dans la zone de texte Command (Commande), entrez les commandes de build suivantes :
echo "Building the project..."
date
echo "Listing files in workspace:"
ls -la
echo "Build complete!"

Lorsque la tâche s'exécutera, Jenkins clonera d'abord le dépôt Git dans son espace de travail, puis exécutera ces commandes depuis cet espace de travail.

  1. Cliquez sur Save (Enregistrer).
  2. Vous êtes maintenant de retour sur la page du projet. Cliquez sur Build Now (Lancer un build) dans la barre latérale gauche pour démarrer un build.

Un nouveau build apparaîtra dans le panneau Build History (Historique des builds). Attendez qu'il se termine (l'icône de statut deviendra bleue pour succès).

  1. Cliquez sur le numéro du build (par exemple, #1).
  2. Cliquez sur Console Output (Sortie de la console) dans le menu du build.
Historique des builds

Vous devriez voir une sortie confirmant que Jenkins a cloné le dépôt et exécuté vos commandes avec succès.

Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/git-integration-project
 > git rev-parse --resolve-git-dir /var/jenkins_home/workspace/git-integration-project/.git ## timeout=10
...
[git-integration-project] $ /bin/sh -xe /tmp/jenkins123.sh
+ echo Building the project...
Building the project...
+ date
Mon Jan 1 12:01:00 UTC 2024
+ echo Listing files in workspace:
Listing files in workspace:
+ ls -la
total 24
drwxr-xr-x 3 jenkins jenkins 4096 Aug 21 10:33 .
drwxr-xr-x 3 jenkins jenkins 4096 Aug 21 10:33 ..
drwxr-xr-x 8 jenkins jenkins 4096 Aug 21 10:33 .git
-rw-r--r-- 1 jenkins jenkins   32 Aug 21 10:33 README.md
-rw-r--r-- 1 jenkins jenkins   15 Aug 21 10:33 file1.txt
-rw-r--r-- 1 jenkins jenkins   15 Aug 21 10:33 file2.txt
+ echo Build complete!
Build complete!
Finished: SUCCESS

Activer les builds automatiques avec le polling SCM

Lancer des builds manuellement est utile pour les tests, mais la véritable puissance de l'intégration continue (CI) réside dans l'automatisation. Dans cette étape, vous allez configurer Jenkins pour qu'il démarre automatiquement un build chaque fois qu'un changement est détecté dans le dépôt Git.

  1. Revenez à la page de configuration du projet git-integration-project (Page du projet > Configure (Configurer)).
  2. Faites défiler jusqu'à la section Build Triggers (Déclencheurs de build).
  3. Cochez la case à côté de Poll SCM (Sonder le SCM).
  4. Une zone de texte Schedule (Planification) apparaîtra. Celle-ci utilise la syntaxe cron pour définir la fréquence à laquelle Jenkins doit vérifier les changements dans le dépôt. Pour sonder toutes les minutes, entrez ce qui suit :
* * * * *
  1. Cliquez sur Save (Enregistrer).

Étant donné que nous utilisons un dépôt GitHub distant (https://github.com/labex-labs/git-playground), nous ne pouvons pas le modifier directement pour tester le déclencheur de sondage. Cependant, vous pouvez observer comment fonctionne le SCM polling :

  1. Retournez à l'interface utilisateur de Jenkins et accédez à la page du projet git-integration-project.
  2. Dans la barre latérale gauche, vous verrez une nouvelle option appelée Git Polling Log (Journal de sondage Git). Cliquez dessus.
  3. Cette page affiche l'activité de sondage. Vous devriez voir des entrées telles que :
Started on Aug 21, 2025, 10:36:00 AM
Using strategy: Default
[poll] Last Built Revision: Revision d22f46ba8c2d4e07d773c5126e9c803933eb5898 (refs/remotes/origin/master)
The recommended git tool is: NONE
No credentials specified
 > git --version ## timeout=10
 > git --version ## 'git version 2.30.2'
 > git ls-remote -h -- https://github.com/labex-labs/git-playground ## timeout=10
Found 3 remote heads on https://github.com/labex-labs/git-playground
[poll] Latest remote head revision on refs/heads/master is: d22f46ba8c2d4e07d773c5126e9c803933eb5898 - already built by 1
Done. Took 0.36 sec
No changes

Cela démontre que Jenkins sonde avec succès le dépôt distant pour les changements toutes les minutes. Dans un scénario réel, lorsque de nouveaux commits sont poussés vers le dépôt, Jenkins déclencherait automatiquement un nouveau build.

  1. Vous pouvez également déclencher manuellement un autre build en cliquant sur Build Now (Lancer un build) pour voir comment le système de sondage s'intègre aux builds manuels.

Résumé

Dans ce laboratoire, vous avez acquis une expérience pratique de l'une des intégrations les plus critiques d'un pipeline CI : connecter Jenkins à un dépôt de contrôle de code source Git.

Vous avez réussi à :

  • Vérifier que le plugin Git essentiel est disponible pour activer les capacités d'intégration Git de Jenkins.
  • Créer un projet Freestyle et le configurer pour extraire le code d'un dépôt Git.
  • Définir une étape de build pour exécuter un script shell à partir du code extrait.
  • Vérifier la configuration en exécutant un build manuel.
  • Configurer un déclencheur de build automatisé à l'aide de Poll SCM, qui permet à Jenkins de détecter et de construire automatiquement les nouveaux commits.

Ces compétences sont fondamentales pour automatiser votre flux de travail de développement et constituent la première étape vers la construction d'un pipeline CI/CD robuste et efficace avec Jenkins.