Cygwin安装在我的窗口中,能够使用cmd提示符执行sh文件。 同样的Cygwin插件已经安装在jenkins中,它也在windows中运行。 我在jenkins构建步骤中创建了一个作业 - >执行shell命令我在执行下面的工作时将命令作为 sh /cygdrive/d/539707/data/getchanges/gymBuild.sh 给出异常。
注1:在Jenkins / configuration / shell下我没有提到任何路径
工作区] $ sh -xe D:\ 539707 \ tomcat-7.0.12 \ temp \ hudson4624102689815543789.sh致命: 命令执行失败java.io.IOException:无法运行程序" sh" (在目录" C:\ Users \ 539707.jenkins \ jobs \ Test_Gym \ workspace"): CreateProcess error = 2,系统找不到指定的文件 java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)at hudson.Proc $ LocalProc。(Proc.java:244)at hudson.Proc $ LocalProc。(Proc.java:216)at hudson.Launcher $ LocalLauncher.launch(Launcher.java:815)at hudson.plugins.cygpath.CygpathLauncherDecorator $ 1.launch(CygpathLauncherDecorator.java:66) 在hudson.Launcher $ ProcStarter.start(Launcher.java:381)at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:95) 在 hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:64) 在hudson.tasks.BuildStepMonitor $ 1.perform(BuildStepMonitor.java:20) 在 hudson.model.AbstractBuild $ AbstractBuildExecution.perform(AbstractBuild.java:782) 在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:534) 在hudson.model.Run.execute(Run.java:1738)at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)at at hudson.model.ResourceController.execute(ResourceController.java:98) 在hudson.model.Executor.run(Executor.java:410)引起: java.io.IOException:CreateProcess error = 2,系统找不到 在java.lang.ProcessImpl.create(Native Method)中指定的文件 java.lang.ProcessImpl。(ProcessImpl.java:385)at java.lang.ProcessImpl.start(ProcessImpl.java:136)at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)......还有16个 构建步骤'执行shell'将构建标记为失败
完成:失败
注2:在Jenkins / configuration / shell下我提到C:\ cygwin \ bin \ mintty.exe
以下是输出
$ C:\ cygwin \ bin \ cygpath -w C:\ cygwin \ bin \ mintty.exe [workspace] $ C:\ cygwin \ bin \ mintty.exe -xe d:\ 539707 \ Tomcat的7.0.12 \ TEMP \ hudson4745164988293910592.sh / usr / bin / mintty:未知选项' -x'试试' - 帮助'更多 信息。构建步骤'执行shell'将构建标记为失败
完成:失败
请建议如何从在Windows上运行的jenkins执行sh文件
答案 0 :(得分:1)
对于每个Windows slave,您可以执行以下操作,将cygwin添加到路径,假设您的slave已经安装了cygwin
,例如:名称:PATH值:$ {PATH}; d:\ tools \ cygwin \ bin
答案 1 :(得分:0)
这里是解决方案:shell可执行路径到cygwin_home \ bin \ sh和jenkins构建步骤 - >执行shell命令给出文件名ex * .sh或清除Shell可执行路径并在jenkins构建步骤 - >执行windows批处理命令sh path * .sh