pool.demands 정의

요구 사항(프라이빗 풀의 경우).

이 정의를 참조하는 정의:

구현들

이행 설명
요구: 스트링 프라이빗 풀에 대한 수요를 지정합니다.
demands: 문자열 목록 프라이빗 풀에 대한 요구 목록을 지정합니다.

비고

요구 사항을 사용하여 파이프라인을 실행하는 에이전트에 파이프라인에 필요한 기능이 있는지 확인합니다. 요청은 태스크에 의해 자동으로 어설션되거나 사용자가 수동으로 어설션됩니다.

비고

요구 사항 및 기능은 작업의 요구 사항을 충족하는 에이전트와 작업을 일치시킬 수 있도록 자체 호스팅 에이전트에서 사용하도록 설계되었습니다. Microsoft 호스팅 에이전트를 사용하는 경우 작업의 요구 사항과 일치하는 에이전트에 대한 이미지를 선택하므로 Microsoft 호스팅 에이전트에 기능을 추가할 수 있지만 Microsoft 호스팅 에이전트에서 기능을 사용할 필요는 없습니다.

기능의 존재 여부를 확인하거나(기존 작업) 기능에서 특정 문자열을 확인할 수 있습니다(같음 작업). 기능(존재)의 존재 여부를 확인하고 기능에서 특정 문자열(같음)을 확인하는 것은 요구 사항에 대해 지원되는 두 가지 작업뿐입니다.

작업 요구 사항

에이전트에서 하나 이상의 요구 사항을 충족하지 않는 한 일부 작업은 실행되지 않습니다. 예를 들어 Visual Studio 빌드 태스크는 msbuild 에이전트에 설치해야 하며 visualstudio 이를 요구합니다.

수동으로 입력한 에이전트 요구 사항

특수 기능이 있는 자체 호스팅 에이전트를 사용해야 할 수도 있습니다. 예를 들어 파이프라인에는 풀의 에이전트에 SpecialSoftwareDefault 필요할 수 있습니다. 또는 동일한 풀에 서로 다른 운영 체제를 가진 여러 에이전트가 있는 경우 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 스크립트를 사용하여 도구와 소프트웨어를 스캔하고, 해당 기능을 등록합니다. 이 스크립트들은 에이전트 오픈 소스 소프트웨어의 일부이며 /src/Misc/layoutbin/powershell 폴더에 위치해 있습니다.

다음 표는 Copilot에서 생성되었습니다. Copilot AI에 의해 구동되므로 놀라움과 실수가 가능합니다. 자세한 내용은 Copilot 일반 사용 FAQ를 참조하세요.

툴 스캐닝 스크립트 역량
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 # Specify a demand for a private pool.

demands 문자열입니다.

프라이빗 풀에 대한 수요를 지정합니다.

예시

YAML 빌드 파이프라인에 단일 수요를 추가하려면 demands: 섹션에 pool 줄을 추가합니다.

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

demands: 문자열 목록

프라이빗 풀에 대한 요구 목록을 지정합니다.

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

목록 형식

유형 설명
문자열 프라이빗 풀에 대한 요구 목록을 지정합니다.

예시

여러 요구를 지정하려면 줄당 하나를 추가합니다.

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

참고하십시오