未指定池 迁移的版本显示错误

问题描述 投票:0回答:2

我们最近使用 Azure DevOps 迁移工具将一些构建迁移到不同的 Azure DevOps 环境。构建管道指向微软托管代理,但由于问题而失败

未指定池

新创建的构建可以使用相同的构建配置正常工作。随附的屏幕截图包含完全相同的示例 yaml,但是迁移的构建因错误而失败,而新创建的构建工作正常。

enter image description here

enter image description here

azure-devops azure-devops-rest-api
2个回答
5
投票

azure-pipelines.yml

中指定的池实际上似乎并未被Azure使用;  相反,您必须通过 GUI 进行设置。

来自管道编辑器:

    单击右上角带有三个点的按钮。
  1. 单击“触发器”。
  2. 单击“YAML”,这是左上角的选项卡。
  3. 选择默认代理池。
就是这样! 只需保存并排队您的管道,它应该可以毫无问题地运行。


0
投票
我知道这篇文章已经有两年了,但我仍然会为可能遇到同样问题的后代回答它。

我们最近经历了完全相同的情况。以下是您可能遇到的情况:

当 ADO 迁移工具迁移构建管道时,它将管道触发器的

Default agent pool for YAML

 字段留空。
enter image description here

即使没有这条强制性信息,您仍然可以保存并验证管道(这是正确的,因为工作流程是您首先定义管道,然后才添加所需的所有触发器)。似乎 ADO 的设计方式是,除非您在 GUI 中的管道设置中指定了默认池,否则不会选取 yaml 管道定义中定义的代理池。然后,当您运行管道时,您看到的错误消息本质上意味着 ADO 检查是否存在默认管道,当没有找到任何默认管道时,它会中止运行,甚至无需在 yaml 文件中查找另一个代理池。

当我们使用

Import repository

 功能将存储库从一个项目克隆到另一个项目时,同样的情况也发生在我们身上。如果 Azure DevOps 在导入的存储库中检测到 yaml 管道定义,它会自动创建一个新的构建管道,但会将默认代理池字段留空(当然不会告诉您)。

当您手动构建新管道时,不会发生这种情况,因为在这种情况下,ADO 足够智能,可以使用 ADO 管理员在组织级别定义的默认代理池填充此字段。但似乎“导入存储库”功能和 ADO 迁移工具忽略了默认代理池设置。

© www.soinside.com 2019 - 2024. All rights reserved.