我有一个存储库设置,其中有多个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
答案 0 :(得分:0)
是的,每个项目中都需要一个.gitlab-ci.yml
,但是在触发作业方面有两个选择。
不管选择哪种触发方法(如下),所有依赖项项目都应具有CI文件,该文件指定了触发主项目的CI的条件。主项目的CI文件应指定各种作业
文档:https://docs.gitlab.com/ee/ci/multi_project_pipelines.html
最简单的选择是编写CI,以便依赖项中的提交触发相应主项目CI中的下游管道。
文档:https://docs.gitlab.com/ee/ci/triggers/README.html#adding-a-new-trigger
另一种选择是通过在依赖项目的CI作业中添加curl命令来使用触发器API。在这种情况下,需要参考。
在主项目的配置项中,您可以指定only run with a trigger token的作业。