-
Couldn't load subscription status.
- Fork 61
Description
Today, we use the following default images for linux-amd64 builds:
- Public:
ubuntu-latest - Internal:
1es-ubuntu-2204
Downsides of using these images:
- We (.NET) do not control the contents of these images. And they contain a lot of stuff.
- Using them causes slower builds in two ways
- Cleaning off the pre-loaded docker images takes extra time
- Public PR validation using the default pool ("Azure Pipelines") and the Microsoft-hosted images is limited to 200 concurrent jobs across the entire dotnet org. Oftentimes we have to wait for agents during PR validation. We have much more capacity in other pools like
NetCore-Public. Available pools can be found at https://dev.azure.com/dnceng-public/public/_settings/agentqueues
To me it looks like we should use the following images, until Azure Linux 3 images are available from dnceng:
- Public:
build.ubuntu.2204.amd64.open - Internal:
build.ubuntu.2204.amd64
See the following code:
docker-tools/eng/common/templates/variables/dotnet/common.yml
Lines 21 to 22 in 9955458
| - name: linuxAmd64InternalPoolImage | |
| value: 1es-ubuntu-2204 |
docker-tools/eng/common/templates/variables/common.yml
Lines 68 to 69 in 9955458
| - name: defaultLinuxAmd64PoolImage | |
| value: ubuntu-latest |
docker-tools/eng/common/templates/stages/dotnet/publish.yml
Lines 48 to 56 in 9955458
| pool: | |
| ${{ if ne(parameters.pool, '') }}: | |
| ${{ parameters.pool }} | |
| ${{ elseif eq(variables['System.TeamProject'], parameters.publicProjectName) }}: | |
| vmImage: $(defaultLinuxAmd64PoolImage) | |
| ${{ elseif eq(variables['System.TeamProject'], parameters.internalProjectName) }}: | |
| name: $(linuxAmd64InternalPoolName) | |
| image: $(linuxAmd64InternalPoolImage) | |
| os: linux |
docker-tools/eng/common/templates/stages/dotnet/build-and-test.yml
Lines 57 to 66 in 9955458
| # Linux AMD64 | |
| linuxAmd64Pool: | |
| ${{ if ne(parameters.linuxAmd64Pool, '') }}: | |
| ${{ parameters.linuxAmd64Pool }} | |
| ${{ elseif eq(variables['System.TeamProject'], parameters.publicProjectName) }}: | |
| vmImage: $(defaultLinuxAmd64PoolImage) | |
| ${{ elseif eq(variables['System.TeamProject'], parameters.internalProjectName) }}: | |
| name: $(linuxAmd64InternalPoolName) | |
| image: $(linuxAmd64InternalPoolImage) | |
| os: linux |
Metadata
Metadata
Assignees
Labels
Type
Projects
Status