Gitlab 跨多个 repos 的持续集成

Gitlab continuous integration across multiple repos

我有一个基于 buildroot 的项目,它由两个 repos 组成:

  1. Buildroot 根,比方说项目 A
  2. 我们的包,项目B

我们托管了一个 Gitlab 服务器,我想为编译设置一个 CI/CD 作业。

我要设置的流程如下:

最后一点是我挣扎的地方。基本上,我想要的是一个独特的管道一期,这样如果两个回购协议都有针对这个特定问题的 MR,我的管道将在 AB 的正确分支上检出然后为它启动编译。

我知道我可以在回购 A 上从 B 触发管道,但我不知道如何确保唯一如果创建了两个 MR,将启动管道。因为现在,据我所知,每个 MR 都会创建它的管道,而我最终会进行两次编译...

我考虑过将 buildbot 与 Gitlab 一起使用,但我更愿意只留在 Gitlab 上,因为它更容易维护,而不是为此使用许多不同的工具。

有没有人在 Gitlab 上遇到过这种问题and/or知道如何处理它?

提前致谢!

编辑

我遇到了 this page,这似乎是我的问题的确切解决方案,不幸的是,这似乎不在路线图上。
我将深入研究在 AB 之上有一个元项目的提议,因为它可以让我用 Gitlab-CI, 即使这意味着创建这个项目并处理一个特殊的过程...

回答我自己的问题。

几天来我一直在尝试使用 buildbot 建立一个设置,但正如我所说,我真的不想添加另一个工具来管理(我的团队还没有为此做好准备, buildbot 做了太多我们现在不需要的事情。

我进入 this comment 这让我选择了以下方法。

         Gitlab.example.com
A            B                              *NEW Project 'C' only for CI/CD*
------\/------                              ----------------\/--------------
 - Trigger C with Key for the issue X,       - Fetch/clone A and B for issue X
   unless one already exists for issue X     - Prepare the sources
 - Wait for C to finish                      - Compile
 - Report C's status (with URL to the
   corresponding Pipeline)

这个设置是我能得到的最好的 Gitlab-only 解决方案。

如果有人对我使用的代码感兴趣,请告诉我,我会post 取样。