Hi,

[sorry for top posting]


1)      Execute shell assumes Unix, so it works fine in cygwin.

2)      Your cloning happens in the Windows world (not in cygwin), it doesn't 
know what /usr/bin is.

Try removing git from cygwin and install msysgit instead (integrates better 
into the Windows world and works from cygwin, too). If you have a git 
installation defined in your global Jenkins config, either remove it completely 
or remove absolute paths from it (use only "git" instead of "/path/to/git"). 
You can also omit ".exe", so that this definition will work in both worlds.

HTH...

                Dirk

[cid:[email protected]]
Dirk Heinrichs, Senior Systems Engineer, Infrastructure
Recommind GmbH, Von-Liebig-Straße 1, 53359 Rheinbach
Tel: +49 2226 1596666 1149
Email: [email protected]<mailto:[email protected]>
Skype: dirk.heinrichs.recommind
www.recommind.com<http://www.recommind.com/>

Von: [email protected] [mailto:[email protected]] 
Im Auftrag von jdtangney
Gesendet: Donnerstag, 6. Juni 2013 22:35
An: [email protected]
Betreff: Git problem with Linux master and Windows slave

My Windows slave can't find git. All other slaves (Linux) work correctly.

The slave is Windows 7 with Cygwin installed, running Cygwin sshd and git. The 
master connects to the slave via ssh and I am able to run bash commands using 
"execute shell" build step, like this:

Started by user John Tangney<http://build.sky/user/johnt>

[EnvInject] - Loading node environment variables.

Building remotely on 
win-build-slave1<http://build.sky/computer/win-build-slave1> in workspace 
c:\jenkins\workspace\JDT

[JDT] $ sh -xe C:\Users\jenkins\hudson5633305261937738873.sh

+ whoami

winbuild01\cyg_server

+ echo /home/jenkins

/home/jenkins

+ /usr/bin/git --version

git version 1.7.9

+ echo /bin/bash

/bin/bash

Finished: SUCCESS

The master is Jenkins 1.503 with Git plugin 1.1.19

But when I run a job that tries to clone a git repo, I get this:
Started by user John Tangney
[EnvInject] - Loading node environment variables.
Building remotely on win-build-slave1 in workspace c:\jenkins\workspace\JDT
Checkout:JDT / c:\jenkins\workspace\JDT - 
hudson.remoting.Channel@771e7283:win-build-slave1<mailto:hudson.remoting.Channel@771e7283:win-build-slave1>
Using strategy: Default
Wiping out workspace first.
Cloning the remote Git repository
Cloning repository origin
Error trying to determine the git version: Error performing command: 
/usr/bin/git --version
Assuming 1.6
ERROR: Error cloning remote repo 'origin' : Could not clone 
[email protected]:DataSystems/JDT.git<mailto:[email protected]:DataSystems/JDT.git>
hudson.plugins.git.GitException: Could not clone 
[email protected]:DataSystems/JDT.git<mailto:[email protected]:DataSystems/JDT.git>
     at hudson.plugins.git.GitAPI.clone(GitAPI.java:251)
     at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1121)
     at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1063)
     at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2348)
     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$Worker.runTask(Unknown Source)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
     at java.lang.Thread.run(Unknown Source)
Caused by: hudson.plugins.git.GitException: Error performing command: 
/usr/bin/git clone -o origin 
[email protected]:DataSystems/JDT.git<mailto:[email protected]:DataSystems/JDT.git> 
c:\jenkins\workspace\JDT
     at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:793)
     at hudson.plugins.git.GitAPI.access$000(GitAPI.java:39)
     at hudson.plugins.git.GitAPI$1.invoke(GitAPI.java:247)
     at hudson.plugins.git.GitAPI$1.invoke(GitAPI.java:227)
     at hudson.FilePath.act(FilePath.java:865)
     at hudson.FilePath.act(FilePath.java:838)
     at hudson.plugins.git.GitAPI.clone(GitAPI.java:227)
     ... 12 more
Caused by: java.io.IOException: Cannot run program "/usr/bin/git": 
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$ProcStarter.join(Launcher.java:360)
     at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:774)
     ... 18 more
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)
     ... 25 more

It can't find /usr/bin/git? Maybe the git plugin makes assumptions about the 
environment? Maybe it's assuming a windows-like file system, rather than the 
Cygwin rooted file system? Here's the slave log:
ALLUSERSPROFILE='C:\ProgramData'
BASH=/bin/bash
BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_EXECUTION_STRING=set
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="1" [2]="10" [3]="4" [4]="release" 
[5]="i686-pc-cygwin")
BASH_VERSION='4.1.10(4)-release'
COMPUTERNAME=WINBUILD01
COMSPEC='C:\Windows\system32\cmd.exe'
DIRSTACK=()
EUID=1007
GROUPS=()
HOME=/home/jenkins
HOMEDRIVE=C:
HOMEPATH='\cygwin\home\jenkins'
HOSTNAME=WINBUILD01
HOSTTYPE=i686
IFS=$' \t\n'
LOGNAME=jenkins
LOGONSERVER='\\WINBUILD01'
MACHTYPE=i686-pc-cygwin
MAIL=/var/spool/mail//jenkins
OPTERR=1
OPTIND=1
OS=Windows_NT
OSTYPE=cygwin
PATH=/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/bin
PATHEXT='.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC'
PIPESTATUS=([0]="0")
PPID=3328
PROGRAMFILES='C:\Program Files (x86)'
PS4='+ '
PWD=/home/jenkins
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=1
SSH_CLIENT='10.10.1.100 57994 22'
SSH_CONNECTION='10.10.1.100 57994 10.10.1.116 22'
SYSTEMDRIVE=C:
SYSTEMROOT='C:\Windows'
TERM=dumb
UID=1007
USER=jenkins
USERDOMAIN=WINBUILD01
USERNAME=cyg_server
USERPROFILE='C:\Users\jenkins'
WINDIR='C:\Windows'
_=bash
[06/06/13 19:21:17] [SSH] Checking java version of java
[06/06/13 19:21:17] [SSH] java -version returned 1.6.0_43.
[06/06/13 19:21:17] [SSH] Starting sftp client.
[06/06/13 19:21:17] [SSH] Copying latest slave.jar...
[06/06/13 19:21:17] [SSH] Copied 284,160 bytes.
[06/06/13 19:21:17] [SSH] Starting slave process: cd 'c:\jenkins' && java 
-XX:MaxPermSize=256m -jar slave.jar
<===[JENKINS REMOTING CAPACITY]===>channel started
Slave.jar version: 2.22
This is a Windows slave
Copied maven-agent.jar
Copied maven3-agent.jar
Copied maven3-interceptor.jar
Copied maven-interceptor.jar
Copied maven2.1-interceptor.jar
Copied plexus-classworld.jar
Copied classworlds.jar
Jun 6, 2013 12:21:22 PM com.youdevise.hudson.slavestatus.SlaveListener call
INFO: Slave-status listener starting
Jun 6, 2013 12:21:22 PM com.youdevise.hudson.slavestatus.SocketHTTPListener 
waitForConnection
INFO: Slave-status listener ready on port 3141
Slave successfully connected and online

Is it just a matter of forcing the git plugin to recognize the Cygwin layout?

I would be most grateful for any help with this!
--johnt

--
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
[email protected]<mailto:[email protected]>.
For more options, visit https://groups.google.com/groups/opt_out.





http://www.recommind.com

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


<<inline: image001.gif>>

Reply via email to