"Job is pending" Azure DevOps 管道中的消息
"Job is pending" message in Azure DevOps pipelines
我们使用 TFVC 作为 VCS,我们的存储库位于 Azure Repos,我们使用 Azure DevOps CI/CD。
Main 分支有管道构建更改,“门控签入”选项已启用。
我们使用部署在构建服务器上的托管代理。目前有 3 个构建环境,每个构建环境都部署了 1 个代理。由于有许多开发人员从事该项目 - 许多并发签入成为瓶颈,这就是为什么我们现在在一个代理池中有 3 个代理,管道有 1 个作业,它正在使用具有 3 个代理的代理池。
问题是,当多个开发人员签入更改时,只有 1 个构建正在 运行ning,队列中的所有其他人都必须等到它完成,尽管其他 2 个代理在线且空闲在同一个池中。
构建与消息“作业待定”一起排队。有趣的是,如果我们 运行 来自 azure devOps 的管道,他们 运行 同时,但是当开发人员签入从 Visual Studio 更改时 - 他们排队。
这是因为启用了“门控签入”选项。门控签到不会 运行 并行。
提供了更多详细信息。
简而言之,门控签入采用分支中的最新变更集 + 正在签入的代码,然后构建代码。如果构建失败,则签入将失败。如果您想要并行构建,则需要禁用门控签入并改用 CI 构建。
我们使用 TFVC 作为 VCS,我们的存储库位于 Azure Repos,我们使用 Azure DevOps CI/CD。 Main 分支有管道构建更改,“门控签入”选项已启用。
我们使用部署在构建服务器上的托管代理。目前有 3 个构建环境,每个构建环境都部署了 1 个代理。由于有许多开发人员从事该项目 - 许多并发签入成为瓶颈,这就是为什么我们现在在一个代理池中有 3 个代理,管道有 1 个作业,它正在使用具有 3 个代理的代理池。
问题是,当多个开发人员签入更改时,只有 1 个构建正在 运行ning,队列中的所有其他人都必须等到它完成,尽管其他 2 个代理在线且空闲在同一个池中。 构建与消息“作业待定”一起排队。有趣的是,如果我们 运行 来自 azure devOps 的管道,他们 运行 同时,但是当开发人员签入从 Visual Studio 更改时 - 他们排队。
这是因为启用了“门控签入”选项。门控签到不会 运行 并行。
简而言之,门控签入采用分支中的最新变更集 + 正在签入的代码,然后构建代码。如果构建失败,则签入将失败。如果您想要并行构建,则需要禁用门控签入并改用 CI 构建。