如何在Gitlab中获取给定MR的关联管道

时间:2020-07-25 18:05:35

标签: gitlab gitlab-ci pipeline

我们有一个管道,可在创建合并请求时立即运行构建,如果构建成功,则有人可以通过按下合并按钮来批准合并。当按下合并按钮时,代码将被合并,然后另一个管道运行以部署代码。只要我们在按下按钮后重复构建步骤,所有这些工作都很好。

最终,我们计划将此管道应用于monorepo,因此我真的很想将其传递到我们只需要构建一次的位置-一旦创建MR。

我们使用docker构建。我想将分离管道中构建的工件推送到gitlab注册表,并将其拉入下一个管道(在合并被批准后运行)。

问题在于,似乎没有办法以任何方式将字符串从一个管道传递到下一个管道,而这涉及批准按下按钮以进行合并。

第一个管道是由合并请求触发的分离管道,因此它具有标识其合并请求ID的字段。但是第二个管道不知道合并请求。我在Gitlab中找到的唯一关联是通过UI,它标识与给定管道关联的合并请求。该API似乎没有等效的版本。

实际上,一个管道和下一个管道之间没有什么共同之处。即使由于MR正在运行第二个管道,也不是commit_sha,甚至pipeline_id或合并相关变量的存在。我曾考虑使用裸露的git命令,但是由于没有将它们捆绑在一起的东西,因此遇到了同样的问题。尤其是因为它是一个monorepo,所以我找不到适合我的一套假设,至少在处理MR的过程中,如果不将其提交回repo中,至少是无法做到的。如果可能的话,我想避免这种情况。

有人知道我将如何在GitLab中进行此操作吗?如果不是GitLab,是否还有另一个托管CI将MR与在合并过程中运行的管道相关联?对我而言,不想两次构建似乎是一个非常基本的用例。

0 个答案:

没有答案
相关问题