Choosing a Machine Pool
May 19, 2026 ยท View on GitHub
Builds
Arcade repos should use the shared pool provider variables from the repo templates instead of hard-coding legacy queue names.
Pull Request validation and public CI
Import:
variables:
- template: /eng/common/templates/variables/pool-providers.yml
Use:
- Pool:
$(DncEngPublicBuildPool) - This resolves to:
NetCore-Publicformainand other non-release branchesNetCore-Svc-Publicforrelease/*branches
Typical images used in this repo:
- Windows:
windows.vs2026.amd64.open - Linux:
build.azurelinux.3.amd64.open - Mac: Hosted macOS
Example:
pool:
name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals windows.vs2026.amd64.open
Official / signed builds
Import:
variables:
- template: /eng/common/templates-official/variables/pool-providers.yml
Use:
- Pool:
$(DncEngInternalBuildPool) - This resolves to:
NetCore1ESPool-Internalformainand other non-release branchesNetCore1ESPool-Svc-Internalforrelease/*branches
Typical images used in this repo:
- Windows:
windows.vs2026.amd64 - Linux:
build.azurelinux.3.amd64 - Mac: Hosted mac Internal
For official 1ES pipelines, prefer the image syntax:
pool:
name: $(DncEngInternalBuildPool)
image: windows.vs2026.amd64
os: windows
For job templates that still use queue demands, use the equivalent ImageOverride demand instead.
Choosing an image
- Prefer the same image already used by similar jobs in this repo.
- Linux images generally boot faster than Windows images.
- For a live list of approved images, see helix.dot.net/#1esPools.
- For official builds (with the exception of macOS), avoid hosted images (such as
windows-latestorubuntu-latest).
Test Execution
All test execution should run through Helix.
To view the available Helix queues:
- Perform an HTTP GET of
https://helix.dot.net/api/2018-03-14/info/queues. - Review the returned JSON array of queue descriptions.
- Use the dotnet-helix-machines repo and the queue info API to confirm machine capabilities.
- Submit test jobs through the Helix Sdk.