Jenkins - 2.3 Exécuter un script bash dans Jenkins avec des paramètres
Jenkins peut exécuter un script bash, à condition que ce script soit présent dans le conteneur. Cette leçon montre comment créer un script, lui donner les droits d'exécution et le copier dans le conteneur. Elle explique ensuite comment passer des paramètres et lancer le script depuis un job.
Créer le script en dehors du conteneur
Le conteneur Jenkins ne contient que les outils dont Jenkins a besoin. Il n'a donc pas d'éditeur de texte comme vi. Le fichier est créé sur la machine virtuelle, en dehors du conteneur.
Le script peut s'appeler script.sh. Sa première ligne indique qu'il utilise bash, puis il affiche un message avec echo. Pour qu'il puisse être exécuté, il faut lui donner les droits d'exécution avec chmod +x.
Une fois le fichier enregistré, la vidéo teste le script directement sur la machine virtuelle, en ajoutant un prénom et un nom après son nom.
#!/bin/bash
echo "Hello"
name=$1
last_name=$2
echo "$name $last_name"
Passer des paramètres au script
Les paramètres sont accessibles avec $1 pour le premier, et $2 pour le deuxième. Dans le script, ils sont enregistrés dans les variables name et last_name. Ces variables peuvent ensuite être réutilisées dans le reste du script.
Sans paramètres, le script n'affiche que la ligne Hello. En ajoutant un prénom et un nom après le nom du script, la sortie devient complète.
Copier le script dans le conteneur et l'exécuter
La machine virtuelle ne voit pas les fichiers du conteneur. Il faut donc copier le script dans le conteneur, dans le dossier tmp, avec la commande docker cp.
Dans le job Jenkins, on ouvre Configurer, puis on colle le chemin du script et ses paramètres. Après avoir cliqué sur Lancer un build, Jenkins exécute le script et affiche le résultat dans la sortie de la console. La vidéo montre aussi qu'on peut remplacer les paramètres fixes par des variables, sans changer la sortie.
docker cp script.sh <nom-du-conteneur>:/tmp/script.sh
En résumé
Un script bash est un fichier texte exécutable. Il reçoit ses paramètres avec $1 et $2. Il doit être copié dans le conteneur Jenkins avant d'être lancé. Le job indique le chemin du script et ses paramètres, puis la sortie apparaît dans la console.
Points clés
- Le conteneur Jenkins ne contient que les outils nécessaires à Jenkins.
- Un script bash commence par une ligne qui indique le shell utilisé.
- chmod +x donne les droits d'exécution au script.
- Les paramètres sont lus avec $1, $2, et ainsi de suite.
- Le script doit être copié dans le conteneur avant que le job puisse l'exécuter.
Questions fréquentes
Pourquoi ne pas écrire le script directement dans le conteneur ?
Le conteneur ne contient pas d'éditeur comme vi. Il est conçu pour exécuter uniquement ce dont il a besoin.
Que se passe-t-il si je n'ajoute pas les paramètres ?
Le script n'affiche que la ligne Hello. Les variables name et last_name restent alors vides.
Comment changer les paramètres sans modifier le script ?
Il suffit de modifier les paramètres indiqués dans la configuration du job. Le script reste inchangé.