Comment tester JenkinsFile localement

Comment tester JenkinsFile localement

Lorsque vous commencez à créer des pipelines Jenkin à l'aide de Jenkinsfile déclaratif, il est sans effort de faire des erreurs dans votre définition de syntaxe.

Il est donc une bonne pratique pour vérifier et vérifier vos Jenkinsfiles avant de les engager dans vos référentiels. Cela garantit que vous ne vous retrouvez pas avec de nombreuses constructions ratées dans votre serveur Jenkins.

Ce tutoriel affichera diverses méthodes et techniques que vous pouvez utiliser pour peluches et vérifier votre JenkinsFile avant de les exécuter sur le serveur.

Le Jenkinsfile

Le JenkinsFile est un outil puissant qui vous permet de spécifier les instructions de vos versions dans une syntaxe simple et facile à comprendre. Il existe deux méthodes principales pour créer un Jenkinsfile:

    1. Utilisation de la syntaxe déclarative
    2. En utilisant des scripts groovy

Ce tutoriel se concentrera sur un article écrit en syntaxe déclarative, car il est beaucoup plus facile à comprendre et à utiliser.

Ce qui suit montre la syntaxe d'un simple déclaratif Jenkinsfile.

def msg = "Ceci est un texte personnalisé"
pipeline
agent
étapes
scène ('Hello')
pas
scénario
msg = "Maintenant, la chaîne est différente!!"

Echo "$ msg"




Nous ne passerons pas en revue la structure du fichier ni ce que chaque bloc dans le fichier ci-dessus représente. Au lieu de cela, vous pouvez consulter notre tutoriel Jenkins pour explorer les diverses bases de Jenkins, telles que la déclaration variable, les étapes Jenkins, les étapes de Jenkins, et plus.

Qu'est-ce qui se lie, et pourquoi est-ce important?

Linting fait référence au processus de vérification du code source pour des problèmes ou des erreurs potentiels. Dans la plupart des cas, nous effectuons généralement le libellé du code via un outil dédié appelé un linter.

Un code de code prendra un code source d'entrée, l'analyse et s'assurera qu'il n'y a pas d'erreurs potentielles dans le fichier. Il validera également les problèmes de syntaxe et de formatage défini dans une langue donnée.

Certains problèmes courants que les linceurs peuvent détecter comprennent les erreurs de syntaxe, les problèmes de formatage et les problèmes logiques potentiels.

Voici où se situe le problème en ce qui concerne Jenkinsfiles. Une fois que vous avez modifié un JenkinsFile, vous devez commettre les modifications et pousser les modifications au référentiel.

Cependant, Jenkins est configuré pour exécuter une construction chaque fois qu'un changement dans le JenkinsFile est détecté. Par conséquent, si vous faites une erreur dans le fichier et que vous vous engagez sans tester, Jenkins tentera de construire le projet et d'échouer en raison des erreurs dans le fichier du pipeline.

Vous rencontrerez souvent de telles erreurs conduisent à des versions simultanées lentes, ou même à une pléthore de git s'engage à corriger les erreurs de syntaxe.

Pour éviter de telles erreurs, il est bon d'utiliser un linter pour vérifier que tout fonctionne avant de s'engager.

Comment peloter un jenkinsfile

Discutons maintenant de la façon dont nous pouvons peindre le Jenkinfile localement avant de nous engager.

Méthode 1 - Utilisation du linter déclaratif de Jenkins

La première méthode que nous pouvons utiliser pour peloter notre JenkinsFile avant de nous engager est d'utiliser la ligne de commande.

Connectez-vous dans votre tableau de bord Jenkins - Gérez Jenkins - Jenkins CLI et Donwload the Jenkins CLI Utility.

Vous trouverez le lien pour télécharger le Jenkins CLI et comment exécuter la commande dans la première section.


Une fois téléchargé, accédez à l'emplacement du Jenkins-Cli.Fichier de pot et exécuter la commande fournie ci-dessus.

La commande doit répertorier les commandes possibles que vous pouvez exécuter sur le serveur comme indiqué:

Configuration d'un échantillon Jenkinsfile

L'étape suivante consiste à configurer un échantillon de Jenkinsfile dont nous avons besoin pour les peluches et tester la validité. À des fins de démonstration, nous utiliserons un simple script Hello World comme indiqué ci-dessous:

def msg = "Ceci est un texte personnalisé"
pipeline
agent
étapes
scène ('Hello')
pas
scénario
msg = "Maintenant, la chaîne est différente!!"

echo $ msg




Vous pouvez enregistrer le JenkinsFile à n'importe quel emplacement de votre système de fichiers.

Liant un jenkinsfile à partir de la ligne de commande

Pour Lint un JenkinsFile à partir de la ligne de commande, nous pouvons utiliser la commande:

$ Java -jar Jenkins-Cli.jar -s jenkins_url -websock < Jenkinsfile


où le jenkins_url est l'adresse de votre contrôleur Jenkins.

Si votre serveur Jenkins a besoin d'authentification, utilisez l'option -Auth suivie du nom d'utilisateur et du mot de passe comme nom d'utilisateur: mot de passe.

Un exemple de syntaxe est illustré ci-dessous:

$ Java -jar Jenkins-Cli.JAR -S JENKINS_URL -Auth Nom d'utilisateur: Mot de passe -Websocket Decarative-Linter < Jenkinsfile


Voyons la sortie du linter lorsque nous passons ce qui précède Jenkinsfile.

$ Java -jar Jenkins-Cli.jar -s http: // localhost: 9001 / -Auth root: mot de passe -websocket-liter déclaratif < .\Jenkinsfile


Une fois que nous exécutons la commande ci-dessus, le linter analysera le JenkinsFile et sortira tous les problèmes potentiels. Puisque notre fichier a des erreurs, le linter nous dira pourquoi et des correctifs potentiels comme démontré ci-dessous.


Dans ce cas, le linter nous dit que nous devons enfermer le nom de la variable sur le bloc d'écho avec des guillemets.

Nous pouvons aller de l'avant et réparer notre fichier.

def msg = "Ceci est un texte personnalisé"
pipeline
agent
étapes
scène ('Hello')
pas
scénario
msg = "Maintenant, la chaîne est différente!!"

Echo "$ msg"




Une fois fixe, nous pouvons ré-cours notre commande Linter:

$ Java -jar Jenkins-Cli.jar -s http: // localhost: 9001 / -Auth root: mot de passe -websocket-liter déclaratif < .\Jenkinsfile


Puisque nous n'avons pas d'erreurs sur notre JenkinsFile, la commande renvoie un message comme indiqué:

JenkinsFile a validé avec succès.


Et nous avons testé et vérifié avec succès notre Jenkinsfile est prêt à être engagé.

Méthode 2 - Ajouter le JenkinsFile Linter à votre éditeur

La deuxième méthode courante pour tester et vérifier votre JenkinsFile est en ajoutant le plugin Jenkins Linter à votre éditeur.

Jenkins fournit un linter pour:

    1. Éditeur d'Eclipse
    2. Code VisualStudio
    3. Néovim
    4. Atome
    5. Éditeur de texte sublime

Cette section montrera comment utiliser le JenkinsFile Linter sur Visual Studio Code.

Dans Visual Studio Code, appuyez sur Ctrl + Shift + K pour ouvrir le menu Extensions. Recherche de "Jenkins Pipeline Linter".

Sélectionnez l'extension «Jenkins Pipeline Linter Connector» et cliquez sur Installer.


Une fois installé, ouvrez votre JenkinsFile dans Visual Studio Code et appuyez sur Ctrl + Shift + P pour ouvrir la palette de commandes.

Entrez la commande «Valider JenkinsFile» et appuyez sur Entrée pour exécuter.

Cela vous invitera à l'URL Jenkins Linter.

https: /// pipeline-model-converter / valider

Entrez le lien ci-dessus comme indiqué dans l'exemple ci-dessous:

http: // localhost: 8080 / pipeline-model-converter / valider


Si votre serveur nécessite une authentification, ouvrez les paramètres de code Visual Studio et recherchez des «Jenkins».

Définir le nom d'utilisateur et le mot de passe Jenkins.


Une fois que vous avez exécuté la commande «valider jenkinsfile», l'extension analysera votre jenkinsfile et affichera des problèmes potentiels.

Conclusion

Vous avez appris à utiliser le Jenkins Cli Linter pour tester et vérifier votre Jenkinsfile sur votre machine avant de les commettre. Vous avez également appris à ajouter le Jenkins Linter dans le code Visual Studio pour tester votre JenkinsFile de votre éditeur.