0

我在自托管代理上运行基于 YAML 的构建管道时遇到问题。触发构建后,它卡在Preparing an agent for the job - Waiting for the request to be queued上。

azure-pipelines.yml 看起来像这样:

trigger:
- master

pool:
  name: Default

steps:
- script: echo Hello, world!
  displayName: 'Run a one-line script'

如果我更改为 Microsoft 托管代理,则构建确实有效:

trigger:
- master

pool:
  vmImage: ubuntu-16.04

steps:
- script: echo Hello, world!
  displayName: 'Run a one-line script'

奇怪的是,我有其他现有的 YAML 构建管道,它们在自托管代理上运行良好,但我尝试创建的所有新管道最终都卡在了Waiting for the request to be queued

我尝试了当前最新版本的代理守护进程,包括 2.164.8 和 2.165.0,但无济于事。我还检查了我不受 DevOps 中并行作业的最大数量的限制。

4

3 回答 3

2

It turned out to be a permission issue to the agent pool. In Organization Settings => Agent Pools => POOL_NAME => Security, there is a setting called Grant access permission to all pipelines. After enabling this, my builds are now working as expected.

于 2020-02-26T10:18:21.577 回答
1

奇怪的是,我还有其他现有的 YAML 构建管道,它们在自托管代理上运行良好,但我尝试创建的所有新管道最终都陷入等待请求排队的问题。

您只指定使用Default代理池。因此它将在该池中选择一个可用的代理来运行该作业。

转到Organization Settings=>Agent Pools以检查Default代理池中的可用代理。

我们应该确保我们有一个版本为 2.164.8 及更高版本的可用代理,它应该处于在线状态并已启用。然后我们可以暂时禁用该池中的其他代理,再次运行您的管道以检查它是否有帮助。(在这种情况下,它应该选择好的代理来运行您的管道)

我想也许您pool:在其他旧的 yaml 管道中有不同的定义。或者您可以创建一个名为 的新代理池MyPool,并在 MyPool 中创建一个新代理,然后在您的 yaml 中指定用于name: MyPool检查Default池中的代理是否有问题。

于 2020-02-25T06:43:39.393 回答
0

确保并检查代理是否在服务器上的 Windows 服务中运行。我有什么似乎是相同的问题,但有不同的根本原因。Azure Pipeline Agent... 服务在意外中断后停止,导致服务未重新启动。某人或某个进程将服务启动属性设置为“自动启动(延迟)”而不是“自动启动”。

于 2021-06-29T21:04:02.383 回答