相关疑难解决方法(0)

Gitlab-CI 中的上游触发(又名管道依赖项)

我似乎无法从这样的工具中找到最明显的 CI 功能:在另一个项目的管道完成后运行项目管道。您可以这样做,trigger但仅限于下游触发,这与您想要的相反,如果您的项目是 20 个其他项目的核心依赖项,而这些项目都需要重建。

在这种情况下,您需要能够定义如下内容:

项目A:没什么特别的,只是一个普通的管道

项目 B,“依赖于”项目 A:

.gitlab-ci.yml

from_upstream:
  stage: pre
  trigger:
    project: ProjectA
Run Code Online (Sandbox Code Playgroud)

它的作用是每当 ProjectA 管道[成功]完成时触发 ProjectB 构建。

相反,您必须以类似的方式声明 ProjectA 中的所有数十个下游,这是愚蠢且适得其反的,特别是当 ProjectA 是一个在各处不断重用的核心库时。

那么,有人可以解释一下为什么 GitlabCI 缺少一个在 Bamboo 和 Hudson/Jenkins 中已有数十年的明显功能(即使在 EE 中也不可用)吗?我如何使用 Gitlab-CI 做我需要的事情?

更新:似乎上游/下游的概念对某些人来说确实令人困惑,所以只是澄清一下:上游 项目 A是而且必须始终与下游 项目 B分离,因为关注点分离是一件事,上游维护者不能也不应该可能不了解他们的项目如何在下游使用。

因此,所需的功能(同样,在 Bamboo 和 Jenkins 中存在了数十年)是下游管道在上游管道上声明被动触发器,而不是像目前在 Gitlab-CI 中实现的那样使用主动触发器。

gitlab gitlab-ci

10
推荐指数
1
解决办法
5821
查看次数

标签 统计

gitlab ×1

gitlab-ci ×1