title | description | ms.date | monikerRange |
---|---|---|---|
pool definition |
Which pool to use for a job of the pipeline. |
03/02/2023 |
>=azure-pipelines-2019 |
:::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 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 that reference this definition: pipeline, jobs.job
:::moniker-end
:::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"
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
::: 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"
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
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'
.
To use a private pool with no demands:
pool: MyPool
:::moniker range="=azure-pipelines"
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.
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"
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).
name
string.
Name of a pool.
demands
pool.demands.
Demands (for a private pool).
:::moniker-end
:::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'
.
:::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
Note
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.
For more information and examples, see Specify demands.
- Specify demands
- Learn more about conditions and timeouts.