Jenkins无法在Windows上通过Git/SSH克隆Git存储库

Žel*_*pin 20 windows git continuous-integration hudson jenkins

我已经在Windows 2008 32位上通过Git/SSH成功​​克隆了Jenkins中的Git存储库.当我尝试在Windows 2008 64位上执行相同操作时,控制台输出页面卡在此处:

Démarré par l'utilisateur anonymous
Checkout:book / C:\Jenkins\workspace\book - hudson.remoting.LocalChannel@1da691a
Using strategy: Default
Last Built Revision: Revision 5d7ce4ae23c91fb201ee005e6db17bcd795ca965 (origin/HEAD, origin/master)
Checkout:book / C:\Jenkins\workspace\book - hudson.remoting.LocalChannel@1da691a
Cloning the remote Git repository
Cloning repository origin
Run Code Online (Sandbox Code Playgroud)

当我停止构建时(在卡住那里几分钟后),我得到了剩下的错误消息:

ERROR: Error cloning remote repo 'origin' : Could not clone git@github.com:zeljkofilipin/watirbook.git
ERROR: Cause: Error performing command: C:\Git\bin\git.exe clone --progress -o origin git@github.com:zeljkofilipin/watirbook.git C:\Jenkins\workspace\book
null
Trying next repository
ERROR: Could not clone repository
FATAL: Could not clone
hudson.plugins.git.GitException: Could not clone
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1042)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:968)
    at hudson.FilePath.act(FilePath.java:785)
    at hudson.FilePath.act(FilePath.java:767)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:968)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1193)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:567)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:455)
    at hudson.model.Run.run(Run.java:1404)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:230)
Run Code Online (Sandbox Code Playgroud)
  • 我可以通过git://github.com/zeljkofilipin/watirbook.git两台机器上的Jenkins的Git只读URL克隆存储库
  • 我可以通过git@github.com:zeljkofilipin/watirbook.git两台机器上的命令行通过Git/SSH URL进行克隆
  • 我可以在32位计算机上通过Jenkins的Git/SSH URL进行克隆,但不能在64位计算机上进行克隆.

我可以注意到两台机器之间的唯一区别(不包括那台笔记本电脑上的虚拟机,另一台是瑞士的真机),第一台是32位,第二台是64位.

不确定这是否相关,但是32位机器的位置设置为克罗地亚,而64位机器设置为瑞士(正如您可以从法语中的Git输出中看到的那样).

有关更多信息,请参阅我的博客文章:Jenkins,Windows和Git

ing*_*ger 27

我最近经历过这些痛苦.特别令人沮丧的是在这种情况下缺少错误日志:可能是因为MSysgit在尝试恢复时提示用户在控制台上 - 这不通过Jenkins控制台.

根据我的经验,这里有几个要注意的关键要素:

  1. 安装了Msysgit和Cygwin的混合:MSysgit对我来说效果更好 - 但我猜你也在使用它
  2. 有些人<MSYSGIT_ROOT>\cmd\git.cmd比运气更幸运<MSYSGIT_ROOT>\bin\git.exe
  3. 确保你的奴隶运行为同一个用户(这不是基于服务的安装的默认设置).. - 哦,我看到你也有这个
  4. HOME为windows slave 设置变量明确
  5. 基本上确保在Jenkins下达到相同的.ssh键.
  6. 对于调试,我发现创建一个没有SCM的测试作业很有用,但是git clone在"执行shell/batch"构建步骤中运行.这应该会显示更多信息.顺便说一下,你可以env在同一个步骤中做一个也许ls %HOME%/.ssh

我认为以上是让我在git支持下运行Windows 7 64位Jenkins从站的原因 - 尽管我认为这与其他一些精细配置细节有关,而不是64位与32位.祝你好运!

  • 将git设置为`<MSYSGIT_ROOT>\cmd\git.cmd`而不是`<MSYSGIT_ROOT>\bin\git.exe`解决了这个问题. (3认同)

Sha*_*nmu 6

在最新版本的git中,必须使用%GIT_HOME%/ cmd/git.exe,而不是%GIT_HOME%/ bin/git.exe并找出运行jenkins服务的用户的主目录.