当前位置: 首页 > 知识库问答 >
问题:

为什么Jenkins在从git获取时失败了,而命令行却没有?

薛弘济
2023-03-14

我所有的Jenkins构建都在git fetch行失败。

它在git fetch--tags--progress失败git@bitbucket.org:ethenwilson/whentoact。git

Started by user anonymous
Building in workspace /Users/ethen/.jenkins/workspace/Build NikNik
 > git rev-parse --is-inside-work-tree
Fetching changes from the remote Git repository
 > git config remote.origin.url git@bitbucket.org:ethenwilson/whentoact.git
Fetching upstream changes from git@bitbucket.org:ethenwilson/whentoact.git
 > git --version
using GIT_SSH to set credentials NikNik BitBucket SSH Key
 > git fetch --tags --progress git@bitbucket.org:ethenwilson/whentoact.git +refs/heads/*:refs/remotes/origin/*
FATAL: Failed to fetch from git@bitbucket.org:ethenwilson/whentoact.git
hudson.plugins.git.GitException: Failed to fetch from git@bitbucket.org:ethenwilson/whentoact.git
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:622)
    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:854)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:879)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1252)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:624)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:530)
    at hudson.model.Run.execute(Run.java:1732)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:234)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress git@bitbucket.org:ethenwilson/whentoact.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: remote: Counting objects: 2682, done.[K
remote: Compressing objects:   0% (1/1399)   [K
remote: Compressing objects:   1% (14/1399)   [K
...
remote: Compressing objects:  99% (1398/1399)   [K
remote: Compressing objects: 100% (1399/1399)   [K
remote: Compressing objects: 100% (1399/1399), done.[K
Receiving objects:   0% (1/2682)   
Receiving objects:   1% (27/2682)   
...  
Receiving objects:  78% (2092/2682), 4.07 MiB | 1.59 MiB/s   
Corrupted MAC on input.
Disconnecting: Packet corrupt
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1325)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1186)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$200(CliGitAPIImpl.java:87)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:257)
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:620)
    ... 10 more

当我运行git fetch--tags--progress时git@bitbucket.org:ethenwilson/whentoact。git在命令行中运行良好,这意味着我的SSH密钥必须正常工作。

我正在通过SSH验证与Jenkins连接BitBucket。Jenkins从其所在的文件(默认文件)获取密钥,因此我知道Jenkins使用的密钥与我从命令行运行时使用的密钥相同。

我正在为詹金斯使用最新版本的BitBucket和Git插件。我在Mac上安装的Git版本是1.8.5.2(Apple Git-48)

我的jenkins start命令是nohupjava-jar~/jenkins。war--httpPort=8081--AJP13端口=8010

出什么问题了?

编辑:我错了,当我这样做时,我意外地点击了一个选项,使SSH密钥位于错误的位置。现在,使用@borrrden的建议,它仍然会给出相同的错误 **编辑: 根据@borrrden的建议,我将start命令更改为 nohup java-Dorg。詹金西。插件。gitclient。吉特。useCLI=true-jar~/Downloads/jenkins。war--httpPort=8081--AJP13端口=8010


   
    Started by user anonymous
Building in workspace /Users/ethen/.jenkins/workspace/Build NikNik
 > git rev-parse --is-inside-work-tree
Fetching changes from the remote Git repository
 > git config remote.origin.url git@bitbucket.org:ethenwilson/whentoact.git
Fetching upstream changes from git@bitbucket.org:ethenwilson/whentoact.git
 > git --version
using GIT_SSH to set credentials NikNik BitBucket SSH Key
 > git fetch --tags --progress git@bitbucket.org:ethenwilson/whentoact.git +refs/heads/*:refs/remotes/origin/*
FATAL: Failed to fetch from git@bitbucket.org:ethenwilson/whentoact.git
hudson.plugins.git.GitException: Failed to fetch from git@bitbucket.org:ethenwilson/whentoact.git
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:622)
    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:854)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:879)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1252)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:624)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:530)
    at hudson.model.Run.execute(Run.java:1732)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:234)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress git@bitbucket.org:ethenwilson/whentoact.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1406)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1194)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$200(CliGitAPIImpl.java:87)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:265)
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:620)
    ... 10 more

   

共有3个答案

单淳
2023-03-14

对我来说,这达到了git客户端插件的10分钟默认超时。

通过在作业中设置高级克隆行为并提高超时来解决。

在Git插件部分下的作业配置页面中,有一个下拉列表“添加”。在该下拉列表中有一个选择“高级克隆行为”。当您添加高级克隆行为时,您将看到一个字段“克隆和提取操作的超时(以分钟为单位)”。

如果在操作之前添加其他行为,则可以延长克隆和签出的超时时间,这已在我的控制台中转换为更高的超时值

  • 高级结帐行为
  • 高级克隆行为

将任何值放入超时将覆盖默认值。

从JENKINS-20445获得的知识。

漆雕安晏
2023-03-14

2) 转到“源代码管理”部分

3) 附加行为

4)选择清除存储库并强制克隆

这将仅删除并重新克隆用于作业的工作区。如果您想在删除之前确认,那么我建议通过batch/bash命令构建步骤回显$WORKSPACE变量。

此外,这使得构建速度慢得多,所以我建议在一次构建后删除它。

马安邦
2023-03-14

我也有这个问题,只能通过删除我们主Jenkins服务器上有问题的存储库的工作区来解决。

我认为问题在于在一些构建中出现了连接错误(如@gbjbaanb所说)(我们的Bitbucket崩溃)。这使master上的工作区处于损坏状态,并且由于Jenkins试图尽可能使用缓存的工作区,这也导致后续的每个构建都失败。

 类似资料:
  • 问题内容: 我是詹金斯的新手。我只是在Windows 2016服务器上设置了詹金斯。我正在创建将git用于scm的新作业。当我去建立工作时,它会创建文件夹和git。它卡在git fetch上。它超时。我已经将詹金斯设置为服务。我使用本地管理员帐户登录服务器,以尝试消除权限问题。从git fetch日志中显示的错误是GitException,然后返回状态代码-1073741510。我搜索了,找不到任

  • 问题内容: 尝试构建时出现以下错误: Jenkins 2.7.1在Windows Server 2012 R2上运行(在Jenkins 2.7.4上发生了相同的错误)。我可以通过git命令行克隆仓库,没有任何问题。发生这种情况时,我可以在任务管理器屏幕快照中看到多个git进程树,如果我稍等片刻,我会在Jenkins中看到它。 问题答案: 罪魁祸首是Git插件。更新后开始工作。我正在使用2.5.3版

  • 我试图通过JAVA运行git命令。我的Linux版本是REDHAT 7.3,git版本是1.8。所有的命令都工作正常,但是当我运行git config--globaluser.name"myName"时,它会抛出一个错误 。 我尝试通过以下代码通过JAVA导出Home路径:export Home=$Home:/PATH/Home 但我得到了以下错误: 无法运行导出执行失败(ENOENT-没有这样的

  • 问题内容: 我有两个运行Windows Server 2012的虚拟机。一个运行Jenkins,另一个运行Jenkins的构建作业之一。作业从Subversion中检出测试代码,然后在Windows批处理脚本中运行。该测试可以编译并运行,但是会失败,并显示。这些是使用Selenium和Firefox驱动程序的TestNG测试。 如果我使用完全相同的命令并从Windows命令行运行它,则测试成功。我

  • 更新域密码后,将不再访问 git 存储库。VS 代码和源代码树以及 Visual Studio 在拉取、推送、提取等方面返回以下错误消息。 通常会出现凭据弹出窗口,但这并没有发生。还有常见的建议… ...不起作用。

  • 两年多来,我们一直在使用jenkins来构建一个项目。我们最近更新了jenkins和插件(我们需要maven-3的特性),现在它无法进行简单的git获取。下面是错误消息: 如您所见,jenkins发出的命令行包含一个未知选项——progress。我已经搜索了配置文件,找不到这是从哪里来的。以下是相关版本号: 詹金斯: 1.550 詹金斯Git羽绒: 2.0.1 git: 1.7.0.4 操作系统: