我正在开发一个微服务项目,每个服务都有自己的管道,因为它被部署到自己的服务器上,我们将每个项目放在gitlab上自己的存储库中,并拥有自己的.gitlab-ci.yml
但是我希望在单个存储库中收集所有这些服务,以便在推送提交时更容易维护并触发所有服务的部署。
问题是我不想要一个包含构建版本的胖胖yaml文件。每个服务的部署过程,而是将yaml文件保存在services文件夹中,并在引用它们的根上有一个yaml文件,即:
| service1
| service1-code
| .gitlab-ci.yaml << build process for service1
| service2
| service2-code
| .gitlab-ci.yaml << build process for service2
| .gitlab-ci.yaml << reference to service1/yaml & service2/yaml
可行吗?
答案 0 :(得分:1)
GitLab目前无法做到这一点,并且有open issue为monorepos添加此功能。
答案 1 :(得分:0)
(...)将yaml文件保留在services文件夹中,并在引用它们的根目录上有一个yaml文件
comment在GitLab上找到了robindegen。
我们创建了单独的存储库,以及一个具有以下内容的父主存储库 它们作为子模块。这对于在子集上执行CI很好。什么时候 我们将主仓库推入主仓库(以更新子模块), CI运行已完成,包括集成测试。
我侦查CI克隆包含子模块,因此可以正常工作。因此,如果您已经有每个项目的存储库;吃你的蛋糕也吃!