Un JenkinsFile fait référence à un fichier texte ASCII qui contient des définitions d'un pipeline Jenkins. Un JenkinsFile utilise une syntaxe déclarative ou un format de script groovy. Le Jenkinsfile contient une série d'étapes et d'étapes qui composent le pipeline Jenkins.
Chaque étape du pipeline est exécutée dans un ordre spécifique, et les étapes suivantes peuvent utiliser les résultats d'une étape. Nous utilisons principalement les étapes qui sont définies dans un pipeline Jenkins pour effectuer les tâches automatisées telles que la création d'applications, les tests et le déploiement.
Par défaut, le JenkinsFile est inclus dans le répertoire racine d'un projet. Cependant, vous pouvez le stocker dans une bibliothèque Jenkinsfile unique à Jenkins. Cela permet à Jenkins de garder une trace du fichier Jenkins et de surveiller toutes les modifications apportées au pipeline. En cas de modifications de JenkinsFile ou du code source du référentiel, Jenkins détecte automatiquement les modifications, construisez le projet et exécutez tous les tests définis dans le Jenkinsfile.
Ce tutoriel couvre les bases de la création et de l'écriture d'un JenkinsFile de base à l'aide d'une syntaxe déclarative.
Anatomie d'un Jenkinsfile de base
L'exemple suivant montre un Jenkinsfile de base. Nous l'utilisons pour montrer comment un JenkinsFile est configuré et comment l'utiliser:
pipeline
agent
étapes
scène ('Hello')
pas
Echo 'Hello World'
Un JenkinsFile est composé des éléments constitutifs fournis. Laissez-nous décomposer ce que chaque bloc implique.
- Pipeline - Le bloc de pipeline indique à Jenkins que toute commande définie dans ce bloc est traitée comme faisant partie de la configuration et des étapes du pipeline. Ceci est le bloc de niveau supérieur du Jenkinsfile. Vous pouvez définir d'autres éléments au-dessus du bloc de pipeline tels que les variables.
- Agent - Un agent est un nœud d'agent Jenkins qui est utilisé pour exécuter les étapes d'un pipeline Jenkins. Un agent peut être une machine physique, une machine virtuelle ou un conteneur.
- Étape - Le bloc d'étage fait référence à un groupe de pas dans un pipeline Jenkins. Les étapes sont utilisées pour regrouper les étapes connexes et contrôler l'ordre dans lequel ils sont exécutés.
- Étape - La partie suivante est le bloc de pas. Ceci est utilisé pour définir une seule tâche dans un pipeline Jenkins. Chaque étape du JenkinsFile est exécutée dans l'ordre dans lequel ils sont définis.
Dans l'exemple du pipeline précédent, nous définissons une seule étape appelée Hello. Nous définissons une étape simple dans la scène qui imprime la chaîne «Hello World» à la console.
Diriger un Jenkinsfile
Pour exécuter un JenkinsFile, suivez les étapes qui sont indiquées dans les éléments suivants:
- Installez Jenkins sur votre machine ou obtenez une instance Jenkins d'un fournisseur de cloud. Vous pouvez vérifier notre tutoriel sur la façon d'installer Jenkins sur Windows ou Linux pour en savoir plus.
- Créez un nouveau projet de pipeline Jenkins en cliquant sur le lien «nouvel élément» dans le tableau de bord et en sélectionnant l'option «Pipeline».
- Dans la section «Pipeline», choisissez le «script de pipeline».
- Collez le contenu du Jenkinsfile qui est fourni dans l'exemple précédent.
- Enregistrer le projet en cliquant sur le bouton «Enregistrer».
- Cliquez sur le bouton «Build Now» pour exécuter le Jenkinsfile.
Vous pouvez afficher la sortie du JenkinsFile en cliquant sur le numéro de construction dans la section «Historique de construction» sur le tableau de bord.
Dirigez-vous vers la section «sortie de la console» pour afficher le message de la commande echo.
Il est bon de garder à l'esprit que vous pouvez définir beaucoup plus dans un Jenkinsfile. Certains blocs courants que vous pourriez rencontrer comprennent les éléments suivants:
- Environnement - Le bloc d'environnement est utilisé pour définir les variables d'environnement dans lesquelles les étapes du JenkinsFile peuvent utiliser.
- POST - Nous pouvons utiliser le bloc de poste pour spécifier les étapes qui doivent être exécutées une fois les étapes du pipeline principales terminées.
- Try / Catch - Un autre bloc standard est le bloc d'essai / catch. Ceci est utilisé pour gérer les exceptions qui peuvent se produire lors de l'exécution du pipeline Jenkins. Vous pouvez explorer notre tutoriel à ce sujet pour en savoir plus.
- Parallèle - Le bloc parallèle nous permet de définir une série d'étapes qui sont exécutées en parallèle.
- Entrée - Vous trouverez également le bloc d'entrée dans la plupart des Jenkinsfile. Ce bloc est utilisé pour suspendre le pipeline Jenkins et demander une entrée de l'utilisateur.
- Times d'horodat - Enfin, un autre bloc standard dans un JenkinsFile est le bloc d'horodatage. Ceci est utilisé pour ajouter les horodatages à la sortie du pipeline Jenkins.
Vous pouvez explorer la documentation sur la syntaxe déclarative Jenkins pour en savoir plus sur les différents blocs que vous pouvez utiliser.
Conclusion
Nous avons discuté de la façon dont vous pouvez créer un Jenkinsfile. Nous avons également couvert l'anatomie d'un Jenkinsfile en explorant un pipeline Hello World primaire.