Utiliser la cachette dans Jenkins

Utiliser la cachette dans Jenkins

Dans ce tutoriel, nous apprendrons comment nous pouvons utiliser les étapes de cachette Jenkins dans un pipeline pour copier ou déplacer des fichiers d'un contrôleur Jenkins à un autre hôte.

Lorsque vous travaillez dans Jenkins, vous pouvez rencontrer un scénario où un travail produit des fichiers et des répertoires spécifiques. Cependant, depuis les fichiers produits et situés sur l'agent sur lequel le travail a été exécuté, nous devons trouver un moyen de transférer les fichiers vers un autre hôte.

Qu'est-ce que la cachette à Jenkins?

L'étape de cachette dans Jenkins nous permet d'enregistrer des fichiers et des répertoires pour une utilisation tardive sur n'importe quel nœud ou espace de travail connecté au contrôleur. Par défaut, Jenkins jettera les fichiers cachés une fois le pipeline terminé.

Il est bon de se rappeler que les fichiers cachés ne sont pas disponibles dans d'autres pipelines ou travaux au sein d'un contrôleur Jenkins. Si vous souhaitez transférer des fichiers entre des travaux ou des pipelines, utilisez plutôt le module Archivearfacts.

Une autre chose à garder à l'esprit de l'étape de cachette dans Jenkins est qu'il est préférable de réserver aux petits fichiers. En effet. Pour les fichiers volumineux, envisagez d'utiliser un plugin de gestionnaire d'espace de travail externe.

Jenkins Syntaxe de la cachette

Ce qui suit montre la syntaxe de l'étape de cachette de Jenkins. L'étape accepte les paramètres suivants:

  1. nom: chaîne - Ceci est un type de chaîne qui définit le nom de la cachette. Cela devrait être un identifiant simple qui fait référence au travail cible, bien qu'il ne soit pas requis.
  2. Autorcempty: booléen - Le pertempty est une option booléenne qui définit si la cachette doit être créée même si aucun fichier n'est disponible. Par défaut, cette option est définie sur False et Jenkins renvoie une erreur si aucun fichier n'est disponible pour la rachat.
  3. exclure: chaîne - Ce paramètre facultatif vous permet de définir l'ensemble des fichiers et répertoires que vous souhaitez exclure de la cachette. Utilisez une liste séparée par des virgules pour spécifier les fichiers que vous souhaitez exclure. Pour sélectionner un modèle, utilisez la liste des modèles ANT.
  4. Comprend: String - Similaire au modèle d'exclusion, mais il définit les fichiers à inclure dans la cachette.
  5. usagefaultExcluds: booléen - Ce paramètre booléen vous permet d'utiliser les exclusions par défaut de la fourmi. Par défaut, la valeur est définie sur true.

Exemple de démonstration

Nous utiliserons un contrôleur Jenkins lié aux agents Debian 11 et Debian 10 pour démontrer comment nous pouvons utiliser l'étape de cachette dans Jenkins.

Nous utiliserons ensuite un JenkinsFile comme indiqué ci-dessous:

pipeline
Agent aucun
étapes
étape ('start')
agent label 'debian11'
pas
sh "'
échantillon.shot
mkdir -p dir
Touch Dir / Sample_neted.shot
Touch Dir / Sample_nesed2.shot
'"
Stash (nom: «samplestash»)


étape ('Vérifier les fichiers')
agent label 'debian10'
pas
Unstash 'Samplestash'
sh 'arbre'



L'exemple de pipeline ci-dessus commence par créer des exemples de fichiers à des fins de démonstration. Nous utilisons ensuite l'étape de cachette pour créer un Samplestash avec tous les fichiers générés. Enfin, nous débouchons les fichiers sur l'agent cible en utilisant l'étape de décalage.

Une fois que nous avons exécuté le pipeline, nous devons obtenir une sortie comme indiqué:

À partir de la sortie ci-dessus, nous pouvons voir que les fichiers ont été cachés et non trésorés sur le nœud Debian11 et non trésillé sur le nœud Debian 10.

Conclusion

Dans cet article, vous avez appris les bases de travailler avec des étapes de cachette et de décalage dans Jenkins.