我已经在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
进行克隆我可以注意到两台机器之间的唯一区别(不包括那台笔记本电脑上的虚拟机,另一台是瑞士的真机),第一台是32位,第二台是64台位。
不确定这是否相关,但是32位机器的位置设置为克罗地亚,64位机器设置为瑞士(正如您可以从法语的Git输出中看到的那样)。
有关详细信息,请参阅我的博文:Jenkins, Windows and Git
答案 0 :(得分:27)
我最近经历过这些痛苦。特别令人沮丧的是在这种情况下缺少错误日志:可能是因为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位。祝你好运!
答案 1 :(得分:6)
在最新版本的git中,必须使用%GIT_HOME%/ cmd / git.exe,而不是%GIT_HOME%/ bin / git.exe并找出运行jenkins服务的用户的主目录。
答案 2 :(得分:3)
我面临的另一个问题是,ssh.exe没有查看密钥文件的%userprofile%/.ssh
文件夹。相反,它正在查找文件夹C:\Program Files (x86)\Git\.ssh
,该文件夹为空,并且由于git repo所在的机器上的ssh身份验证提示导致挂起。
我们刚刚将%userprofile%/.ssh
下的密钥文件复制到C:\Program Files (x86)\Git\.ssh
,问题就解决了。
答案 3 :(得分:2)
来自艰苦的学习课程的笔记。 我在使用ssh运行Jenkins作为ssh + git的命名用户帐户时遇到了问题。
以下是我必须采取的措施来解决问题:
我尝试使用puttygen和GET_SSH = plink,这些都非常糟糕,但没有明显的错误。
答案 4 :(得分:0)
当您必须使用来自每用户配置文件的任何配置选项时,例如。 〜/ .ssh / config你可以把它们放在C:\ Program Files(x86)\ Git \ etc \ ssh \ ssh_config中,关键文件可以放在C:\ Program Files(x86)\ Git.ssh
答案 5 :(得分:0)
如果您的帐户已附加到域。然后你需要确保运行Jenkins Slave的用户。为此目的打开设置 - &gt; 属性 &#34; Jenkins Slave&#34; - &gt; 登录。并从 域 中选择必要的 用户 ,以便正确执行。
答案 6 :(得分:0)
由于我的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作业的工作方式不同。
答案 7 :(得分:0)
https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin
只需将支持ssh的用户登录添加到Jenkins,它就可以顺利运行。