Jenkins在从GitHub克隆时出现错误。

34

我是Jenkins新手,在从GitHub克隆存储库时出现以下错误。

我尝试在此搜索所有相关问题,但找不到准确的堆栈跟踪和答案。

我正在尝试克隆需要用户名和密码的存储库,我正在为我的作业的作业配置设置中提供SSH://存储库路径。 我还没有进行任何与 .ssh 相关的设置,因为这似乎不同于 GIT 存储库的安全问题。

我无法弄清楚 Jenkins 正在尝试执行什么注释,它找不到哪个文件/目录。

这是我的 Jenkins 作业的确切堆栈跟踪:

Caused by: java.io.IOException: 无法运行程序:试图确定 git 版本的错误:执行命令时出错:--version 假设 1.6 错误:无法克隆远程 repo 'myRE':Could not clone git@github.com:myORG/RVL.myProj.git hudson.plugins.git.GitException:Could not clone git@github.com:myORG/RVL.myProj.git at hudson.plugins.git.GitAPI.clone(GitAPI.java:268) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1122) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1064) at hudson.FilePath.act(FilePath.java:842) at hudson.FilePath.act(FilePath.java:824) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1064) at hudson.model.AbstractProject.checkout(AbstractProject.java:1256) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494) at hudson.model.Run.execute(Run.java:1502) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:236)

由于:hudson.plugins.git.GitException:执行命令时出错:clone -o RVL.myProj git@github.com:myORG/RVL.myProj.git /var/lib/jenkins/jobs/myProj/workspace 在 hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:862) 处引发异常 原因:java.io.IOException: 无法运行程序 "",错误=2,没有那个文件或目录 引起该原因的详细信息:java.io.IOException: 错误=2,没有那个文件或目录

如果您在Jenkins主机的命令行中输入“git --version”会发生什么?这看起来像是您没有安装git。 - CIGuy
1
似乎Jenkins的GIT配置存在问题,使用了完整路径而不是“git”(Jenkins建议使用的内容)。 - Sagar
7个回答

59

我遇到并解决了相同的问题 :)

有两种配置git路径的方法:

  1. 在Jenkins主机上:

    a. 进入Jenkins系统配置 (Jenkins -> 管理Jenkins -> 配置系统 )

    b. 找到Git项并配置git安装(指定Jenkins主机上的git路径)

  2. 在Jenkins从机上:

    a. 进入Jenkins从机的配置

    b. 选中“工具位置”复选框,并指定Jenkins从机上的git路径。

在我的情况下,我没有访问Jenkins主机的权限。所以我在Jenkins从机上安装了git,并将其添加到Jenkins从机的配置中。


2
对我来说,git路径选项在“管理Jenkins” -> “全局工具配置”中。 - Parris Varney

3
这似乎是一个错误,参见我发布的解决方法JENKINS-16523

2

我遇到了同样的问题。

我注意到个别作业“/var/lib/jenkins/jobs/job_name/config.xml”中git配置的混合:

[root@jenkins.example.com jobs]# find . -maxdepth 2 -name     config.xml|xargs grep '<gitTool>'
./job1/config.xml:    <gitTool>git</gitTool>
./job2/config.xml:    <gitTool>Default</gitTool>
./job3/config.xml:    <gitTool>git</gitTool>
./job4/config.xml:    <gitTool>Default</gitTool>

我更改了gitTool的名称并重新启动了Jenkins。看起来git配置不正确,git的更改没有传播到所有作业。

还要注意,在Jenkins的xml文件配置和web界面中的配置可能会有所不同!


1
  1. 在主机或从机上运行 git --version
  2. 如果没有任何输出,说明 Git 没有安装
  3. 如果您认为已经安装了 Git,请将 Git 可执行文件的路径(例如 C:\Program Files\Git\cmd)添加到 PATH 环境变量中
  4. 在主机或从机上再次运行 git --version,确保您获得了有效的版本

0
我在创建新的JOB后遇到了同样的问题,通过在Restrict where this project can be run下的Label Expression中更正从属名称(安装了GIT)来解决它。

0

这可能是由于多种原因造成的。

  1. 您可能没有安装git
  2. Jenkins无法使用git二进制文件
  3. 权限问题。

这篇博客,Jenkins Git Clone Error,解释了此错误的所有情况及其解决方案。


0
除了由superlee回答的步骤外,您需要为服务器端配置节点属性,如果您的本地系统是Windows系统,则可以参考下面的屏幕截图查看工具位置:

服务器端工具位置


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接