Подтвердить что ты не робот

Запуск командной оболочки в jenkins

Я пытаюсь выполнить командную оболочку в Jenkins, я работаю над Windows 7. На консольном выходе у меня есть это:

Building in workspace C:\Program Files (x86)\Jenkins\workspace\test
[test] $ sh -xe C:\Windows\TEMP\hudson6299483223982766034.sh
The system cannot find the file specified

FATAL: L'exécution de la commande a échoué.
java.io.IOException: Cannot run program "sh" (in directory "C:\Program Files (x86)\Jenkins\workspace\test"): CreateProcess error=2, Le fichier spécifié est introuvable
    at java.lang.ProcessBuilder.start(Unknown Source)
    at hudson.Proc$LocalProc.<init>(Proc.java:244)
    at hudson.Proc$LocalProc.<init>(Proc.java:216)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:816)
    at hudson.Launcher$ProcStarter.start(Launcher.java:382)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:97)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:66)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
    at hudson.model.Build$BuildExecution.build(Build.java:205)
    at hudson.model.Build$BuildExecution.doRun(Build.java:162)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:537)
    at hudson.model.Run.execute(Run.java:1744)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:374)
Caused by: java.io.IOException: CreateProcess error=2, Le fichier spécifié est introuvable
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 16 more
Build step 'Exécuter un script shell' marked build as failure
[BFA] Scanning build for known causes...
[BFA] No failure causes found
[BFA] Done. 0s
Finished: FAILURE

Любая идея?

4b9b3361

Ответ 1

Для ведомого Windows используйте Execute Windows batch command.
Для Unix-подобных ведомых, таких как linux или Mac, Execute shell - это вариант.

Execute Windows Command shell

Ответ 2

Насколько я знаю, Windows не будет поддерживать сценарии оболочки прямо из коробки. Вы можете установить Cygwin или Git для Windows, перейдите в "Управление Jenkins"> "Настроить системную оболочку" и укажите местоположение файла sh.exe, найденного при их установке. Например:

C:\Program Files\Git\bin\sh.exe

Есть еще один вариант, который я обнаружил. Этот лучше, потому что он позволил мне использовать shell в конвейерных скриптах с простым sh "something".

Добавьте папку в системный PATH. Щелкните правой кнопкой мыши Компьютер, выберите Свойства> Дополнительные параметры системы> Переменные среды, добавьте C:\Program Files\Git\bin\ в свойство вашего системного пути.

ВАЖНОЕ примечание: по какой-то причине мне пришлось добавить его в системный путь, добавление в пользовательский путь не работало, хотя Jenkins работал на этом пользователе.

Важное замечание (спасибо bugfixr!):

Это работает. Следует отметить, что вам нужно будет перезапустить Jenkins, чтобы он подобрал новую переменную PATH. Я просто пошел к моим услугам и подтвердил это оттуда.

Отказ от ответственности: имена могут немного отличаться, так как я не использую английский Windows.

Ответ 3

Ошибка показывает, что script не существует

Файл не существует. проверьте свой полный путь

C:\Windows\TEMP\hudson6299483223982766034.sh
The system cannot find the file specified

Кроме того, для запуска сценариев .sh в windows вам необходимо CYGWIN установить и настроить в свой путь

Подтвердите, что существует script.

В jenkins script выполните следующие действия, чтобы подтвердить, что у вас есть файл

cd C:\Windows\TEMP\
ls -rtl
sh -xe hudson6299483223982766034.sh

Ответ 4

Это происходит потому, что Дженкинс не знает о пути оболочки. В разделе Управление Jenkins → Configure System → Shell установите путь оболочки как

  • C:\Windows\system32\cmd.exe

Ответ 5

Перейдите в Jenkins → Управление Jenkins → Настроить систему → Глобальные свойства. Установите флажок "Переменные среды" и добавьте JAVA_HOME path = "C:\Program Files\Java\jdk-10.0.1".

* Не пишите бен в конце