如何更改子模块时触发管道?

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

我有一些使用相同子模块的存储库。有没有一种方法可以设置这些存储库以在其子模块的来源更改时自动运行管道?

例如,如果我在父存储库上推送某些内容,我希望它使用更改作为子模块自动将更改通知所有存储库,则更改已发生并且需要运行其管道。

continuous-integration gitlab gitlab-ci git-submodules
1个回答
0
投票

[GitLab中有一个称为multi-project pipeline的功能,可以触发存储库之间的构建,但仅在Premium和Silver版本中:

https://docs.gitlab.com/ee/ci/multi_project_pipelines.html

您可能会对此有所帮助。您只需要记住,仅仅因为您将新更改推送到了子模块,使用该子模块的存储库就不会更新。他们仍然和以前一样在同一提交上。

当然,如果您确实愿意,您可以做任何您想做的事情。如果您有一台可以设置gitlab运行程序的服务器,则可以执行以下操作:

  • 创建一个新的GitLab用户RoboGit,可以访问该子模块和使用该子模块的存储库
  • 在服务器上安装并注册gitlab运行程序
  • 为子模块创建作业

然后,该作业可以手动检出您的依赖项目,找到子模块,将其更新为最新版本,然后提交这些更改。这些更改的作者将为RoboGit,并且这些更改将触发这些存储库中的构建作业。您会得到与您在问题中描述的内容类似的东西。

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