当前位置: 首页 > 面试题库 >

在詹金斯中找不到私有git子模块

刘胜泫
2023-03-14
问题内容

问题

我正在尝试在Jenkins中构建应用程序,它在Github上的一个私有仓库中,还有一个私有子模块。

我可以通过设置凭据来在Jenkins中克隆私有存储库,但是Jenkins无法克隆子模块,这是构建失败的输出:

Started by an SCM change
Building in workspace /var/lib/jenkins/jobs/Project/workspace
Fetching changes from the remote Git repository
Fetching upstream changes from git@github.com:user/repogit
using GIT_SSH to set credentials 
Checking out Revision 9cc99b67cc676d0ea8ccd489a8327f5c6dbb8d7f (origin/branch)
[workspace] $ /bin/sh -xe /tmp/hudson2710403018107019432.sh
+ git submodule update --init --recursive
Initialized empty Git repository in /var/lib/jenkins/jobs/repository/submodule/.git/
ERROR: Repository not found.
fatal: The remote end hung up unexpectedly
Clone of 'git@github.com:user/submodule.git' into submodule path 'repository/submodule/' failed
Build step 'Execute shell' marked build as failure
Discard old builds...
#156 is removed because status FAILURE is not to be kept
Publishing Clover coverage report...
No Clover report will be published due to a Build Failure
Sending e-mails to: 
Finished: FAILURE

这就是我在詹金斯试图做的

  • 试图将其他行为设置为“高级子模块行为”,但没有成功。
  • 在使用phpunit运行测试之前,尝试设置一个新步骤:

git submodule update --init --recursive

  • 试图在我的子模块的项目上设置一个git存储库,不仅仅是正在测试的主存储库,也没有运气。

所有这些都会导致错误,指出Jenkins找不到子模块的存储库。

关于如何解决这个问题的任何想法?

(用户名,路径和存储库是正确的,我只是将它们更改为在此处发布)


问题答案:

解决了。在我的凭证中,我使用的是直接SSH密钥(选项“直接输入”),而不是放入文件中。

我只是将密钥(公共密钥和私有密钥)放在〜/ .ssh中,并将凭据更改为选项“来自Jenkins主〜/ .ssh”。

问题在于,子模块未使用我为主存储库指定的凭据,而是试图使用默认的ssh密钥(.ssh / id_rsa)。

另一种解决方案是将-i my_key传递给git子模块步骤(仅当您的密钥不在默认路径(〜/ .ssh / id_rsa)中时才需要此命令)

另外,不要忘记为您的密钥提供正确的权限,在我的情况下,我必须:

chown apache ~/.ssh/id_rsa*
chmod 700 ~/.ssh/id_rsa*


 类似资料:
  • 问题内容: 尝试粘贴到我安装了Java JDK的位置,但是Jenkins一直说: 还尝试并得到: 任何人最后一个文件夹/文件应该是什么?我假设bin \ java,但这给我带来麻烦。 问题答案: 应该指向

  • 问题内容: 我想在詹金斯中设置很多变量。我试图把他们的,和该的用户,但是当构建正在发生詹金斯无法找到他们。 唯一可行的方法是将所有env变量放入其中,如下所示: 但是我不认为这是个好方法。 在詹金斯中设置环境变量的正确方法是什么? 问题答案: 在我看来,这很正常。并且应被视为文本凭据,您可以使用 指令添加环境变量。 如果你需要保持环境变量分开,你可以创建一个包含所有的常规文件,然后将该文件加载到使

  • 问题内容: 我是詹金斯的新手,目前正在尝试。我使用Eclipse并使用Gi​​t插件在Eclipse中运行Git,其描述如下:“ Eclipse Git是基于JGit的Eclipse Team提供程序,JGit是Git版本控制系统的纯Java实现”。 我已经为Jenkins安装了Git插件,但是当我对其进行配置时,Jenkins抱怨它找不到Git可执行文件。这很有意义,最明显的解决方案是安装它(在

  • 我是詹金斯的新手,在我本地的windows机器上安装了它。 禽类

  • 问题内容: 我有一个docker撰写文件 而且我已经配置了詹金斯工作以通过调用另一个外壳文件“ environment.sh”来执行此文件,但是它尝试执行以下错误: 我如何在jenkins服务器中下载和配置docker-compose,也没有可用的插件!,适用于docker-compose 问题答案: $ PATH环境变量中可能不存在您。 首先,您应该删除所有冲突的内容- 在大多数Linux系统上

  • 问题内容: 我是Jenkins和Im的新手,我想让它在.NET项目中运行某些单元测试。 当我运行构建时,尝试从git存储库获取时会挂起。 错误:10分钟后超时 C:\ Program Files \ Git \ cmd \ git.exe配置–local –remove-section凭证#timeout = 10错误:提取远程回购源hudson.plugins.git.GitException错