首页 文章

Jenkins无法从安装在同一服务器上的git存储库中获取,在box上执行命令成功

提问于
浏览
2

这是一个奇怪的问题,我们尝试过stackoverflow的可能解决方案,但仍然无法解决它 . 在SA的周末补丁和重新启动之后,我们的jenkins工作无法构建......

Console output for all projects-

> /usr/bin/git fetch --tags --progress /home/user/repositories/git/user.git
+refs/heads/*:refs/remotes/origin/*
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from /home/user/
repositories/git/user.git
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:735)
    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:983)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1016)
    at hudson.scm.SCM.checkout(SCM.java:484)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1270)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(
AbstractBuild.java:609)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.
java:531)
    at hudson.model.Run.execute(Run.java:1717)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:537)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)
Caused by: hudson.plugins.git.GitException: Command "/usr/bin/git fetch --
tags --progress /home/user/repositories/git/user.git +refs/heads/*:refs/
remotes/origin/*" returned status code 128:
stdout: 
stderr: error: cannot run git-upload-pack '/home/user/repositories/git/user.
git': No such file or directory
fatal: unable to fork
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(
CliGitAPIImpl.java:1591)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.
launchCommandWithCredentials(CliGitAPIImpl.java:1379)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(
CliGitAPIImpl.java:86)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl
.java:324)
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:733)
    ... 11 more
ERROR: Error fetching remote repo 'origin'
Finished: FAILURE
  • git repository和jenkins在同一台服务器上,不应使用ssh . 源代码管理将存储库URL配置为/home/user/repositories/git/user.git git存储库可由所有用户读取/写入 .

  • 登录服务器为jenkins,运行

/ usr / bin / git fetch --tags --progress / home / user /repositories/git/user.git refs / heads /:refs / remotes / origin /

它可以毫无问题地从git存储库中成功获取 .

  • 将jenkins升级到1.600,GIT客户端插件升级到1.17.1,GIT插件升级到2.3.5仍然无法正常工作

  • New Item - 自由式项目,gradle项目,未在Configure System中指定JDK,可以在构建时获取 -

从/home/user/repositories/git/user.git获取上游更改

/ usr / bin / git --version #timeout = 10 / usr / bin / git fetch --tags --progress /home/user/repositories/git/user.git refs / heads /:refs / remotes / origin / / usr / bin / git rev-parse refs / remotes / origin / master ^ #timetime = 10 / usr / bin / git rev-parse refs / remotes / origin / origin / master ^ #timetime = 10检查修订版c6223c5c4693dc9be933b9e4b2fa915fea311891(refs / remotes / origin / master)/ usr / bin / git config core.sparsecheckout #timetime = 10 / usr / bin / git checkout -f c6223c5c4693dc9be933b9e4b2fa915fea311891 / usr / bin / git rev-list 050ac61d242b61ab88f533932820cab4e44db7b7 #timeout = 10 [Gradle] - 启动构建 . [PROJECT] $ /var/lib/jenkins/tools/hudson.plugins.gradle.GradleInstallation/ Main / bin / gradle错误:未设置JAVA_HOME,并且在PATH中找不到“java”命令 .

指定JDK后,jenkins无法从git中获取同样的错误

  • New Maven项目无法正常工作,同样的错误

  • 检查新maven项目的工作区 - 只有一个“.git”文件夹,在该分支内挂钩信息对象refs config 156 B视图描述73 B视图FETCH_HEAD 0 B视图HEAD 23 B视图

检查新的自由风格项目的工作区 -

.git
.settings
PROJECT
.gitignore  329 B    view
.project    385 B
  • SA说补丁是针对unix核心和rsyslog的,看起来与jenkins和git无关 .

关于我们还能检查什么以解决这个问题的任何建议?谢谢!

2 回答

  • 0

    您可能不应该以这种方式使用共享可写Git仓库 . 如果你最终得到了一些没有共享可写或可执行位的目录,那么其他用户将无法进入它们 .

    也就是说,错误信息在这里给出:

    stderr: error: cannot run git-upload-pack  '/home/user/repositories/git/user.git': No such file or directory
    

    看起来它没有显示为目录,或者Jenkins作业无法读取它 . 在该名称上运行ls -lR以查看它是否出现列表,如果是,则是否所有目录都具有正确的权限位以允许“其他”读取/写入它们(或者包括Jenkins在内的所有用户都在一个合适的组,它是组读/写) .

  • 0

    我有同样的问题,它是由Jenkins插件EnvInject引起的 . 删除该插件后,一切都开始工作了 . 对我来说,为什么JDK的配置搞砸了,但确切的根本原因是EnvInject本身,这是一个谜 .

    我遇到的另一个问题是我没有正确配置git二进制文件:管理Jenkins - >配置系统 - > Git - > Git可执行文件的路径 . 在我将值更改为git的绝对位置(/ usr / bin / git)之后,一切都开始起作用了 .

相关问题