当另一个构建已经 运行 时,Azure DevOps 构建管道失败

Azure DevOps build pipelines fail when another build is already running

在使用 Azure DevOps 时,我注意到有时我的拉取请求构建会失败。经过一番追踪后,我注意到只有在另一个构建已经 运行.

时才会发生这种情况

似乎原因是构建输出中的文件(exe、dll、note_modules 等)将被锁定,因此当另一个构建开始时,新构建将失败,直到目前运行一个完成了,然后我将不得不再次手动重新排队构建。

我不太熟悉 Azure DevOps 管道,因为我们最近迁移到了这个平台,也不确定解决这个问题的最佳方法。正在构建的 sln 包括 .NET Framework、.NET Core、TypeScript 和 Node.js(如果有帮助的话)。

我很想 post 日志和当前配置,但由于公司政策,我不允许...:(

Azure DevOps build pipelines fail when another build is already running

您可以尝试 use/add Capability,例如 Agent.Name 到两个特定的构建代理,然后在构建定义中将该功能作为需求.

如此处所述:

How to send TFS build to a specific agent or server

代理的能力:

Project Settings->Agent pools->Your agent pool-> Agents->Agent->Capabilities

构建管道的需求:

Options-> Demands:

在这种情况下,当此特定代理中的管道 运行 时,另一个新构建将处于挂起状态,直到当前构建完成。