Comment Jenkins Traiter Avec Les Shell Scripts?
Je suis en train d'écrire quelques scripts shell Linux qui se déplacent un peu de code et il serait agréable et simple, si elles pouvaient être interactif.
L'inconvénient c'est que je voudrais exécuter certains de ces scripts dans Jenkins et ne suis pas entièrement sûr de savoir comment Jenkins gère les messages de l'utilisateur dans le script. Je n'ai pas été en mesure de trouver beaucoup de choses sur ce sujet et n'ont pas les ressources pour simplement aller de l'avant et de le tester, donc tout conseil serait apprécié.
Merci les gars
Vous voudrez peut-être consulter attendre(1).
C'est un problème classique. Trucs interactifs est agréable, dans un sens restreint, pour les appelants. Mais le lot choses est beaucoup plus agréable pour l'automatisation (script appelants). Je suggère d'écrire à peu près tout pour le lot d'utilisation, vraiment, sauf si vous travaillez sur un traitement de texte ou quelque chose, parce que dans le long terme, la supérieure de la composabilité des scripts batch finit par être une grande victoire. Ce n'est pas seulement le fait que vous pouvez construire sur des scripts batch beaucoup plus pratique; il est aussi beaucoup plus facile de faire des tests automatisés avec le lot d'interfaces, de sorte que le code finit par n'être plus fiable.
Merci. J'ai été en utilisant attendre, mais de faire ce que je voudrais, il semble y avoir un couple impair de contournement qui je préfère éviter
C'est un problème classique. Trucs interactifs est agréable, dans un sens restreint, pour les appelants. Mais le lot choses est beaucoup plus agréable pour l'automatisation (script appelants). Je suggère d'écrire à peu près tout pour le lot d'utilisation, vraiment, sauf si vous travaillez sur un traitement de texte ou quelque chose, parce que dans le long terme, la supérieure de la composabilité des scripts batch finit par être une grande victoire. Ce n'est pas seulement le fait que vous pouvez construire sur des scripts batch beaucoup plus pratique; il est aussi beaucoup plus facile de faire des tests automatisés avec le lot d'interfaces, de sorte que le code finit par n'être plus fiable.
Merci. J'ai été en utilisant attendre, mais de faire ce que je voudrais, il semble y avoir un couple impair de contournement qui je préfère éviter
OriginalL'auteur degausser | 2012-07-26
Vous devez vous connecter pour publier un commentaire.
Si une commande que Jenkins s'exécute attend d'entrée, il sera tout simplement s'asseoir et à attendre l'entrée. Le travail se bloque et vous devez tuer manuellement. Une façon de gérer cela est de la pipe d'entrée prévue dans la commande, par exemple
ou
echo "Enter Password:"; read PASSWORD
et demandez à l'utilisateur d'entrer son mot de passe à la volée. Il semble que ce qui est acceptable de ce que vous avez dit ci-dessus (?)Le
read
serait bloqué jusqu'à ce que vous tuez le travail manuellement. Étant donné que vous êtes stocker le résultat dans une variable d'environnement, vous pouvez définir cette variable dans le Jenkins, de l'emploi et dans le script ne nécessitent la saisie de l'utilisateur si la variable n'est pas définie.Désolé, j'aurais dû être plus explicite. La vraie commande est un
scp
donc, sauf si vous utilisez attendre il oblige à une invite de commandes. Vous dites une invite de "bloquer". Je me rends compte qu'il pourrait arrêter le processus et d'attente pour l'entrée, mais ce que l'utilisateur sera en mesure de répondre à cette invite à l'intérieur de Jenkins? (un peu de Jenkins noob si vous ne pouvez pas dire)Non, Jenkins emplois sont non-interactif, une fois qu'ils ont commencé. La seule option est de tuer le travail si quelque chose comme cela se produit.
vous pouvez utiliser des clés ssh pour contourner le mot de passe à taper pour
scp
.OriginalL'auteur Lars Kotthoff
Vous pouvez exécuter le script shell interactif de Jenkins.
Voici la documentation de l':
http://www.buildengineers.org:8080/display/Tools/Running+interactif+Coque+Script+en+Jenkins
À l'aide de
<<LimitString
option, vous pouvez exécuter le script shell de ligne de commande.vous pouvez donner les entrées en exécution de l'article dans la configuration de jenkins.
espère que cette aide.
OriginalL'auteur Admin