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

How to make a serial pipeline for multiple targets a parallel pipeline?

是否可以在 GitlabCI 中做这样的事情?

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

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

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

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

The needs: keyword enables executing jobs out-of-order, allowing you to implement a directed acyclic graph in your .gitlab-ci.yml.
This lets you run some jobs without waiting for other ones, disregarding stage ordering so you can have multiple stages running concurrently.

有关某些限制的示例和更多详细信息,请参见此处:https://docs.gitlab.com/ee/ci/yaml/README.html#needs