Skip to content

Latest commit

 

History

History
314 lines (238 loc) · 9.8 KB

File metadata and controls

314 lines (238 loc) · 9.8 KB
title description ms.date monikerRange
pool definition
Which pool to use for a job of the pipeline.
10/04/2024
>=azure-pipelines-2019

pool definition

:::moniker range=">=azure-pipelines-2019"

The pool keyword specifies which pool to use for a job of the pipeline. A pool specification also holds information about the job's strategy for running.

:::moniker-end

:::moniker range=">=azure-pipelines-2020"

Definitions that reference this definition: pipeline, stages.stage, jobs.job, jobs.deployment, preDeployHook, deployHook, routeTrafficHook, postRouteTrafficHook, onFailureHook, onSuccessHook

:::moniker-end

:::moniker range=">=azure-pipelines-2019 <=azure-pipelines-2019.1"

Definitions that reference this definition: pipeline, jobs.job

:::moniker-end

Implementations

:::moniker range="=azure-pipelines"

Implementation Description
pool: string Specify a private pool by name.
pool: name, demands, vmImage Full syntax for using demands and Microsoft-hosted pools.

:::moniker-end

:::moniker range=">=azure-pipelines-2019 <=azure-pipelines-2022.2"

Implementation Description
pool: string Specify a private pool by name.
pool: name, demands Which pool to use for a job of the pipeline.

:::moniker-end

Remarks

::: moniker range=">= azure-pipelines-2019 <= azure-pipelines-2019.1"

In Azure DevOps Server 2019 you can specify a pool at the job level in YAML, and at the pipeline level in the pipeline settings UI. In Azure DevOps Server 2019.1 you can also specify a pool at the pipeline level in YAML if you have a single implicit job. :::moniker-end

::: moniker range=">= azure-pipelines-2020" You can specify a pool at the pipeline, stage, or job level. :::moniker-end

The pool specified at the lowest level of the hierarchy is used to run the job.

:::moniker range=">=azure-pipelines-2019"

pool: string

Specify a private pool by name to use for a job of the pipeline.

pool: string # Specify a private pool by name.

pool string.

Specify a private pool by name.

:::moniker-end

Remarks

Use this syntax to specify a private pool by name.

Note

If your pool name has a space in it, enclose the pool name in single quotes, like pool: 'My pool'.

Examples

To use a private pool with no demands:

pool: MyPool

:::moniker range="=azure-pipelines"

pool: name, demands, vmImage

Full syntax for using demands and Microsoft-hosted pools.

pool:
  name: string # Name of a pool.
  demands: string | [ string ] # Demands (for a private pool).
  vmImage: string # Name of the VM image you want to use; valid only in the Microsoft-hosted pool.

Properties

name string.
Name of a pool.

demands pool.demands.
Demands (for a private pool).

vmImage string.
Name of the VM image you want to use; valid only in the Microsoft-hosted pool.

:::moniker-end

:::moniker range=">=azure-pipelines-2019 <=azure-pipelines-2022.2"

pool: name, demands

Which pool to use for a job of the pipeline.

pool:
  name: string # Name of a pool.
  demands: string | [ string ] # Demands (for a private pool).

Properties

name string.
Name of a pool.

demands pool.demands.
Demands (for a private pool).

:::moniker-end

Remarks

:::moniker range="= azure-pipelines"

Specify a Microsoft-hosted pool using the vmImage property.

::: moniker-end

If your self-hosted agent pool name has a space in it, enclose the pool name in single quotes, like name: 'My pool'.

Examples

:::moniker range="= azure-pipelines"

To use a Microsoft-hosted pool, omit the name and specify one of the available hosted images:

pool:
  vmImage: ubuntu-latest

::: moniker-end

You can specify demands for a private pool using the full syntax.

To add a single demand to your YAML build pipeline, add the demands: line to the pool section.

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

Or if you need to add multiple demands, add one per line.

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

Checking for the existence of a capability (exists) and checking for a specific string in a capability (equals) are the only two supported operations for demands.

Exists operation

The exists operation checks for the presence of a capability with the specific name. The comparison is not case sensitive.

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

Equals operation

The equals operation checks for the existence of a capability, and if present, checks its value with the specified value. If the capability is not present or the values don't match, the operation evaluates to false. The comparisons are not case sensitive.

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

Agent variables as system capabilities

Self-hosted agents have the following system capabilities with similar names to agent variables, but they are not variables and don't require variable syntax when checking for exists or equals in a demand.

  • Agent.Name
  • Agent.Version
  • Agent.ComputerName
  • Agent.HomeDirectory
  • Agent.OS
  • Agent.OSArchitecture
  • Agent.OSVersion (Windows agents only)

For more information, see Specify demands.

See also