我有一个主要的Git回购,它映射了几个子项目和Git子模块。 这些子项目中的每个子项目都由我的主要git项目提供服务,该项目包含一个docker-compose以及每个子项目的容器。
示例:
Main
| docker-compose.yml
| projects
| Sub-project A (git submodule)
| Sub-project B (git submodule)
| Sub-project C (git submodule)
实际的代码存储在每个子项目中,如上所述,它们映射为git子模块。
我希望我的CI / CD(构建容器,测试和部署)在那些子模块之一发生更改的情况下运行。 例如,如果我向子项目A添加了新功能,则我想重建其docker映像并将其部署到服务器。
最佳做法是什么?是否可以通过更改子模块来触发CI / CD?触发器是否应该来自此Project CI / CD或子模块?
下面的问题-
我正在使用Gitlab-ci,这是用某些不同语言编写的项目(docker容器会针对每个项目进行调整)。
由于主要项目目的是为这些子模块提供服务,因此必须将其包含在流程中。