Jenkins无法从Gitlab克隆,因为超时

时间:2015-07-09 03:39:52

标签: git ssh jenkins

当我尝试在Jenkins中构建我的Gitlab项目时,我遇到了错误。

我尝试了什么

  1. 将系统环境设置为Setup your environment variables for Git Plugin Jenkins
  2. 在“git”下将“Git可执行文件的路径”更改为 GIT_FOLDER \ cmd \ git.cmd(不是GIT_FOLDER \ bin \ git.exe)
  3. 使用PsExec.exe访问“本地系统帐户” Jenkins服务器设置SSH密钥或known_hosts并通过

    进行验证
      

    “GIT_FOLDER \ bin \ ssh.exe”-T git@your.git.server

  4. 甚至成功通过

    中的相同命令获取
      

    “C:\ Program Files(x86)\ Git \ bin \ sh.exe”-login -i window

  5. 为Jenkins帐户填写Gitlab主机网址和API令牌 Gitlab服务器

  6. 使用没有密码的ssh密钥创建凭据并在中选择 项目凭证
  7. Jenkins构建错误日志

    (git_repository.git代表我的git存储库url)

    由用户Jenkins启动

    在工作区中构建C:\ Program Files(x86)\ Jenkins \ jobs \ MyApp-Test \ workspace

      

    C:\ Program Files(x86)\ Git \ bin \ git.exe rev-parse --is-inside-work-tree #timeout = 10

    从远程Git存储库中获取更改

      

    C:\ Program Files(x86)\ Git \ bin \ git.exe config remote.origin.url git_repository.git #timeout = 10

    从git_repository.git获取上游更改

      

    C:\ Program Files(x86)\ Git \ bin \ git.exe --version #timeout = 10

    使用GIT_SSH设置凭据

      

    C:\ Program Files(x86)\ Git \ bin \ git.exe -c core.askpass = true fetch --tags --progress git_repository.git + refs / heads / :refs / remotes / origin /

    ERROR: Timeout after 10 minutes
    ERROR: Error fetching remote repo 'origin'
    hudson.plugins.git.GitException: Failed to fetch from git_repository.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:485)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1282)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
    at hudson.model.Run.execute(Run.java:1741)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:381)
    Caused by: hudson.plugins.git.GitException: Command "C:\Program Files (x86)\Git\bin\git.exe -c core.askpass=true fetch --tags --progress git_repository.git +refs/heads/*:refs/remotes/origin/*" returned status code -1:
    stdout: 
    stderr: 
    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'
    

2 个答案:

答案 0 :(得分:5)

将自由样式项目的凭据更改为默认选项 - 无 -

因为ssh将使用 Gitlab 插件值的 API令牌来访问Gitlab服务器。

因此,如果您指定另一个SSH密钥来访问项目中的Gitlab服务器,它们将永远停留。

我花了一个星期的时间才发现这一点。

答案 1 :(得分:0)

当我在远程应用程序文件夹中错误地创建一个.git文件夹时,我遇到了相同的错误。删除文件夹将其修复。