需求(对于私人池)。
引用此定义的定义: 池
实现
| 执行 | 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 | AndroidSDKAndroidSDK_{version} |
| Add-AntCapabilities.ps1 | ant |
| Add-ApplicationCapabilities.ps1 | npmgulpnode.jsbowergruntsvncmakedocker |
| Add-AzureGuestAgentCapabilities.ps1 | AzureGuestAgent |
| Add-AzurePowerShellCapabilities.ps1 | AzurePS |
| Add-ChefCapabilities.ps1 | ChefKnifeReporting |
| Add-DotNetFrameworkCapabilities.ps1 | DotNetFramework_{major.minor}DotNetFramework_{major.minor}_x64DotNetFramework |
| Add-JavaCapabilities.ps1 | java_6java_7java_8java_{major} (适用于版本9及以后版本)java_6_x64java_7_x64java_8_x64java_{major}_x64 (适用于版本9及以后版本)javajdk_6jdk_7jdk_8jdk_{major} (适用于版本9及以后版本)jdk_6_x64jdk_7_x64jdk_8_x64jdk_{major}_x64 (适用于版本9及以后版本)jdk检测到的JDK发行版包括Oracle JavaSoft、AdoptOpenJDK、Eclipse Adoptium、Eclipse Foundation和IBM Semeru。 |
| Add-MavenCapabilities.ps1 | maven |
| Add-MSBuildCapabilities.ps1 | MSBuild_2.0MSBuild_3.5MSBuild_4.0MSBuild_12.0MSBuild_14.0MSBuild_15.0MSBuild_16.0MSBuild_17.0MSBuild_18.0MSBuildMSBuild_2.0_x64MSBuild_3.5_x64MSBuild_4.0_x64MSBuild_12.0_x64MSBuild_14.0_x64MSBuild_15.0_x64MSBuild_16.0_x64MSBuild_17.0_x64MSBuild_18.0_x64MSBuild_x64 |
| Add-PowerShellCapabilities.ps1 | PowerShell |
| Add-ScvmmAdminConsoleCapabilities.ps1 | SCVMMAdminConsole |
| Add-SqlPackageCapabilities.ps1 | SqlPackage |
| Add-VisualStudioCapabilities.ps1 | VisualStudio_10.0VisualStudio_IDE_10.0VisualStudio_11.0VisualStudio_IDE_11.0VisualStudio_12.0VisualStudio_IDE_12.0VSTest_12.0VisualStudio_14.0VisualStudio_IDE_14.0VSTest_14.0VisualStudio_15.0VisualStudio_IDE_15.0VSTest_15.0VisualStudio_16.0VisualStudio_IDE_16.0VSTest_16.0VisualStudio_17.0VisualStudio_IDE_17.0VSTest_17.0VisualStudio_18.0VisualStudio_IDE_18.0VSTest_18.0VisualStudioVisualStudio_IDEVSTest |
| Add-WindowsKitCapabilities.ps1 | WindowsKit_{major.minor}WindowsKit |
| Add-WindowsSdkCapabilities.ps1 | WindowsSdk_{major.minor}WindowsSdk_{major.minor}_{toolName}WindowsSdk_{major.minor}_{toolName}_x64WindowsSdk |
| 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