在GitLab CI中进行批量合并提交

时间:2019-09-05 14:15:12

标签: gitlab gitlab-ci

GitLab CI中是否可以批量处理作业?这是我们要复制的流程:

  • 我们有一个项目(项目A),该项目有3个分支:Dev,QA和Master
  • 项目A在其Dev分支上收到提交(提交1)
  • 项目A成功运行其管道(工作1)
  • 提交1合并到质量检查分支
  • 质量检查分支运行其管道(作业2)
  • 提交2、3和4进入Dev分支
  • 项目A成功运行作业3、4和5
  • 提交2、3和4在质量检查中几乎同时进行,从而创建了工作6、7和8
  • 由于Job 2已经在Dev分支上运行,因此Job 6、7和8应该排队直到Job 2完成
  • 一旦作业2完成,QA管道就会看到有3个待处理的作业,并将它们合并为一个作业(这是分支的HEAD,因此运行最新的HEAD会测试所有3个新的提交)并运行管道< / li>

在GitLab中可以这样做吗?要点是,质量检查分支只能运行一个作业,并且在其后排队的作业应分批并一起运行。 GitLab对冗余构建的自动取消仅适用于非HEAD分支,因此即使我在并发限制为1的专用运行器上运行,也无法取消冗余构建以确保只有1个构建排队,因为这是合并操作,而作业引用是HEAD,所以自动取消功能不支持此操作。

正在寻找一些指导。我们使用具有批处理功能的Jenkin's已有3年了。我们正在寻求迁移,并且首先选择了具有此功能AZP Batch Builds的Azure Pipeline。不幸的是,AZP缺少许多现代功能,因此我们正在研究GitLabs,但是由于无法执行批处理,因此这是一个入门。

0 个答案:

没有答案