Jenkins pipeline SH сбой с "не удается запустить программу nohup" в windows

У меня есть windows 10, и я хочу выполнить команду sh в Jenkinsfile из конвейера Jenkins, используя bash для Ubuntu для windows, но это не работает

У меня есть следующий этап в моем конвейере Дженкинса:

stage('sh how to') {
        steps {
            sh 'ls -l'
        }
    }

сообщение об ошибке :

[C:Program файлы (x86)Jenkinsworkspacepipelineascode] запуск сценария оболочки Не удается запустить программу "nohup" (в каталоге "C:Program файлы (x86)Jenkinsworkspacepipelineascode"): CreateProcess error=2, Le fichier spécifié est introuvable

Я попытался изменить параметр Дженкинса - >исполняемый файл оболочки с

C:WindowsSystem32bash.exe

но та же ошибка...

Как запустить сценарий sh с помощью bash windows 10?

2 ответов


из очень быстрого поиска похоже, что ваша ошибка связана со следующей проблемой:Дженкинс-33708

основная причина выглядит как sh шаг не поддерживается в Windows. Вы можете использовать bat или установить Cygwin например.

тем не менее два решения были предложены в предыдущей ссылке, предлагаю вам сделать следующие шаги :

  • установить git-bash
  • обеспечить Папка git\bin (т. е.:C:\Program Files\Git\bin) находится в глобальном пути поиска, чтобы Дженкинс нашел sh.exe
  • сделайте nohup доступным для Дженкинса, делая следующее в git-bash (адаптируйте свои пути соответственно) :
    • mklink "C:\Program файлы\Git\bin \nohup.exe "" C:\Program файлы\git\usr\bin\nohup.EXE-файл"
    • mklink "C:\Program файлы\Git\bin\префикса msys-2.0.dll файлы" "C:\Program файлы\ГИТ\ЕГР\бин\префикса msys-2.0.DLL-файл"
    • mklink "C:\Program Файлы\Git\bin\msys-iconv-2.dll файлы" "C:\Program файлы\ГИТ\ЕГР\бин\префикса msys-то iconv-2.DLL-файл"
    • mklink "C:\Program файлы\Git\bin\msys-intl-8.dll файлы" "C:\Program файлы\ГИТ\ЕГР\бин\префикса msys-международный-8.DLL-файл"

в зависимости от вашей установки вам, возможно, придется использовать следующие пути:

  • mklink "C:\Program файлы\Git\cmd \nohup.exe "" C:\Program Файлы\git\usr\bin\nohup.EXE-файл"
  • mklink "C:\Program файлы\Git\cmd\префикса msys-2.0.dll файлы" "C:\Program файлы\ГИТ\ЕГР\бин\префикса msys-2.0.DLL-файл"
  • mklink "C:\Program файлы\Git\cmd\msys-iconv-2.dll файлы" "C:\Program файлы\ГИТ\ЕГР\бин\префикса msys-то iconv-2.DLL-файл"
  • mklink "C:\Program файлы\Git\cmd\msys-intl-8.dll файлы" "C:\Program файлы\ГИТ\ЕГР\бин\префикса msys-международный-8.DLL-файл"

переключение sh на bat сработало для меня - я запускаю Jenkins на Windows. Но только после того, как я решил проблему, вызванную тем, что я не настроил свои инструменты (maven и JDK) правильно в Jenkins.