
Ajout d'une étape de build "Exécuter un script shell"
Maîtrisez l'ajout de l'étape "Exécuter un script shell" dans la configuration de votre Job Freestyle Jenkins. Apprenez à insérer des commandes shell pour automatiser des tâches simples et afficher des messages. Essentiel pour la CI/CD.
Localiser et sélectionner l'étape "Exécuter un script shell"
Une fois que vous avez configuré les options générales de votre Job Freestyle, l'étape suivante consiste à définir les actions concrètes qu'il doit réaliser. Pour cela, nous allons nous concentrer sur la section "Build" (ou "Etapes de build" / "Build Steps") de la page de configuration de votre Job. Cette section est le véritable moteur de votre automatisation, car elle vous permet d'ajouter une ou plusieurs opérations séquentielles.
Dans cette section "Build", recherchez un bouton ou un menu déroulant typiquement libellé "Ajouter une étape au build" (ou "Add build step"). En cliquant dessus, Jenkins vous présentera une liste des différents types d'étapes de build disponibles. Cette liste peut varier en fonction des plugins installés sur votre instance Jenkins. Pour notre objectif, qui est d'exécuter des commandes système simples, nous allons choisir une des options les plus fondamentales et polyvalentes.
Parmi les options proposées, sélectionnez "Exécuter un script shell" (ou "Execute shell" si votre interface Jenkins est en anglais). Si vous travaillez sur un agent Jenkins configuré sous Windows, l'équivalent serait "Exécuter une commande batch Windows" ("Execute Windows batch command"). Pour ce guide, nous nous concentrerons sur l'option shell, qui est courante dans les environnements Linux et macOS, souvent utilisés pour les serveurs CI/CD. Une fois cette option sélectionnée, un nouveau champ de texte multiligne apparaîtra, généralement intitulé "Commande" ou "Command".
Saisir les commandes shell dans le champ dédié
Le champ de texte "Commande" qui vient d'apparaître est l'endroit où vous allez écrire le script ou la séquence de commandes que Jenkins doit exécuter. Tout ce que vous tapez ici sera interprété comme si vous le saisissiez directement dans un terminal shell sur l'agent exécutant le build. Pour notre projet "Hello Jenkins", nous allons utiliser des commandes echo pour afficher des messages.
Dans ce champ, vous pouvez saisir une ou plusieurs lignes de commandes. Chaque ligne est généralement exécutée séquentiellement. Voici un exemple de script simple que vous pourriez utiliser pour ce premier projet :
echo "-------------------------------------------------"
echo " DEBUT DE MON PREMIER JOB JENKINS "
echo "-------------------------------------------------"
echo ""
echo "Hello Jenkins! Ce message est généré par un script shell."
echo "La date et l'heure actuelles sont : $(date)"
echo "Je suis en train de m'exécuter dans le répertoire : $(pwd)"
echo ""
echo "-------------------------------------------------"
echo " FIN DE MON PREMIER JOB JENKINS "
echo "-------------------------------------------------"Ce script utilise la commande echo pour afficher du texte. La syntaxe $(commande), comme dans $(date) ou $(pwd), est une substitution de commande : la commande à l'intérieur des parenthèses est exécutée, et sa sortie est insérée à cet endroit dans la chaîne de caractères affichée par echo. Ainsi, $(date) affichera la date et l'heure actuelles, et $(pwd) (print working directory) affichera le chemin du répertoire où le script est en cours d'exécution.
Il est important de noter que si une commande de votre script échoue (c'est-à-dire qu'elle retourne un code de sortie non nul), Jenkins marquera par défaut l'étape de build, et potentiellement le build entier, comme ayant échoué. Pour des scripts simples comme celui-ci, le risque est minime, mais c'est un comportement crucial à comprendre pour des automatisations plus complexes.
Comprendre le contexte d'exécution et les bonnes pratiques
Lorsque Jenkins exécute votre script shell, il le fait dans un environnement spécifique. Typiquement, le script s'exécute dans le répertoire de l'espace de travail (workspace) du Job sur l'agent Jenkins. C'est pourquoi la commande pwd vous montrera un chemin spécifique à Jenkins. Comprendre ce contexte est important si votre script doit interagir avec des fichiers ou d'autres ressources.
Pour des scripts très courts et simples, les écrire directement dans le champ "Commande" est acceptable. Cependant, pour des logiques plus élaborées, il est souvent préférable de stocker votre script dans un fichier (par exemple, mon_script.sh) qui serait versionné avec votre code source (via Git, par exemple). Ensuite, dans l'étape "Exécuter un script shell", vous appelleriez simplement ce fichier : sh /chemin/vers/mon_script.sh. Cela rend vos Jobs Jenkins plus propres et vos scripts plus faciles à maintenir et à tester en dehors de Jenkins.
Enfin, après avoir saisi vos commandes dans le champ dédié, n'oubliez pas de sauvegarder la configuration de votre Job en cliquant sur le bouton "Sauvegarder" (ou "Save") situé généralement en bas de la page. Sans cette sauvegarde, vos modifications ne seraient pas prises en compte. Une fois sauvegardé, votre Job est prêt pour sa première exécution, ce qui nous permettra de vérifier que notre étape de build "Exécuter un script shell" fonctionne comme prévu.