在Jenkins构建中,Git子模块未进行更新。

13 浏览
0 Comments

在Jenkins构建中,Git子模块未进行更新。

我在Jenkins项目中有一个子模块。我已经启用了高级设置,以递归更新子模块。

当我运行构建时,我发现工作空间中有来自子模块的文件。问题是,它似乎是子模块的第一个修订版本。当我推送更改(存储库托管在GitHub上)时,Jenkins似乎不会更新子模块以获取正确的更改。有人见过这种情况吗?

0
0 Comments

问题原因:在Jenkins构建中,Git子模块没有更新是因为缺少高级子模块行为的配置。

解决方法:根据评论和提问中的回答,可以采取以下步骤来解决问题:

1. 在"高级子模块行为"中选择"Path of the reference repo to use during submodule update",并添加子模块的Git URL。

2. 如果出现身份验证问题,可以选择"Use credentials from default remote of parent repository"选项。

3. 对于需要配置子模块分支的情况,可以使用git submodule add -b aBranch...来设置。

以上是解决Git子模块在Jenkins构建中没有更新的问题的方法。

0
0 Comments

问题出现的原因是:Jenkins在构建过程中不会自动更新Git子模块的版本。如果想要使用较新的子模块版本,需要在本地Git仓库中进行以下操作:

cd submoduledir
git pull
cd ..
git add submoduledir
git commit -m 'Updated to latest revision of submoduledir'
git push # Go and watch Jenkins build with the new revision of the submodule

。这样做后,Jenkins在构建过程中会检出相同的子模块版本。Jenkins不会自行决定使用哪个子模块版本,这是Git子模块和SVN外部引用的根本区别。

解决方法是阅读关于子模块的一些好的参考资料,例如:http://progit.org/book/ch6-6.html。给出的ProGit链接已经过时,可以查阅以下链接:https://git-scm.com/book/en/v2/Git-Tools-Submodules。该链接可能无法访问(可能与HTTPS有关)-"502 Bad Gateway"

0
0 Comments

问题原因:没有开启Jenkins中Git插件的递归更新子模块功能。

解决方法:

1. 进入Jenkins网站上的Git插件文档,找到Recursive submodules部分。

2. 在作业配置页面的源代码管理部分,点击“高级”按钮。

3. 在“分支构建”下的“高级”按钮中,勾选“递归更新子模块”选项。

4. 保存配置,重新构建即可。

注意事项:

- 如果你的仓库需要身份验证才能读取子模块,则需要给Jenkins提供SSH密钥以便它能与需要身份验证的仓库进行交互。

0