gitlab-ci.yml配置来处理多个条件父子管道

时间:2019-09-18 11:36:58

标签: maven gitlab yaml pom.xml gitlab-ci

我有一个存储库设置,其中有多个Maven项目,其中2个是主项目,其余的是依赖项。我想配置gitlab-ci.yml文件来处理对项目的依赖项更改,以触发相应主项目的构建。

这里是项目结构的示例。有2个主要项目,其余是依赖项目。主项目AB具有2个依赖项(A&B),而主项目CD具有2个依赖项(C&D)。如果项目A或B有任何更改,则应触发主项目AB。如果项目C或D有任何更改,则应触发主项目CD。如何在gitlab-ci.yml文件中写入此条件?每个项目是否需要多个.gitlab-ci.yml文件?

  master
  - Dependency Project A
  - Dependency Project B
  - Main Project AB
  - Dependency Project C
  - Dependency Project D
  - Main Project CD
  - .gitlab-ci.yml

1 个答案:

答案 0 :(得分:0)

是的,每个项目中都需要一个.gitlab-ci.yml,但是在触发作业方面有两个选择。

不管选择哪种触发方法(如下),所有依赖项项目都应具有CI文件,该文件指定了触发主项目的CI的条件。主项目的CI文件应指定各种作业

多项目管道(付费功能)

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

最简单的选择是编写CI,以便依赖项中的提交触发相应主项目CI中的下游管道。

触发API

文档:https://docs.gitlab.com/ee/ci/triggers/README.html#adding-a-new-trigger

另一种选择是通过在依赖项目的CI作业中添加curl命令来使用触发器API。在这种情况下,需要参考。

在主项目的配置项中,您可以指定only run with a trigger token的作业。