Gitlab 在同一存储库中具有嵌套管道

Gitlab 在同一存储库中具有嵌套管道,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我正在从事一个微服务项目,每个服务都有自己的管道,因为它被部署到自己的服务器上,我们在gitlab上有自己的存储库,每个项目都有自己的.gitlab ci.yml,但我希望将所有这些服务收集到一个存储库中,以使它们更易于维护,并在推送提交时触发所有服务的部署 问题是,我不希望有一个包含每个服务的构建和部署过程的大型yaml文件,而是将yaml文件保存在“服务”文件夹中,并在根目录上有一个引用它们的yaml文件,即: | service1 | service1-code | .gitlab

我正在从事一个微服务项目,每个服务都有自己的管道,因为它被部署到自己的服务器上,我们在gitlab上有自己的存储库,每个项目都有自己的
.gitlab ci.yml
,但我希望将所有这些服务收集到一个存储库中,以使它们更易于维护,并在推送提交时触发所有服务的部署

问题是,我不希望有一个包含每个服务的构建和部署过程的大型yaml文件,而是将yaml文件保存在“服务”文件夹中,并在根目录上有一个引用它们的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
|服务1
|服务1代码

|.gitlab-ci.yamlgitlab目前没有办法做到这一点,并且有一个方法可以为monorepos添加此功能

(…)将yaml文件保存在服务文件夹中,并在引用它们的根目录上有一个yaml文件

刚在GitLab上找到这个

我们创建单独的存储库,以及一个具有 将它们作为子模块。这对于在子集上执行CI非常有效。什么时候 我们把主推上主回购(更新子模块),一个完整的 CI运行在所有方面都完成,包括集成测试


我发现CI克隆包含子模块,因此这将正常工作。因此,如果你已经有了每个项目的回购协议;把你的蛋糕也吃了

我希望有人能找到解决办法