GitHub-ci.yml 配置,用于处理多个条件父子管道



>我有一个存储库设置,其中有多个 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 中,可以指定仅使用触发器令牌运行的作业。

最新更新