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

JenkinsBeginner
Pratiquer maintenant

Introduction

Bienvenue dans ce laboratoire consacré à l'intégration de Jenkins avec Git. La gestion du contrôle de version (SCM) est la pierre angulaire du développement logiciel moderne. L'intégration de votre serveur d'intégration continue (CI), comme Jenkins, avec un système SCM comme Git, est une étape fondamentale pour automatiser vos processus de 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 build pour exécuter un script depuis le dépôt.
  • Lancer une build manuellement pour tester la configuration.
  • Configurer le sondage SCM (SCM polling) pour déclencher automatiquement des builds lors de nouveaux commits.

Une instance Jenkins et un petit dépôt Git local sont déjà préparés 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 n'est requise.

Vérifier le plugin Git

Jenkins utilise des plugins pour ajouter des intégrations. Le plugin Git fournit l'option Git que vous utiliserez dans la configuration du job.

  1. Ouvrez le navigateur Firefox depuis l'interface du 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 en forme d'engrenage dans le coin supérieur droit pour ouvrir Manage Jenkins.
  3. Cliquez sur Plugins.
  4. Sélectionnez l'onglet Installed plugins.
  5. Dans la zone de filtrage, tapez git.
  6. Confirmez que Git apparaît dans la liste des plugins installés.

Plugin Git installé

Une fois le plugin Git confirmé, vous pouvez créer un projet qui récupère le code source depuis un dépôt.

Créer un projet et configurer Git SCM

Avec le plugin Git installé, vous pouvez maintenant créer un projet Jenkins et le configurer pour récupérer le code source depuis le dépôt local préparé dans le conteneur Jenkins.

  1. Revenez au tableau de bord principal de Jenkins en cliquant sur le lien Dashboard dans la navigation par fil d'Ariane en haut à gauche.
  2. Cliquez sur New Item dans la barre latérale gauche.
  3. Saisissez git-integration-project comme nom d'élément.
  4. Sélectionnez Freestyle project.
  5. Cliquez sur OK.

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

  1. Faites défiler jusqu'à la section Source Code Management.
  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, saisissez l'URL du dépôt local préparé pour ce laboratoire :
git://localhost/git-playground.git
  1. Laissez le Branch Specifier par défaut, */master. Cela indique à Jenkins d'utiliser la branche master.
  2. Cliquez sur le bouton Save en bas de la page.

Configuration Git SCM

Vous avez créé avec succès un job Jenkins lié à un dépôt Git local. À l'étape suivante, vous définirez ce que le job doit faire avec le code récupéré.

Ajouter une étape de build et exécuter une build manuelle

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

  1. Sur la page du projet git-integration-project, cliquez sur Configure dans la barre latérale gauche.
  2. Faites défiler jusqu'à la section Build Steps.
  3. Cliquez sur le menu déroulant Add build step et sélectionnez Execute shell.
  4. Dans la zone de texte Command, saisissez les commandes de build suivantes :
echo "Building from the Git repository"
./build.sh

Lorsque le job s'exécute, Jenkins clone d'abord le dépôt Git dans son espace de travail, puis exécute ces commandes depuis cet espace. Le script build.sh provient du dépôt, donc une exécution réussie prouve que Jenkins a bien récupéré le code avant de lancer l'étape shell.

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

Une nouvelle build apparaîtra dans le panneau Build History. Attendez qu'elle se termine (l'icône d'état deviendra bleue en cas de succès).

  1. Cliquez sur le numéro de la build (par exemple #1).
  2. Cliquez sur Console Output dans le menu de la build.

Build Git réussie

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-integration-project] $ /bin/sh -xe /tmp/jenkins123.sh
+ echo Building from the Git repository
Building from the Git repository
+ ./build.sh
Repository build script running
Workspace: /var/jenkins_home/workspace/git-integration-project
README.md
build.sh
Finished: SUCCESS

Activer les builds automatiques avec le sondage SCM

Lancer des builds manuellement est utile pour les tests, mais la véritable puissance de l'intégration continue réside dans l'automatisation. Dans cette étape, vous allez configurer Jenkins pour sonder le dépôt Git à la recherche de changements.

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

Le calendrier est enregistré avec la configuration du job. Jenkins vérifiera désormais le dépôt configuré une fois par minute et lancera une nouvelle build lorsqu'il détectera un nouveau commit.

  1. Revenez à l'interface Jenkins et accédez à la page git-integration-project.
  2. Dans la barre latérale gauche, vous verrez une nouvelle option appelée Git Polling Log. Cliquez dessus.
  3. Cette page affiche l'activité de sondage après que Jenkins a effectué au moins un cycle. Il peut s'écouler jusqu'à une minute avant que la première entrée n'apparaisse. Vous devriez voir des entrées comme :
Started on ...
Using strategy: Default
[poll] Last Built Revision: Revision ...
The recommended git tool is: NONE
No credentials specified
 > git --version ## timeout=10
 > git ls-remote -h -- git://localhost/git-playground.git ## timeout=10
...
No changes

Configuration du sondage SCM

Cela démontre que Jenkins est configuré pour sonder le dépôt automatiquement. Dans un projet réel, le dépôt serait généralement hébergé sur un serveur Git et Jenkins lancerait la build dès l'apparition de nouveaux commits.

Résumé

Dans ce laboratoire, vous avez acquis une expérience pratique de l'une des intégrations les plus critiques dans un pipeline CI : connecter Jenkins à un dépôt de contrôle de version 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 récupérer le code depuis un dépôt Git.
  • Définir une étape de build pour exécuter un script shell à partir du code récupéré.
  • Vérifier la configuration en lançant une build manuelle.
  • Configurer un déclencheur de build automatisé via Poll SCM, permettant à Jenkins de détecter et de compiler 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.