From 2edc68fd345175d2d8ca03d1922e7173ec278581 Mon Sep 17 00:00:00 2001 From: "net-containers-bot[bot]" <307772199+net-containers-bot[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2026 23:53:11 +0000 Subject: [PATCH 1/5] Update common Docker engineering infrastructure from mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:727dd6441aaa3ee866c778f8d89bcfdec612dbebe91172f4b234a5e81dc7f3c2 --- eng/docker-tools/templates/variables/docker-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/docker-tools/templates/variables/docker-images.yml b/eng/docker-tools/templates/variables/docker-images.yml index 334fb561fc..b98ad60138 100644 --- a/eng/docker-tools/templates/variables/docker-images.yml +++ b/eng/docker-tools/templates/variables/docker-images.yml @@ -1,5 +1,5 @@ variables: - imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:8d452a2daee53be18da5bc5c17776672444b65ae334552937a10596f626da31d + imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:727dd6441aaa3ee866c778f8d89bcfdec612dbebe91172f4b234a5e81dc7f3c2 imageNames.imageBuilder: $(imageNames.imageBuilderName) imageNames.imageBuilder.withrepo: imagebuilder-withrepo:$(Build.BuildId)-$(System.JobId) imageNames.testRunner: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux3.0-docker-testrunner From a9215b3c6f70fdf7a04e222a09f73b532223d59b Mon Sep 17 00:00:00 2001 From: "net-containers-bot[bot]" <307772199+net-containers-bot[bot]@users.noreply.github.com> Date: Sun, 25 Oct 2026 21:08:03 +0000 Subject: [PATCH 2/5] Update common Docker engineering infrastructure from mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:91cd21162bbc2b78a5aa3763fa68c5a01f9308d99244afaa629aa21780c7e926 --- eng/docker-tools/templates/variables/docker-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/docker-tools/templates/variables/docker-images.yml b/eng/docker-tools/templates/variables/docker-images.yml index b98ad60138..f72d6d9709 100644 --- a/eng/docker-tools/templates/variables/docker-images.yml +++ b/eng/docker-tools/templates/variables/docker-images.yml @@ -1,5 +1,5 @@ variables: - imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:727dd6441aaa3ee866c778f8d89bcfdec612dbebe91172f4b234a5e81dc7f3c2 + imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:91cd21162bbc2b78a5aa3763fa68c5a01f9308d99244afaa629aa21780c7e926 imageNames.imageBuilder: $(imageNames.imageBuilderName) imageNames.imageBuilder.withrepo: imagebuilder-withrepo:$(Build.BuildId)-$(System.JobId) imageNames.testRunner: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux3.0-docker-testrunner From 3f24de7cf3ab77b660470018045c11d12a485ff2 Mon Sep 17 00:00:00 2001 From: "net-containers-bot[bot]" <307772199+net-containers-bot[bot]@users.noreply.github.com> Date: Tue, 27 Oct 2026 01:50:49 +0000 Subject: [PATCH 3/5] Update common Docker engineering infrastructure from mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:c3b35a36ccb0e6c4d7f15dd4527a63fdee172246e15f727852b2c207b50fc766 --- eng/docker-tools/templates/variables/docker-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/docker-tools/templates/variables/docker-images.yml b/eng/docker-tools/templates/variables/docker-images.yml index f72d6d9709..cef49a3cff 100644 --- a/eng/docker-tools/templates/variables/docker-images.yml +++ b/eng/docker-tools/templates/variables/docker-images.yml @@ -1,5 +1,5 @@ variables: - imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:91cd21162bbc2b78a5aa3763fa68c5a01f9308d99244afaa629aa21780c7e926 + imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:c3b35a36ccb0e6c4d7f15dd4527a63fdee172246e15f727852b2c207b50fc766 imageNames.imageBuilder: $(imageNames.imageBuilderName) imageNames.imageBuilder.withrepo: imagebuilder-withrepo:$(Build.BuildId)-$(System.JobId) imageNames.testRunner: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux3.0-docker-testrunner From 0bc6990c38bb581786cb9f90f93aadf880476e40 Mon Sep 17 00:00:00 2001 From: "net-containers-bot[bot]" <307772199+net-containers-bot[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2026 17:56:17 +0000 Subject: [PATCH 4/5] Update common Docker engineering infrastructure from mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:11b7a7c4ea41684216766abee13fa31465a41990806bee021d262988970aa91d --- .../stages/dotnet/build-and-test.yml | 48 +++++++++++++++++-- .../stages/dotnet/build-test-publish-repo.yml | 4 ++ .../templates/stages/dotnet/publish.yml | 22 ++++++++- .../templates/variables/docker-images.yml | 2 +- 4 files changed, 69 insertions(+), 7 deletions(-) diff --git a/eng/docker-tools/templates/stages/dotnet/build-and-test.yml b/eng/docker-tools/templates/stages/dotnet/build-and-test.yml index 81eee2c9e7..46302747d1 100644 --- a/eng/docker-tools/templates/stages/dotnet/build-and-test.yml +++ b/eng/docker-tools/templates/stages/dotnet/build-and-test.yml @@ -3,6 +3,8 @@ parameters: linuxAmd64Pool: "" + # Optional pool priority: High, Medium, or Low. Empty leaves pool defaults unchanged. + poolPriority: "" # Custom init steps for all jobs customInitSteps: [] @@ -77,15 +79,31 @@ stages: # Linux AMD64 linuxAmd64Pool: ${{ if ne(parameters.linuxAmd64Pool, '') }}: - ${{ parameters.linuxAmd64Pool }} + ${{ if ne(parameters.poolPriority, '') }}: + ${{ each property in parameters.linuxAmd64Pool }}: + ${{ if ne(property.key, 'demands') }}: + ${{ property.key }}: ${{ property.value }} + demands: + - ${{ if parameters.linuxAmd64Pool.demands }}: + - ${{ parameters.linuxAmd64Pool.demands }} + - Priority -equals ${{ parameters.poolPriority }} + ${{ else }}: + ${{ parameters.linuxAmd64Pool }} ${{ elseif eq(variables['System.TeamProject'], parameters.publicProjectName) }}: name: $(linuxAmd64PublicPoolName) - demands: ImageOverride -equals $(linuxAmd64PublicPoolImage) + ${{ if ne(parameters.poolPriority, '') }}: + demands: + - ImageOverride -equals $(linuxAmd64PublicPoolImage) + - Priority -equals ${{ parameters.poolPriority }} + ${{ else }}: + demands: ImageOverride -equals $(linuxAmd64PublicPoolImage) os: linux ${{ elseif eq(variables['System.TeamProject'], parameters.internalProjectName) }}: name: $(linuxAmd64InternalPoolName) image: $(linuxAmd64InternalPoolImage) os: linux + ${{ if ne(parameters.poolPriority, '') }}: + demands: Priority -equals ${{ parameters.poolPriority }} # Linux Arm64 linuxArm64Pool: @@ -93,10 +111,17 @@ stages: hostArchitecture: Arm64 ${{ if eq(variables['System.TeamProject'], parameters.publicProjectName) }}: name: $(linuxArm64PublicPoolName) - demands: ImageOverride -equals $(linuxArm64PublicPoolImage) + ${{ if ne(parameters.poolPriority, '') }}: + demands: + - ImageOverride -equals $(linuxArm64PublicPoolImage) + - Priority -equals ${{ parameters.poolPriority }} + ${{ else }}: + demands: ImageOverride -equals $(linuxArm64PublicPoolImage) ${{ if eq(variables['System.TeamProject'], parameters.internalProjectName) }}: name: $(linuxArm64InternalPoolName) image: $(linuxArm64InternalPoolImage) + ${{ if ne(parameters.poolPriority, '') }}: + demands: Priority -equals ${{ parameters.poolPriority }} # Linux Arm32 linuxArm32Pool: @@ -104,10 +129,17 @@ stages: hostArchitecture: Arm64 ${{ if eq(variables['System.TeamProject'], parameters.publicProjectName) }}: name: $(linuxArm32PublicPoolName) - demands: ImageOverride -equals $(linuxArm32PublicPoolImage) + ${{ if ne(parameters.poolPriority, '') }}: + demands: + - ImageOverride -equals $(linuxArm32PublicPoolImage) + - Priority -equals ${{ parameters.poolPriority }} + ${{ else }}: + demands: ImageOverride -equals $(linuxArm32PublicPoolImage) ${{ if eq(variables['System.TeamProject'], parameters.internalProjectName) }}: name: $(linuxArm32InternalPoolName) image: $(linuxArm32InternalPoolImage) + ${{ if ne(parameters.poolPriority, '') }}: + demands: Priority -equals ${{ parameters.poolPriority }} # Windows Server 2016 windows2016Pool: @@ -117,6 +149,8 @@ stages: image: $(windowsServer2016PublicPoolImage) ${{ if eq(variables['System.TeamProject'], parameters.internalProjectName) }}: image: $(windowsServer2016InternalPoolImage) + ${{ if ne(parameters.poolPriority, '') }}: + demands: Priority -equals ${{ parameters.poolPriority }} # Windows Server 2019 (1809) windows1809Pool: @@ -126,6 +160,8 @@ stages: image: $(windowsServer2019PublicPoolImage) ${{ if eq(variables['System.TeamProject'], parameters.internalProjectName) }}: image: $(windowsServer2019InternalPoolImage) + ${{ if ne(parameters.poolPriority, '') }}: + demands: Priority -equals ${{ parameters.poolPriority }} # Windows Server 2022 windows2022Pool: @@ -135,6 +171,8 @@ stages: image: $(windowsServer2022PublicPoolImage) ${{ if eq(variables['System.TeamProject'], parameters.internalProjectName) }}: image: $(windowsServer2022InternalPoolImage) + ${{ if ne(parameters.poolPriority, '') }}: + demands: Priority -equals ${{ parameters.poolPriority }} # Windows Server 2025 windows2025Pool: @@ -144,3 +182,5 @@ stages: image: $(windowsServer2025PublicPoolImage) ${{ if eq(variables['System.TeamProject'], parameters.internalProjectName) }}: image: $(windowsServer2025InternalPoolImage) + ${{ if ne(parameters.poolPriority, '') }}: + demands: Priority -equals ${{ parameters.poolPriority }} diff --git a/eng/docker-tools/templates/stages/dotnet/build-test-publish-repo.yml b/eng/docker-tools/templates/stages/dotnet/build-test-publish-repo.yml index 9102d994cb..df8f6dbd0a 100644 --- a/eng/docker-tools/templates/stages/dotnet/build-test-publish-repo.yml +++ b/eng/docker-tools/templates/stages/dotnet/build-test-publish-repo.yml @@ -2,6 +2,8 @@ parameters: linuxAmd64Pool: "" + # Optional pool priority: High, Medium, or Low. Empty leaves pool defaults unchanged. + poolPriority: "" # Custom init steps for all jobs customInitSteps: [] @@ -48,6 +50,7 @@ stages: - template: /eng/docker-tools/templates/stages/dotnet/build-and-test.yml@self parameters: linuxAmd64Pool: ${{ parameters.linuxAmd64Pool }} + poolPriority: ${{ parameters.poolPriority }} # Pre-build customGenerateMatrixInitSteps: ${{ parameters.customGenerateMatrixInitSteps }} customCopyBaseImagesInitSteps: ${{ parameters.customCopyBaseImagesInitSteps }} @@ -79,6 +82,7 @@ stages: - template: /eng/docker-tools/templates/stages/dotnet/publish.yml@self parameters: pool: ${{ parameters.linuxAmd64Pool }} + poolPriority: ${{ parameters.poolPriority }} customPublishInitSteps: ${{ parameters.customPublishInitSteps }} customInitSteps: ${{ parameters.customInitSteps }} internalProjectName: ${{ parameters.internalProjectName }} diff --git a/eng/docker-tools/templates/stages/dotnet/publish.yml b/eng/docker-tools/templates/stages/dotnet/publish.yml index 5cac237b95..f7eaba798f 100644 --- a/eng/docker-tools/templates/stages/dotnet/publish.yml +++ b/eng/docker-tools/templates/stages/dotnet/publish.yml @@ -6,6 +6,8 @@ parameters: publicProjectName: null publishConfig: null pool: "" + # Optional pool priority: High, Medium, or Low. Empty leaves pool defaults unchanged. + poolPriority: "" isStandalonePublish: false customPublishInitSteps: [] customInitSteps: [] @@ -53,12 +55,28 @@ stages: pool: ${{ if ne(parameters.pool, '') }}: - ${{ parameters.pool }} + ${{ if ne(parameters.poolPriority, '') }}: + ${{ each property in parameters.pool }}: + ${{ if ne(property.key, 'demands') }}: + ${{ property.key }}: ${{ property.value }} + demands: + - ${{ if parameters.pool.demands }}: + - ${{ parameters.pool.demands }} + - Priority -equals ${{ parameters.poolPriority }} + ${{ else }}: + ${{ parameters.pool }} ${{ elseif eq(variables['System.TeamProject'], parameters.publicProjectName) }}: name: $(linuxAmd64PublicPoolName) - demands: ImageOverride -equals $(linuxAmd64PublicPoolImage) + ${{ if ne(parameters.poolPriority, '') }}: + demands: + - ImageOverride -equals $(linuxAmd64PublicPoolImage) + - Priority -equals ${{ parameters.poolPriority }} + ${{ else }}: + demands: ImageOverride -equals $(linuxAmd64PublicPoolImage) os: linux ${{ elseif eq(variables['System.TeamProject'], parameters.internalProjectName) }}: name: $(linuxAmd64InternalPoolName) image: $(linuxAmd64InternalPoolImage) os: linux + ${{ if ne(parameters.poolPriority, '') }}: + demands: Priority -equals ${{ parameters.poolPriority }} diff --git a/eng/docker-tools/templates/variables/docker-images.yml b/eng/docker-tools/templates/variables/docker-images.yml index cef49a3cff..a422a2be9f 100644 --- a/eng/docker-tools/templates/variables/docker-images.yml +++ b/eng/docker-tools/templates/variables/docker-images.yml @@ -1,5 +1,5 @@ variables: - imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:c3b35a36ccb0e6c4d7f15dd4527a63fdee172246e15f727852b2c207b50fc766 + imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:11b7a7c4ea41684216766abee13fa31465a41990806bee021d262988970aa91d imageNames.imageBuilder: $(imageNames.imageBuilderName) imageNames.imageBuilder.withrepo: imagebuilder-withrepo:$(Build.BuildId)-$(System.JobId) imageNames.testRunner: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux3.0-docker-testrunner From 6e5d8f0b349e8eb3ac482fccc762485d33abad7a Mon Sep 17 00:00:00 2001 From: "net-containers-bot[bot]" <307772199+net-containers-bot[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2026 05:08:12 +0000 Subject: [PATCH 5/5] Update common Docker engineering infrastructure from mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:b9102ccb33a9819e6cef1a618803b1e61a82b6715c8540e3fc757f10137a8c57 --- eng/docker-tools/templates/variables/docker-images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/docker-tools/templates/variables/docker-images.yml b/eng/docker-tools/templates/variables/docker-images.yml index a422a2be9f..2a64cc79a3 100644 --- a/eng/docker-tools/templates/variables/docker-images.yml +++ b/eng/docker-tools/templates/variables/docker-images.yml @@ -1,5 +1,5 @@ variables: - imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:11b7a7c4ea41684216766abee13fa31465a41990806bee021d262988970aa91d + imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder@sha256:b9102ccb33a9819e6cef1a618803b1e61a82b6715c8540e3fc757f10137a8c57 imageNames.imageBuilder: $(imageNames.imageBuilderName) imageNames.imageBuilder.withrepo: imagebuilder-withrepo:$(Build.BuildId)-$(System.JobId) imageNames.testRunner: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux3.0-docker-testrunner