如何用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 
''' 

而且你的子模块包含要在构建测试更改。