首页 > 解决方案 > 并行管道构建导致 git 冲突

问题描述

我在 Azure devops 中设置了一个构建管道,每次 PR 进入主分支时都会运行该管道。

步骤如下:

checkout main
install dependencies
npm version to increment
Build
Publish to npm feed
Deploy to a test/staging environment
Push the change to the version number back to git.

由于每次 PR 完成时都会运行构建,因此偶尔会有并行构建。根据哪个先完成,推送将失败,因为它是“脏的”。

我在寻找绕过它的方法时遇到问题。

可能的方法:

  1. 只需在 git push 命令失败时抑制失败(不理想)。
  2. 强制 git push (不理想)。
  3. 如果构建在运行时排队,请等到它完成后再开始新构建
  4. 取消旧版本和批次?
  5. 以某种方式重组构建过程。

我有什么遗漏吗?

标签: gitbuildazure-devops

解决方案


我不确定这是否回答了你的问题,因为你没有分享你的管道定义(所以如果可以的话,请这样做)但也许批处理 CI 运行可以帮助你

如果您有许多团队成员经常上传更改,您可能希望减少开始的运行次数。如果将批处理设置为 true,则当管道正在运行时,系统会等待运行完成,然后开始另一个运行,其中包含尚未构建的所有更改。

通过这种方式,您将不会获得并发构建,因此如果您可以接受分组构建,这似乎是您的解决方案。


推荐阅读