Configurer l’enregistrement fermé pour les projets Spring Boot avec Github et Jenkins

Online Coding Courses for Kids

introduction

L’un des plus grands défis auxquels les développeurs sont confrontés est d’être Agile ou, en d’autres termes, de pouvoir fournir des versions stables des produits à temps. À chaque Sprint, nous devons proposer de nouvelles fonctionnalités, sans bug fonctionnalités.

Et pourquoi s’embêter à créer, tester et déployer manuellement alors que nous pourrions avoir un processus automatisé? Un processus qui vérifierait chaque morceau de code avant de le fusionner dans la branche stable, puis de le déployer. Par exemple, en le déployant sur une machine de test prête pour l’équipe QA.

Il existe de nombreux outils pour implémenter ce processus CI / CD, mais nous nous en tiendrons à un outil open-source génial, Jenkins.

Jenkins est un serveur d’automatisation. Il permet d’automatiser la création, les tests et le déploiement de votre application. Jenkins soutient Git et Maven qui seront nos invités dans ce mini projet.

Cet article vous guidera tout au long de la configuration du processus Jenkins à déclencher chaque fois qu’un commit est effectué. Ensuite, nous nous assurerons que notre référentiel GitHub est correctement configuré pour ce scénario. Enfin, fera un petit test pour voir que tout fonctionne correctement.

Conditions préalables

Pour que vous puissiez suivre ce tutoriel, certaines petites choses doivent être configurées.

  • Un serveur Jenkins. Vous pouvez utiliser DigitalOcean pour créer un droplet avec Jenkins prêt à l’emploi. Cela devrait prendre moins de 5 minutes.
  • Un référentiel GitHub. Notez que vous pouvez utiliser et contrôler le fournisseur d’hébergement à condition qu’il vous offre la possibilité d’ajouter des Webhooks.
  • Une application Spring Boot avec des tests. Si vous n’en avez pas déjà, vous pouvez le cloner ce dépôt.

Configurer Jenkins

Ainsi, après avoir créé le droplet Jenkins, vous devez suivre certaines étapes pour que la machine soit opérationnelle.

Connectons-nous à notre gouttelette nouvellement créée et préparons notre environnement. Nous allons commencer par exécuter quelques commandes dans le terminal:

$ ssh [email protected]_VM_IP

Il vous sera demandé de créer votre mot de passe Jenkins. Utilisez un mot de passe fort et redémarrez votre service Jenkins:

$ systemctl restart jenkins

Votre serveur Jenkins est désormais accessible à l’adresse suivante http://YOUR_VM_IP:8080 et vous devriez voir quelque chose comme ça. Après cela, vous serez redirigé vers la page de connexion:

écran de chargement Jenkins

Et voilà, nous sommes prêts!

page de connexion jenkins

Le nom d’utilisateur par défaut est admin, et le mot de passe est celui que vous avez créé au début.

Avant de créer notre premier projet, passons à Gérer Jenkins ~> Gérer les plugins et installer Générateur de requêtes d’extraction GitHub.

Allez maintenant à Gérer Jenkins ~> Configurer le système configurer le serveur GitHub. Allons-y et cliquons sur Nouvel article dans le coin supérieur gauche de l’écran:

cliquez sur nouvel élément jenkins

Maintenant, allez-y et tapez un nom pour votre nouveau projet et sélectionnez Projet Freestyle:

créer un nouveau projet freestyle jenkins

Nous devons spécifier certains paramètres pour le projet, afin que Jenkins sache quel commit il doit utiliser pour la partie build et test.

La première chose à faire est de spécifier l’URL du projet, sous le Général onglet, et Projet GitHub.

En dessous de Gestion du code source onglet, sélectionnez Git. Après avoir entré l’URL de votre référentiel et vos informations d’identification, sous Ramifié pour construire, utilisation ${ghprbActualCommit}.

Clique sur le Avancée… et ajoutez les détails suivants:

  • Nom: origin
  • Refspec: +refs/pull/${ghprbPullId}/*:refs/remotes/origin/pr/${ghprbPullId}/*

Remarque: Cette valeur est requise pour générer uniquement les demandes d’extraction.

gestion du code source jenkins

Après avoir configuré notre référentiel, nous devons spécifier quand ce travail sera déclenché. Pour cela, allez à Créer des déclencheurs onglet et sélectionnez Générateur de requêtes d’extraction GitHub.

Tout d’abord, sélectionnez les informations d’identification configurées précédemment et vérifiez Utilisez les Hooks GitHub pour le déclenchement de build. Maintenant, ajoutez un Mettre à jour l’état de validation pendant la construction déclenchez et configurez-le comme dans l’image:

mise à jour de l'état de validation pendant la construction de jenkins

Ajouter un Messages d’état de construction déclencheur pour SUCCESS, ERROR, et FAILURE.

Pour le Construire phase que nous ajouterons Invoquer des cibles Maven de niveau supérieur avec les paramètres suivants:

  • Version Maven – votre version Maven souhaitée, peut être configurée à partir de Configuration du système
  • Buts – clean install -U
  • POM – pom.xml

Cliquez sur sauver et nous avons terminé!

Configuration du référentiel GitHub

Nous avons réussi jusqu’à présent à configurer le flux de travail Jenkins, mais qu’en est-il de GitHub? C’est ce que nous allons faire maintenant.

Aller à Réglages sur la page de votre référentiel et sélectionnez le Webhooks option dans le menu de gauche. Ajoutez un nouveau webhook avec les détails suivants:

Pour le URL de la charge utile type http://YOUR_VM_IP:8080/ghprbhook/ et nous sélectionnerons Demandes d’extraction comme option de déclenchement. Le type de contenu doit être application/json. Quitter le Secret champ vide et sauver.

Tester le flux de travail

Le moment que nous attendions. Créez une nouvelle branche, transmettez-la à GitHub, puis créez une demande d’extraction. Dès que nous créons la Pull Request, un job sera déclenché sur Jenkins:

demande d'extraction github jenkins

Bientôt, un Détails Le lien apparaîtra sur la page de la demande d’extraction. Si vous cliquez sur le lien, vous verrez une page comme celle-ci:

Job Jenkins déclenché

Maintenant, si nous allons au Sortie de la console nous pouvons voir que tous les tests sont passés:

[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
...
Finished: SUCCESS

succès construire jenkins

Pour les besoins de ce tutoriel, je vais faire un autre commit avec un test qui échoue pour voir qu’il fonctionne correctement. Et le résultat:

[ERROR] Tests run: 3, Failures: 1, Errors: 0, Skipped: 0
...
Finished: FAILURE

échec de la construction de Jenkins

Ici, nous avons implémenté avec succès une vérification fermée pour les projets Spring Boot, à l’aide de GitHub et Jenkins.

Conclusion

Les ingénieurs logiciels sont censés fournir des solutions sans bogue à leurs clients. Avec une logique complexe, il devient primordial de tester le logiciel et d’assurer des vérifications et des cas de test pour s’assurer que le projet est stable.

Dans cet article, nous avons implémenté une vérification fermée pour les projets Spring Boot, en utilisant GitHub et Jenkins, pour garantir la réussite des vérifications dans le code que nous envoyons.


Close Menu