如何用zuul,Gearman和Jenkins处理git子模块的父回购?
问题描述:
使用下列工具:如何用zuul,Gearman和Jenkins处理git子模块的父回购?
- 格里特
-
Openstack/Zuul
- 其中包括Gearman的
- 詹金斯(管道作业)
项目配置:
- 项目“父母”作为git存储库。
- 将“child”项目作为git存储库。
- “父”具有“子”作为子模块配置。
- Zuul配置了Gerrit评估zuul-pipeline和Gerrit合并zuul-pipeline用于这两个项目。
我想要实现的是,当通过“子”项目启动审阅或合并构建时,也开始构建具有该变更的“父项目”项目。怎么样?
我目前正在修补以下内容,可惜现在不能正常工作,因为我无法只为一个版本更改子模块的URL。 Zuul配置:
projects:
- name: parent
review:
- review-job
- name: child
review:
- review-job:
- review-parent-with-change-of-child-job
(我已经跳过了合并部分,因为评论是不足以说明问题)
,是因为这一事实,那里面詹金斯典型Zuul作业具有只是一些$ZUUL_URL
/$ZUUL_PROJECT
里面的配置和一个链接到Jenkinsfile我必须写一个特殊的工作,以便随着孩子的变化审查父母。最后,这只是“母公司”主分公司的一个构建,其子模块从Zuul Merger的存储库中更换。
并且存在这个问题,我可以通过检查Zuul Merger的repo更改的唯一方法是更改.gitmodule文件中的url。这在我看来并不是一种理智的方式来做这样的构建,所以我正在寻找其他解决方案。由于有关Zuul和具有子模块的项目的文档几乎为零,所以我有点卡在这里。
我仍然试图达到这种疯狂的方式(尚未测试过),但是如果存在的话,我们希望尽快将其改变为更加健全和安全的方式。
答
更改.gitmodules基本上只是一个NO-GO。
但是你不需要改变它!起初我没有意识到这一点。
的Zuul回购的拉动是不够你的詹金斯文件中像这样:
sh '''
cd path/to/your/submodule
git pull $ZUUL_URL/$ZUUL_PROJECT +$ZUUL_REF:refs/heads/zuul
'''
而且你的子模块包含要在构建测试更改。