Ответ 1
Для ведомого Windows используйте Execute Windows batch command
.
Для Unix-подобных ведомых, таких как linux или Mac, Execute shell
- это вариант.
Я пытаюсь выполнить командную оболочку в 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
Любая идея?
Для ведомого Windows используйте Execute Windows batch command
.
Для Unix-подобных ведомых, таких как linux или Mac, Execute shell
- это вариант.
Насколько я знаю, 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.
Ошибка показывает, что 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
Это происходит потому, что Дженкинс не знает о пути оболочки. В разделе Управление Jenkins → Configure System → Shell установите путь оболочки как
Перейдите в Jenkins → Управление Jenkins → Настроить систему → Глобальные свойства. Установите флажок "Переменные среды" и добавьте JAVA_HOME path = "C:\Program Files\Java\jdk-10.0.1".
* Не пишите бен в конце