如何使多个目标的串行管道成为并行管道?

时间:2019-11-19 21:30:29

标签: gitlab gitlab-ci pipeline

是否可以在GitlabCI中做类似的事情?

[prebuild] ----- [build A] --- [deploy A]
            \--- [build B] --- [deploy B]
             \-- [build C] --- [deploy C]

我对Gitlab文档进行了很多研究,但找不到实现此目标的方法。我基本上不希望部署阶段等待构建阶段完成,如果完成了一个构建阶段,则应该开始与该构建相关的部署阶段。

对该问题的简单回答可以使这一步变得简单,但是我只想在制作标签时进行部署。我真的想要一个单独的步骤,所以这不是一个选择。

1 个答案:

答案 0 :(得分:2)

您可以使用needs关键字。 (在GitLab 12.2中引入)
从Gitlab文档中:

  

使用needs:关键字可以无序执行作业,从而使您可以在.gitlab-ci.yml中实现directed acyclic graph
  这样一来,您无需等待阶段顺序即可运行某些作业,而无需等待其他任务,因此您可以同时运行多个阶段。

示例和有关某些限制的更多详细信息在这里:https://docs.gitlab.com/ee/ci/yaml/README.html#needs