当前位置:  开发笔记 > 运维 > 正文

在jenkins中运行命令shell

如何解决《在jenkins中运行命令shell》经验,为你挑选了2个好方法。

我正在尝试在Jenkins中执行命令shell,我正在使用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.(Proc.java:244)
    at hudson.Proc$LocalProc.(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.(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

任何的想法?



1> mainframer..:

对于Windows slave,请使用Execute Windows batch command.
对于像Linux或Mac这样类Unix的奴隶,Execute shell可以选择.

执行Windows命令shell


@Medbraim它不是关于什么是"更简单"给你,而是关于你的系统支持什么.在Windows上,没有本机`sh`可执行文件,因此您无法使用"执行Shell"构建步骤.期.如果你想使用"Execute Shell"构建步骤,你需要安装Cygwin(或类似的)并确保`sh`可执行文件位于`PATH`中的某个位置

2> andrzej.szmu..:

据我所知,Windows不支持开箱即用的shell脚本.您可以安装Cygwin或Git for Windows,转到Manage Jenkins> Configure System Shell并将其指向安装中找到的sh.exe文件的位置.例如:

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

我发现了另一种选择.这个更好,因为它允许我在简单的管道脚本中使用shell sh "something".

将文件夹添加到系统PATH.右键单击计算机,单击属性>高级系统设置>环境变量,添加C:\Program Files\Git\bin\到系统路径属性.

重要说明:出于某种原因,我不得不将其添加到系统范围的路径中,即使Jenkins在此用户上运行,添加到用户路径也不起作用.

一个重要的说明(谢谢bugfixr!):

这有效.应该注意的是,您需要重新启动Jenkins才能获取新的PATH变量.我只是去了我的服务并从那里重申了它.

免责声明:由于我不使用英文Windows,名称可能略有不同.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有