首页 > 解决方案 > 可以相互启动的多项目管道

问题描述

在 Gitlab-CI 上,我有两个项目可以一起工作。有时只更新项目 A,有时只更新 B,有时只更新 A+B(当发布链接时)。我想在每个项目上创建一个启动一个项目并仅在必要时触发另一个项目的管道。我使用了下游触发器,但我面临两种冲突的情况:

当我只在分支发布-* 上推送 A 时,我想在 B 上触发 master,反之亦然

当我推动 A 和 B 因为发布链接到两个项目时,它将触发管道 A 然后 B,然后 B 将触发 A,然后 A 将触发 B,并且永远如此。(我没有测试这个案例,但理论上会发生)

任何想法如何解决这种情况?

将chatops 与Slack 一起使用是一个可以考虑的解决方案。

标签: continuous-integrationgitlabpipelinegitlab-ci-runnermulti-project

解决方案


我只是通过CI_PIPELINE_SOURCE在下游管道中玩弄找到了答案。如果 $CI_PIPELINE_SOURCE == "pipeline",不要执行这个任务。


推荐阅读