- 包括有关您的目标的详细信息:
我希望仅当 stageA 中的所有作业都完成时,stageB 中的一个 jobB 才能运行。
stageA stageB
job01A jobB
job02A
...
job58A
- 我尝试了什么:
为了实现这个结果,我目前使用关键字“needs”,它正在工作,但是 gitlab ci yml 现在看起来像这样:
jobB
stage: stageB
needs:
- job: job01A
- job: job02A
...
- job: job58A
这个列表或者数组都很长。
- 问题:
我怎样才能编写一些东西来告诉 jobB 仅当 stageA 中的所有作业都完成时才运行,而不需要显式地编写每个作业?就像是:
jobB
stage: stageB
needs:
- all jobs from stageA
GitLab 中的管道是连续的,因此如果您有一系列阶段,阶段中的每个作业将并行运行(除非明确指定),并且当阶段中的所有作业完成时,下一个阶段将开始。
needs
除非需要更复杂的关系,否则不需要添加关键字。在你的例子中:GitLab 将执行所有作业
StageA
,当这些作业成功或失败时allow_failure
,StageB
就会开始。我还发现了这篇文章,我想您可能会觉得阅读起来很有趣。