J'ai Windows 10 et je veux exécuter la commande sh dans Jenkinsfile à partir du pipeline Jenkins en utilisant bash pour Ubuntu pour Windows, mais cela ne fonctionne pas.
J'ai l'étape suivante dans mon pipeline Jenkins:
stage('sh how to') {
steps {
sh 'ls -l'
}
}
Le message d'erreur est:
[C:\Program Files (x86)\Jenkins\workspace\pipelineascode] Exécution du script shell Impossible d'exécuter le programme "Nohup" (dans le répertoire "C:\Program Files (x86)\Jenkins\workspace\pipelineascode"): CreateProcess error = 2
J'ai essayé de changer le paramètre Jenkins -> Shell exécutable avec
C:\Windows\System32\bash.exe
mais même erreur ...
comment exécuter le script sh en utilisant bash de Windows 10?
Une recherche très rapide semble indiquer que votre erreur est liée au problème suivant: JENKINS-33708
La cause principale semble être que l'étape sh
n'est pas prise en charge sous Windows. Vous pouvez utiliser bat
ou installer Cygwin
par exemple.
Néanmoins, deux solutions ont été proposées dans le lien précédent, vous suggérant de suivre les étapes suivantes:
C:\Program Files\Git\bin
) se trouve dans le chemin de recherche global, afin que Jenkins trouve sh.exe.En fonction de votre installation, vous devrez peut-être utiliser ces chemins:
Avec Git pour Windows 2.16.2, j’ai pu ajouter C:\Program Files\Git\usr\bin à PATH (plutôt que C:\Program Files\Git\bin) et par conséquent mes commandes sh fonctionnent à la fois dans FreeStyle Pipeline construit. Aucun mklink n'était nécessaire. ( La source )
Avec Git pour Windows, je devais ajouter C:\Program Files\Git\bin
à la variable d'environnement PATH
du noeud esclave de Jenkins (pour accéder à sh
), puis ajouter C:\Program Files\Git\usr\bin
à PATH
localement sur l'esclave Windows (pour accéder à Nohup
).
Changer sh to bat a fonctionné pour moi - je lance Jenkins sous Windows. Mais ce n’est qu’après avoir résolu un problème lié au fait que je n’avais pas configuré correctement mes outils (maven et le JDK) dans Jenkins.