>我有一个存储库设置,其中有多个 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
是的,每个项目中都需要一个.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。在这种情况下,需要引用。
在主项目的 CI 中,可以指定仅使用触发器令牌运行的作业。