Intégration Jenkins Git - Utile pour tous les professionnels DevOps



Ce blog traite de l'intégration de Git avec Jenkins. Il discute également des avantages de l'intégration de Git avec Jenkins avec la démo.

est certainement incomplet sans Jenkins. Jenkins avec Git est une merveilleuse combinaison. Donc dans cet article, je vais parler de Jenkins Git Integration et de ses avantages. Les pointeurs que nous allons couvrir sont les suivants:

comment utiliser une sous-chaîne dans SQL

Commençons donc par notre premier sujet.





Qu'est-ce que Git - Pourquoi Git Est venu au monde?

Nous savons tous que «la nécessité est la mère de toutes les inventions». De même, Git est apparu pour répondre à certaines nécessités auxquelles les développeurs étaient confrontés avant Git. Alors, prenons du recul pour tout savoir sur les systèmes de contrôle de version (VCS) et comment Git est né.

Contrôle de version est la gestion des modifications apportées aux documents, programmes informatiques, grands sites Web et autre collecte d'informations.



Il existe deux types de VCS:

  • Système de contrôle de version centralisé (CVCS)

  • Système de contrôle de version distribué (DVCS)



VCS centralisé

Un système de contrôle de version centralisé (CVCS) utilise un serveur central pour stocker tous les fichiers et permet la collaboration en équipe. Il fonctionne sur un référentiel unique auquel les utilisateurs peuvent accéder directement à un serveur central.

Veuillez vous référer au schéma ci-dessous pour avoir une meilleure idée de CVCS:

Le référentiel dans le diagramme ci-dessus indique un serveur central qui peut être local ou distant et qui est directement connecté à chacun des postes de travail du programmeur.

Chaque programmeur peut extraire ou mise à jour leurs postes de travail avec les données présentes dans le référentiel. Ils peuvent également apporter des modifications aux données ou commettre au référentiel. Chaque opération est effectuée directement sur le référentiel.

Même s'il semble assez pratique de maintenir un référentiel unique, il présente des inconvénients majeurs. Certains d'entre eux sont:

  • Il n'est pas disponible localement, ce qui signifie que vous devez toujours être connecté à un réseau pour effectuer une action.

  • Étant donné que tout est centralisé, dans tous les cas, le serveur central plante ou est corrompu entraînera la perte de toutes les données du projet.

C'est là que Distributed VCS résout le problème.

VCS distribué

Ces systèmes ne reposent pas nécessairement sur un serveur central pour stocker toutes les versions d'un fichier projet.Dans Distributed VCS, chaque contributeur dispose d'une copie locale ou «clone» du référentiel principal. Ici, chacun maintient son propre référentiel local qui contient tous les fichiers et métadonnées présents dans le référentiel principal.

Vous le comprendrez mieux en vous référant au schéma ci-dessous:

Comme vous pouvez le voir dans le diagramme ci-dessus, chaque programmeur gère lui-même un référentiel local, qui est en fait la copie ou le clone du référentiel central sur son disque dur. Ils peuvent valider et mettre à jour leur référentiel local sans aucune interférence.

Ils peuvent mettre à jour leurs référentiels locaux avec de nouvelles données du serveur central par une opération appelée « tirez »Et affectent les modifications apportées au référentiel principal par une opération appelée« poussez ”De leur dépôt local.

Essayons maintenant de connaître la définition de Git.

  • Git est un outil de contrôle de version distribué qui prend en charge les flux de travail non linéaires distribués en fournissant une assurance des données pour le développement de logiciels de qualité. Des outils comme Git permettent la communication entre l'équipe de développement et l'équipe des opérations.

  • Normalement, lorsque vous développez un grand projet, vous avez un grand nombre de collaborateurs. Il est donc très important d'avoir une communication entre les collaborateurs tout en apportant des modifications au projet.

  • Les messages de validation dans Git jouent un rôle très important dans la communication au sein de l'équipe. Outre la communication, la raison la plus importante d'utiliser Git est que vous avez toujours une version stable du code avec vous.

  • Par conséquent, Git joue un rôle essentiel dans la réussite de DevOps.

Qu'est-ce que Jenkins?

Jenkins est un outil d'automatisation open-source écrit en Java avec des plugins conçus à des fins d'intégration continue. Jenkins est utilisé pour créer et tester vos projets logiciels en continu, ce qui facilite l'intégration des modifications au projet pour les développeurs et permet aux utilisateurs d'obtenir plus facilement une nouvelle version. Il vous permet également de livrer en continu votre logiciel en s'intégrant à un grand nombre de technologies de test et de déploiement.

Avec Jenkins, les entreprises peuvent accélérer le processus de développement logiciel grâce à l'automatisation. Jenkins intègre des processus de cycle de vie de développement de toutes sortes, y compris la construction, le document, le test, le package, l'étape, le déploiement, l'analyse statique et bien plus encore.

Jenkins réalise une intégration continue à l'aide de plugins. Les plugins permettent l'intégration de différentes étapes DevOps. Si vous souhaitez intégrer un outil particulier, vous devez installer les plugins pour cet outil. Par exemple Git, projet Maven 2, Amazon EC2, éditeur HTML, etc.

Les avantages de Jenkins comprennent:

  • C'est un outil open source avec un excellent soutien de la communauté.

  • Trop facile à installer.

  • Il dispose de plus de 1000 plugins pour faciliter votre travail. Si un plugin n'existe pas, vous pouvez le coder et le partager avec la communauté.

  • C'est gratuit.

  • Il est construit avec Java et, par conséquent, il est portable sur toutes les principales plates-formes.

Vous savez maintenant comment Jenkins surmonte les lacunes traditionnelles du SDLC. Le tableau ci-dessous montre la comparaison entre «Avant et Après Jenkins».

Avant JenkinsAprès Jenkins
L'ensemble du code source a été construit puis testé. Localiser et corriger les bogues en cas d'échec de compilation et de test était difficile et chronophage, ce qui ralentissait le processus de livraison du logiciel.Chaque commit effectué dans le code source est construit et testé. Ainsi, au lieu de vérifier l'intégralité du code source, les développeurs n'ont qu'à se concentrer sur un commit particulier. Cela conduit à de fréquentes nouvelles versions de logiciels.
Les développeurs doivent attendre les résultats des testsLes développeurs connaissent le résultat du test de chaque commit effectué dans le code source lors de l'exécution.
L'ensemble du processus est manuelIl vous suffit devalider les modifications du code source et Jenkins automatisera le reste du processus pour vous.

Pourquoi Jenkins et Git sont-ils utilisés ensemble?

Comme discuté plus tôt, Aller est un gestionnaire de contrôle de source. C'est là que vous conservez votre code source pour suivre toutes les modifications de code qui se produisent au fil du temps et pour référencer les versions lorsqu'elles sont prêtes à être publiées.

Jenkins , d'autre part, est une solution d'intégration continue. Il est conçu pour automatiser la plupart des tâches qu'un développeur doit effectuer lors du développement d'une nouvelle application (contrôles de qualité du code, construction, archivage des artefacts de construction, tests d'intégration, déploiement dans divers environnements, etc.) Sans solution CI, un développeur doit passer beaucoup de temps à effectuer ces tâches répétitives non productives.

Avantages:

  • Git et Jenkins sont tous deux très puissants, mais avec une grande puissance vient une grande responsabilité. Il est assez courant de justifier une quantité inutile de complication dans un pipeline de construction simplement parce que vous le pouvez.
  • Bien que Jenkins ait beaucoup d'astuces dans sa manche, il est facile d'exploiter les fonctionnalités de Git, car cela facilite la gestion des versions et suivi des bogues beaucoup plus facile heures supplémentaires.
  • Nous pouvons le faire en faisant attention aux versions de code que nous construisons et en les étiquetant de manière appropriée. Cela garde informations relatives à la version proches du code , plutôt que de s'appuyer sur des numéros de build Jenkins ou d'autres noms.
  • Protéger les branches Git réduit le risque d'erreur humaine , et automatiser autant de tâches que possible réduit la fréquence à laquelle nous devons harceler (ou attendre) ces humains.

Exemple:

Prenons l'exemple d'une nouvelle fonctionnalité dans une application web. Un développeur sera identifié et affecté à la tâche, il prend la base de code existante du contrôle Source - disons, Git, apporte ses modifications, effectue des tests unitaires, assure la qualité du code manuellement et vérifie le nouveau code dans Git.

Ensuite, il doit construire le code, le déployer dans une instance d'intégration, exécuter des tests d'intégration et une fois que le changement semble satisfaisant, émettre une demande de déploiement en production. Maintenant, si seulement nous avions un serviteur pour s'occuper de ces sections de test, de construction, de contrôle de qualité et de déploiement, le pauvre développeur aurait pu mieux se concentrer sur ce dans quoi il est vraiment doué: implémenter et améliorer la logique de la fonctionnalité.

def __init__ python

Ce serviteur est Jenkins. Il agit comme un orchestrateur pour exécuter toutes ces activités une fois que la modification est archivée dans le contrôle de code source (Git) et donne ainsi un retour rapide au développeur si les modifications qu'il a apportées sont suffisantes pour le déploiement en production ou non.C'est un logiciel open-source extrêmement flexible et doté d'une tonne de plugins qui peuvent faire presque tout ce que vous souhaitez.

Démo

Nous verrons ici comment intégrer Git à Jenkins. Vous devez suivre 5 étapes:

1. Créez un exemple de programme:

Vous pouvez créer n'importe quel exemple de programme de votre choix, comme Java ou Python ou tout autre programme. Ici, nous écrirons un simple Programme Python qui imprime Hello, World!

2. Créez un travail Jenkins:

  • Ici, vous devez d'abord démarrer Jenkins en utilisant l'invite de commande.

  • Pour cela, vous devez d'abord accéder à l'emplacement Jenkins sur votre système et utiliser la commande java -jar jenkins.war

  • Après avoir exécuté cette commande, ouvrez le navigateur Web et accédez à la page d'accueil de Jenkins à l'aide du lien hôte local: 8080 . Il s'agit du numéro de port par défaut.

  • Ouvrez la page d'accueil de Jenkins en entrer le nom d'utilisateur et le mot de passe.

  • Pour créer un projet, cliquez sur Nouvel article et entrez le nom du projet et sélectionnez Projet Freestyle . Cliquez sur OK.

3. Ajoutez ce programme à Github:

  • Ouvrir git bash sur votre système. Naviguer à l'emplacement de votre programme. Initialisez un référentiel vide à l'aide de la commande git init .

  • Utilisez la commande git add. pour ajouter le fichier à la zone de préparation à partir du répertoire de travail.

  • Ajoutez maintenant le fichier au référentiel local à l'aide de la commande git commit -m 'fichier demo.py ajouté' .

  • Maintenant tu dois poussez ce fichier vers le référentiel distant. Pour ce faire, accédez à votre compte GitHub et créez un nouveau référentiel public. Copiez maintenant l'emplacement de ce dépôt et accédez au terminal git bash. Tapez ici la commande git remote ajouter l'origine . Puisque vous êtes maintenant connecté au référentiel distant, vous pouvez maintenant y envoyer votre code en utilisant la commande git push -u origin master. Pour vérifier cela, accédez au compte GitHub et actualisez la page. Vous verrez le fichier ajouté ici.

4. Ajoutez le plugin Git dans Jenkins:

  • Sur la page d'accueil de Jenkins, accédez à Gérer Jenkins .

  • Cliquez ensuite sur Gérer les plugins . Vérifiez ici le plugin Git dans la section installée. S'il n'est pas disponible ici, recherchez-le dans la section disponible et téléchargez-le.

5. Configurez le travail Jenkins pour déclencher la construction:

  • Accédez au projet dans Jenkins que nous avons créé à l'étape 2. Ici, dans la section Gestion du code source, sélectionnez git et entrez le lien du référentiel public que vous avez créé à l'étape 3. Ensuite dans le Section Créer des déclencheurs , cliquer sur Option SCM d'interrogation . Ici, dans la partie Calendrier, vous devez entrer cinq astérisques séparés par un espace. Ce n'est rien d'autre que la syntaxe cron pour votre travail. Cela signifie que Jenkins vérifiera tous les changements dans le code source toutes les minutes et s'il y a un changement, cela déclenchera la construction de Jenkins.

  • Cliquer sur Appliquer et puis sur sauver . Ensuite, sur la page d'accueil de votre projet, cliquez sur Construisez maintenant . Cela exécutera le projet et dans la sortie de la console, vous pouvez voir votre programme afficher l'état de votre travail Jenkins. Si tout va bien, il s'affichera comme Succès .

Donc, voici comment l'intégration de Jenkins Git est effectuée. Avec cela, nous sommes arrivés à la fin de cet article sur l'intégration Jenkins Git. J'espère que vous avez apprécié cet article.

Maintenant que vous avez compris ce que Intégration Jenkins Git est, regarde ça par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation à la certification Edureka DevOps aide les apprenants à comprendre ce qu'est DevOps et à acquérir une expertise dans divers processus et outils DevOps tels que Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack et GIT pour l'automatisation de plusieurs étapes dans SDLC.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires et nous vous recontacterons