Jenkins,git,具有自定义URL(SSH)的子模块

Jenkins,git,具有自定义URL(SSH)的子模块,git,ssh,jenkins,Git,Ssh,Jenkins,问题很简单:Jenkins可以使用ssh://ci_ro@服务器(工作正常),但我有一些URL不同的子模块:ssh://server(无需定义某些用户,这是为了允许开发人员使用此repo及其子模块)。我绝对不被允许(坦率地说,我不想)提交特定于CI的.gitmodule文件(这会破坏开发人员的repos),所以请不要提及它。因此,Jenkins可以撤销主要回购协议,但在以下情况下立即失败: Caused by: hudson.plugins.git.GitException: Command "

问题很简单:Jenkins可以使用ssh://ci_ro@服务器(工作正常),但我有一些URL不同的子模块:ssh://server(无需定义某些用户,这是为了允许开发人员使用此repo及其子模块)。我绝对不被允许(坦率地说,我不想)提交特定于CI的.gitmodule文件(这会破坏开发人员的repos),所以请不要提及它。因此,Jenkins可以撤销主要回购协议,但在以下情况下立即失败:

Caused by: hudson.plugins.git.GitException: Command "git submodule update --init --recursive" returned status code 1: Cloning into blah/blah...
Host key verification failed.
fatal: The remote end hung up unexpectedly
Clone of 'ssh://server:someport/blah/blah...' into submodule path 'blah/blah' failed
我的问题:有没有可能告诉詹金斯使用ssh://ci_ro@服务器。。。子模块而不是.gitmodules中配置的子模块的URL前缀?或者任何其他可行的解决方法、插件或黑客?我仔细查看了工作选择,没有找到任何有用的选择

更新


谢谢大家的帮助。解决方案是允许“jenkins”系统用户使用git从特定的ssh服务器/端口提取。

您始终可以从shell构建步骤手动执行。

您始终可以从shell构建步骤手动执行。

尝试更改构建服务器上的/etc/ssh/ssh\u配置:

    StrictHostKeyChecking no

尝试更改生成服务器上的/etc/ssh/ssh\u配置:

    StrictHostKeyChecking no

在构建步骤中,执行以下操作:

git submodule init
然后通过子模块递归并调整它们的远程位置,这是不对的,但我在更改github用户名时使用的脚本是:

#!/bin/sh
git remote -v | grep richoH | while read name url type; do
    newurl=`echo $url | sed -e "s/richoH/richo/"`
    git remote set-url $name $newurl
done

然后做一个git子模块更新,我不相信这会干扰遥控器。这是未经测试的,但我相信是正确的。

在构建步骤中,请执行以下操作:

git submodule init
然后通过子模块递归并调整它们的远程位置,这是不对的,但我在更改github用户名时使用的脚本是:

#!/bin/sh
git remote -v | grep richoH | while read name url type; do
    newurl=`echo $url | sed -e "s/richoH/richo/"`
    git remote set-url $name $newurl
done

然后做一个git子模块更新,我不相信这会干扰遥控器。这是未经测试的,但我相信是正确的。

解决方案是允许运行Jenkins的系统用户使用SSH从指定的主机/端口进行拉取。

解决方案是允许运行Jenkins的系统用户使用SSH从指定的主机/端口进行拉取。

构建在开始时立即挂起,因此没有机会进行构建步骤。此外,禁用递归子模块更新也没有帮助。我的意思是根本不使用插件。构建在开始时立即挂起,因此没有机会进行构建步骤。另外,禁用递归子模块更新也没有帮助。我的意思是根本不使用插件。如果你已经解决了你的问题,请接受它,这样将来它会帮助其他人。如果你已经解决了你的问题,请接受它,这意味着为jenkins生成ssh密钥并在Github中添加公钥感谢您的解决方案这意味着为jenkins生成ssh密钥并在Github中添加公钥感谢您的解决方案