Showing posts with label cannot run program sh in jenkins. Show all posts
Showing posts with label cannot run program sh in jenkins. Show all posts

Friday, May 24, 2013

Cannot run program sh in jenkins

Error from Jenkins console:

[cuke-test] $ sh -xe C:\Users\username\AppData\Local\Temp\4\hudson4066016990068916818.sh
The system cannot find the file specified
FATAL: command execution failed
java.io.IOException: Cannot run program "sh" (in directory "c:\jenkins\workspace\cuke-test"): CreateProcess error=2, The system cannot find the file specified
 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:763)
 at hudson.Launcher$ProcStarter.start(Launcher.java:353)
 at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:988)
 at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:955)
 at hudson.remoting.UserRequest.perform(UserRequest.java:118)
 at hudson.remoting.UserRequest.perform(UserRequest.java:48)
 at hudson.remoting.Request$2.run(Request.java:326)
 at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
 at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
 at java.util.concurrent.FutureTask.run(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 at hudson.remoting.Engine$1$1.run(Engine.java:58)
 at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
 at java.lang.ProcessImpl.create(Native Method)
 at java.lang.ProcessImpl.<init>(Unknown Source)
 at java.lang.ProcessImpl.start(Unknown Source)
 ... 17 more
Build step 'Execute shell' marked build as failure

Solution:
- It turns out that I copied a job from a linux slave and therefore the default build step that was used was "Execute shell". To fix the issue just change the "Execute shell" to "Execute Windows batch command"