在同一存储库中嵌套管道

时间:2018-05-01 02:08:28

标签: gitlab gitlab-ci

我正在开发一个微服务项目,每个服务都有自己的管道,因为它被部署到自己的服务器上,我们将每个项目放在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

可行吗?

2 个答案:

答案 0 :(得分:1)

GitLab目前无法做到这一点,并且有open issue为monorepos添加此功能。

答案 1 :(得分:0)

  

(...)将yaml文件保留在services文件夹中,并在引用它们的根目录上有一个yaml文件

comment在GitLab上找到了robindegen

  

我们创建了单独的存储库,以及一个具有以下内容的父主存储库   它们作为子模块。这对于在子集上执行CI很好。什么时候   我们将主仓库推入主仓库(以更新子模块),   CI运行已完成,包括集成测试。

我侦查CI克隆包含子模块,因此可以正常工作。因此,如果您已经有每个项目的存储库;吃你的蛋糕也吃!