GitLab分享赛跑者:顺序管道构建

时间:2019-02-14 11:32:54

标签: gitlab pipeline gitlab-ci-runner sequential

去年,我在GitLab上为我公司的Java项目设置了一些CI。我们正在使用共享运行程序,该运行程序在每个项目管道中执行几个阶段。效果很好,但是由于一些不可预见的原因,我们不得不搁置一段时间。

在GitLab上进行排序的示例及其工作方式(Java Maven项目的简单阶段):

  • 项目A:运行测试(管道1,作业1)
  • 项目A:将jar部署到工件(管道1,作业2)
  • 项目B:运行测试(管道2,作业3)
  • 项目B:将jar部署到工件(管道2,作业4)

我最近已将其备份,似乎在进行了某些GitLab升级后,其行为已稍有更改-管道不再按上述顺序执行。我已经进行了一些研究,我认为这可能是由于共享运行者如何利用“共享使用情况队列”(至少在我们的版本中,我不认为去年是这样做的)-https://docs.gitlab.com/ee/ci/runners/#how-shared-runners-pick-jobs

现在执行如下:

  • 项目A:运行测试(管道1,作业1)
  • 项目B:运行测试(管道2,作业3)
  • 项目A:将jar部署到工件(管道1,作业2)
  • 项目B:将jar部署到工件(管道2,作业4)

这带来了项目B可能依赖项目A的问题,并且如果在项目A中引入了API重大更改,则需要在项目B开始运行其测试之前将其部署到工件。

我尝试更改gitlab-runner config.toml中的设置,例如确保关闭并发构建,但似乎没有任何帮助。

我还尝试过将“测试”和“部署”阶段重命名为其他随机单词,以确保不会将来自不同管道的具有相同名称的阶段分组在一起。

我想知道是否有办法关闭共享运行程序的“共享使用情况队列”,并按工作编号的顺序顺序执行管道?

0 个答案:

没有答案