[英]Jenkins can not clone Git repository over Git/SSH on Windows
我已经在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
当我停止构建时(在卡住那里几分钟后),我得到了剩下的错误消息:
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)
git://github.com/zeljkofilipin/watirbook.git
来克隆存储库 git@github.com:zeljkofilipin/watirbook.git
克隆git@github.com:zeljkofilipin/watirbook.git
从两台机器的命令行 我可以注意到两台机器之间的唯一区别(不包括那台笔记本电脑上的虚拟机,另一台是瑞士的真机),第一台是32位,第二台是64位。
不确定这是否相关,但是32位机器的位置设置为克罗地亚,而64位机器设置为瑞士(正如您可以从法语中的Git输出中看到的那样)。
有关更多信息,请参阅我的博客文章: Jenkins,Windows和Git
我最近经历过这些痛苦。 特别令人沮丧的是在这种情况下缺少错误日志:可能是因为MSysgit在尝试恢复时提示用户在控制台上 - 这不通过Jenkins控制台。
根据我的经验,这里有几个要注意的关键要素:
<MSYSGIT_ROOT>\\cmd\\git.cmd
比<MSYSGIT_ROOT>\\bin\\git.exe
HOME
变量明确 git clone
。 这应该会显示更多信息。 顺便说一句,你可以做一个env
在相同的步骤,也许ls %HOME%/.ssh
我认为以上是让我在git支持下运行Windows 7 64位Jenkins从站的原因 - 尽管我认为这与其他一些精细的配置细节有关,而不是64位与32位。 祝你好运!
在最新版本的git中,必须使用%GIT_HOME%/ cmd / git.exe,而不是%GIT_HOME%/ bin / git.exe并找出运行jenkins服务的用户的主目录。
我面临的另一个问题是,ssh.exe没有查看密钥文件的%userprofile%/.ssh
文件夹。 相反,它正在寻找文件夹C:\\Program Files (x86)\\Git\\.ssh
这是空的,并且由于在git repo所在的机器上的ssh身份验证提示而导致挂起。
我们只是将%userprofile%/.ssh
下的密钥文件复制到C:\\Program Files (x86)\\Git\\.ssh
,问题得以解决。
来自艰苦学习课程的笔记。 我在使用ssh运行Jenkins作为ssh + git的命名用户帐户时遇到了问题。
以下是我必须要解决的问题:
我尝试使用puttygen和GET_SSH = plink,所有这些都非常糟糕,但没有明显的错误。
当您必须使用来自每个用户配置文件的任何配置选项时,例如。 〜/ .ssh / config你可以把它们放在C:\\ Program Files(x86)\\ Git \\ etc \\ ssh \\ ssh_config中,关键文件可以放在C:\\ Program Files(x86)\\ Git.ssh
如果您的帐户已附加到域。 然后你需要确保运行Jenkins Slave的用户。 为此目的打开设置 - > “Jenkins Slave”的 属性 - > 登录 。 并从域中选择必要的用户以正确执行。
由于我的Windows Jenkins是奴隶,我需要配置该节点以在cmd中找到git而不是inger所描述的bin。 要执行此操作,请转至Manage Jenkins,Manage Nodes,单击相应的节点,单击Configure,然后转到Tool Locations。 在下拉列表中找到git,然后指定git.exe(包括git.exe)的路径,如C:\\ Program Files \\ Git \\ cmd \\ git.exe。
我确认cmd / git.exe与命令行中的bin / git.exe以及使用git命令(而不是scm repo)的临时jenkins作业的工作方式不同。
https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin
只需将一个启用ssh的用户登录添加到Jenkins,它应该可以顺利运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.