在使用 Azure DevOps 时,我注意到我的拉取请求构建偶尔会失败。经过一番追踪后,我注意到只有在另一个构建已经在运行时才会发生这种情况。
似乎原因是构建输出中的文件(exe、dll、note_modules 等)将被锁定,因此当另一个构建开始时,新构建将失败,直到当前运行的构建完成,那么我将不得不再次手动重新排队构建。
我对 Azure DevOps 管道不是很熟悉,因为我们最近迁移到了这个平台,也不确定解决这个问题的最佳方法。正在构建的 sln 包括 .NET Framework、.NET Core、TypeScript 和 Node.js(如果有帮助的话)。
我很想发布日志和当前配置,但由于公司政策,我不允许... :(
答案 0 :(得分:1)
当另一个构建已经在运行时,Azure DevOps 构建管道失败
您可以尝试使用/添加能力,例如 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:
在这种情况下,当管道在此特定代理中运行时,另一个新构建将处于挂起状态,直到当前构建完成。