如何用zuul,Gearman和Jenkins处理git子模块的父repo?

问题描述 投票:0回答:1

使用以下工具:

  • 格里特
  • Openstack/Zuul 其中包括Gearman
  • Jenkins(管道工作)

项目配置:

  • 将“parent”项目作为git存储库。
  • 将“child”项目作为git存储库。
  • “parent”具有“子”作为子模块配置。
  • 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

(我已经跳过了合并部分,因为复习足以解释这个问题)

所以,由于事实,jenkins里面的典型Zuul工作里面只有一些$ZUUL_URL / $ZUUL_PROJECT配置和一个Jenkinsfile的链接我必须写一个特殊的工作,以便通过改变孩子来审查父母。最后只是“父”主分支的构建,子模块更改了Zuul Merger的存储库。

而且存在问题,我可以实现从Zuul Merger的回购中检查更改的唯一方法是更改​​.gitmodule文件中的url。在我看来,这不是一个理智的方式来做这样的构建,所以我正在寻找另一种解决方案。由于关于Zuul的文档和有子模块的项目几乎为零,我有点被困在这里。

我仍然会尝试以疯狂的方式实现这一目标(尚未经过测试),但是如果存在的话,我希望尽快将其改变为更加理智和安全的方式。

git jenkins gerrit gearman openstack-zuul
1个回答
0
投票

更改.gitmodules基本上只是一个NO-GO。

但你不需要改变它!起初我没有意识到这一点。

在你的Jenkins文件中拉Zuul repo就足够了:

sh '''
cd path/to/your/submodule
git pull $ZUUL_URL/$ZUUL_PROJECT +$ZUUL_REF:refs/heads/zuul
'''

并且您的子模块包含您要在构建中测试的更改。

© www.soinside.com 2019 - 2024. All rights reserved.