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

时间:2015-07-06 18:29:01

标签: git maven jenkins jenkins-plugins

这是一个奇怪的问题,我们已经尝试过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
  1. git repository和jenkins在同一台服务器上,不应使用ssh。 源代码管理将存储库URL配置为/home/user/repositories/git/user.git git存储库是所有用户都可读/写的。

  2. 登录服务器为jenkins,运行

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

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

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

    2. New Item - Freestyle项目 ,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   +参考文献/头/ :参/​​遥控器/来源/

           

      / usr / bin / git rev-parse refs / remotes / origin / master ^ {commit} #timetime = 10

           

      / usr / bin / git rev-parse refs / remotes / origin / origin / master ^ {commit}#   超时= 10   检查修订版c6223c5c4693dc9be933b9e4b2fa915fea311891(refs / remotes   /原点/主)   / 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/   主/斌/ gradle这个   错误:JAVA_HOME没有设置,没有' java'命令可以在你的   PATH。

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

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

      2. 检查新maven项目的工作区 - 只有一个" .git"文件夹,在那之内 分支机构 挂钩 信息 对象 裁判 配置156 B视图 描述73 B视图 FETCH_HEAD 0 B视图 HEAD 23 B查看

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

        .git
        .settings
        PROJECT
        .gitignore  329 B    view
        .project    385 B   
        
        1. SA表示补丁是针对unix核心和rsyslog的,似乎与jenkins和git无关。
        2. 有关我们可以检查以解决其他问题的任何建议吗?谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

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

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