pool.demands 定义

需求(对于私人池)。

引用此定义的定义:

实现

执行 DESCRIPTION
demands: string 指定专用池的需求。
demands:string list 指定专用池的需求列表。

注解

使用需求来确保管道所需的 功能 存在于运行管道的代理上。 需求由任务或手动断言。

注释

需求和功能设计用于自托管代理,以便作业可与满足作业要求的代理匹配。 使用Microsoft托管代理时,请选择与作业要求匹配的代理的映像,因此,尽管可以将功能添加到Microsoft托管代理,但无需将功能用于Microsoft托管代理。

可以检查功能(Exists作)是否存在,也可以检查功能(等于作)中的特定字符串。 检查功能是否存在(存在)和检查功能(等于)中的特定字符串是唯一两个支持的需求作。

任务需求

除非代理满足一个或多个要求,否则某些任务不会运行。 例如,Visual Studio 生成任务要求并msbuildvisualstudio安装在代理上。

手动输入的代理要求

可能需要使用具有特殊功能的自承载代理。 例如,管道可能需要在池中的代理上使用 Default。 或者,如果同一池中有多个具有不同作系统的代理,则可能具有需要 Linux 代理的管道。

Exists作

存在作检查是否存在具有特定名称的功能。 比较不区分大小写。

pool:
  name: MyPool
  demands: myCustomCapability # exists check for myCustomCapability

等于运算

等于作检查是否存在功能,如果存在,则使用指定的值检查其值。 如果功能不存在或值不匹配,则作的计算结果为 false。 比较不区分大小写。

pool:
  name: MyPool
  demands: Agent.Version -equals 2.144.0 # equals check for Agent.Version 2.144.0

代理变量作为系统功能

自承载代理具有以下系统功能,其名称类似于代理变量,但它们不是变量,在检查需求中是否存在或等于时不需要变量语法。

  • Agent.Name
  • Agent.Version
  • Agent.ComputerName
  • Agent.HomeDirectory
  • Agent.OS
  • Agent.OSArchitecture
  • Agent.OSVersion (仅限 Windows 代理)

代理能力扫描

当代理软件启动时,它会扫描以下软件和工具并注册相应的能力。

Tip

在自托管代理上安装新软件后,必须重启代理才能显示新功能。 有关详细信息,请参阅重启 Windows 代理重启 Linux 代理重启 Mac 代理

在 Windows 代理中,代理使用以下 PowerShell 脚本扫描工具和软件,并注册相应的功能。 这些脚本是 agent 开放源代码 软件的一部分,位于 /src/Misc/layoutbin/powershell 文件夹中。

下表由Copilot生成。 Copilot 由 AI 提供支持,因此可能会带来意外和错误。 有关详细信息,请参阅 Copilot 常规使用常见问题解答

工具扫描脚本 能力
Add-AndroidSdkCapabilities.ps1 AndroidSDK
AndroidSDK_{version}
Add-AntCapabilities.ps1 ant
Add-ApplicationCapabilities.ps1 npm
gulp
node.js
bower
grunt
svn
cmake
docker
Add-AzureGuestAgentCapabilities.ps1 AzureGuestAgent
Add-AzurePowerShellCapabilities.ps1 AzurePS
Add-ChefCapabilities.ps1 Chef
KnifeReporting
Add-DotNetFrameworkCapabilities.ps1 DotNetFramework_{major.minor}
DotNetFramework_{major.minor}_x64
DotNetFramework
Add-JavaCapabilities.ps1 java_6
java_7
java_8
java_{major} (适用于版本9及以后版本)
java_6_x64
java_7_x64
java_8_x64
java_{major}_x64 (适用于版本9及以后版本)
java
jdk_6
jdk_7
jdk_8
jdk_{major} (适用于版本9及以后版本)
jdk_6_x64
jdk_7_x64
jdk_8_x64
jdk_{major}_x64 (适用于版本9及以后版本)
jdk

检测到的JDK发行版包括Oracle JavaSoft、AdoptOpenJDK、Eclipse Adoptium、Eclipse Foundation和IBM Semeru。
Add-MavenCapabilities.ps1 maven
Add-MSBuildCapabilities.ps1 MSBuild_2.0
MSBuild_3.5
MSBuild_4.0
MSBuild_12.0
MSBuild_14.0
MSBuild_15.0
MSBuild_16.0
MSBuild_17.0
MSBuild_18.0
MSBuild
MSBuild_2.0_x64
MSBuild_3.5_x64
MSBuild_4.0_x64
MSBuild_12.0_x64
MSBuild_14.0_x64
MSBuild_15.0_x64
MSBuild_16.0_x64
MSBuild_17.0_x64
MSBuild_18.0_x64
MSBuild_x64
Add-PowerShellCapabilities.ps1 PowerShell
Add-ScvmmAdminConsoleCapabilities.ps1 SCVMMAdminConsole
Add-SqlPackageCapabilities.ps1 SqlPackage
Add-VisualStudioCapabilities.ps1 VisualStudio_10.0
VisualStudio_IDE_10.0
VisualStudio_11.0
VisualStudio_IDE_11.0
VisualStudio_12.0
VisualStudio_IDE_12.0
VSTest_12.0
VisualStudio_14.0
VisualStudio_IDE_14.0
VSTest_14.0
VisualStudio_15.0
VisualStudio_IDE_15.0
VSTest_15.0
VisualStudio_16.0
VisualStudio_IDE_16.0
VSTest_16.0
VisualStudio_17.0
VisualStudio_IDE_17.0
VSTest_17.0
VisualStudio_18.0
VisualStudio_IDE_18.0
VSTest_18.0
VisualStudio
VisualStudio_IDE
VSTest
Add-WindowsKitCapabilities.ps1 WindowsKit_{major.minor}
WindowsKit
Add-WindowsSdkCapabilities.ps1 WindowsSdk_{major.minor}
WindowsSdk_{major.minor}_{toolName}
WindowsSdk_{major.minor}_{toolName}_x64
WindowsSdk
Add-XamarinAndroidCapabilities.ps1 Xamarin.Android

demands: string

指定专用池的需求。

demands: string # Specify a demand for a private pool.

demands 字符串。

指定专用池的需求。

例子

若要向 YAML 生成管道添加单个需求,请将 demands: 行添加到 pool 部分。

pool:
  name: Default
  demands: SpecialSoftware # exists check for SpecialSoftware

demands:string list

指定专用池的需求列表。

demands: [ string ] # Specify a list of demands for a private pool.

列表类型

类型 DESCRIPTION
字符串 指定专用池的需求列表。

例子

若要指定多个需求,请为每个行添加一个。

pool:
  name: MyPool
  demands:
  - myCustomCapability   # exists check for myCustomCapability
  - Agent.Version -equals 2.144.0 # equals check for Agent.Version 2.144.0

另请参阅