Je souhaite utiliser les paramètres définis dans le travail Jenkins comme arguments des commandes Shell du même travail.
J'ai créé une construction paramétrée avec les paramètres suivants:
high.version: 234
low.version: 220
Je souhaite utiliser ces variables comme arguments du script Shell de la construction:
/bin/bash /hai/mycode/scripts/run_script.sh high.version
Comment puis-je ces paramètres dans le même travail?
Ce qui m'a vraiment aidé, c’est Hudson: Comment passer des paramètres au script Shell
Solution: les variables sont en majuscule même si vous les définissez en minuscule!
Jenkins créera des variables d'environnement avec les noms des paramètres.
La mise en garde ici est que Jenkins va aussi faire cela pour les paramètres qui ne représentent pas des noms de variables valides - ceux-ci sont difficiles d'accès dans bash
. C'est le cas dans votre exemple, car les noms de variable bash
ne doivent pas contenir le caractère .
.
La solution la plus simple est que vous
high_version
et low_version
(qui sont des noms de variable bash
valides)Exemple:
/bin/bash /hai/mycode/scripts/run_script.sh "$high_version"
Si vous ne pouvez pas renommer les paramètres pour représenter les noms de variable bash
valides (par exemple, pour des raisons de convivialité: Jenkins présente les noms de variable aux utilisateurs finaux dans le formulaire Web pour démarrer une construction): vous pouvez toujours accéder à ces paramètres avec grepping le nom du paramètre dans la sortie de la commande env
.
Avez-vous essayé cela?
echo "function hello() { " > gg.sh
echo "echo \$1">> gg.sh
echo "}" >> gg.sh
echo "hello \$1" >> gg.sh
chmod 777 gg.sh
./gg.sh $hello_version
Faites attention au nom de la variable, le point n'est pas très bien supporté, pour plus de détails, vous pouvez le faire. https://issues.jenkins-ci.org/browse/JENKINS-7180