From 9b1a48d00dbfd0c04fdc1c8c16f43d43d8c9ea70 Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Wed, 11 Feb 2026 11:53:59 +0100 Subject: [PATCH 01/11] Try remove container --- eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml index 3f260420a14a0e..ec59e3aa47bf25 100644 --- a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml +++ b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml @@ -102,7 +102,6 @@ extends: parameters: buildArgs: -s clr.spmi -c $(_BuildConfig) archParameter: -arch x64 - container: linux_x64 displayName: Build SuperPMI - template: /eng/pipelines/coreclr/templates/build-native-test-assets-step.yml - template: /eng/pipelines/common/upload-artifact-step.yml @@ -221,7 +220,6 @@ extends: parameters: buildArgs: -s clr.spmi -c $(_BuildConfig) archParameter: -arch x64 - container: linux_x64 displayName: Build SuperPMI - template: /eng/pipelines/coreclr/templates/build-native-test-assets-step.yml - template: /eng/pipelines/common/upload-artifact-step.yml From b65287b80fb32f45b03b3565133114128cc56c04 Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Wed, 11 Feb 2026 13:08:37 +0100 Subject: [PATCH 02/11] Revert "Try remove container" This reverts commit 9b1a48d00dbfd0c04fdc1c8c16f43d43d8c9ea70. --- eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml index ec59e3aa47bf25..3f260420a14a0e 100644 --- a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml +++ b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml @@ -102,6 +102,7 @@ extends: parameters: buildArgs: -s clr.spmi -c $(_BuildConfig) archParameter: -arch x64 + container: linux_x64 displayName: Build SuperPMI - template: /eng/pipelines/coreclr/templates/build-native-test-assets-step.yml - template: /eng/pipelines/common/upload-artifact-step.yml @@ -220,6 +221,7 @@ extends: parameters: buildArgs: -s clr.spmi -c $(_BuildConfig) archParameter: -arch x64 + container: linux_x64 displayName: Build SuperPMI - template: /eng/pipelines/coreclr/templates/build-native-test-assets-step.yml - template: /eng/pipelines/common/upload-artifact-step.yml From 6d97ba4abcb00068b8176a68bd881d0a1e87e03b Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Wed, 11 Feb 2026 13:09:28 +0100 Subject: [PATCH 03/11] Revert "Fix failures in internal validation pipeline (#123452)" This reverts commit 5097397670bb0d461d939644f66256258c0f1186. --- eng/pipelines/common/global-build-job.yml | 22 +++++++++++- .../common/templates/runtimes/xplat-job.yml | 2 -- .../coreclr/templates/helix-queues-setup.yml | 35 ++++--------------- .../diagnostics/runtime-diag-job.yml | 22 +++++++++++- .../libraries/helix-queues-setup.yml | 6 ++-- eng/pipelines/libraries/run-test-job.yml | 25 +++++++++++-- 6 files changed, 73 insertions(+), 39 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index f6d09760772a26..afdbeff1c3154e 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -172,7 +172,27 @@ jobs: - ${{ if and(eq(parameters.isOfficialBuild, true), notin(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator')) }}: - template: /eng/pipelines/common/restore-internal-tools.yml - - template: /eng/common/${{ parameters.templatePath }}/steps/enable-internal-sources.yml + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.hostedOs, 'windows')) }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ else }}: + - task: PowerShell@2 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1 + arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + # Run the NuGetAuthenticate task after the internal feeds are added to the nuget.config + # This ensures that creds are set appropriately for all feeds in the config, and that the + # credential provider is installed. + - task: NuGetAuthenticate@1 - ${{ if in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator') }}: - script: $(Build.SourcesDirectory)/eng/common/native/install-dependencies.sh ${{ parameters.osGroup }} diff --git a/eng/pipelines/common/templates/runtimes/xplat-job.yml b/eng/pipelines/common/templates/runtimes/xplat-job.yml index 0e09b929828aed..00e8dfb520a101 100644 --- a/eng/pipelines/common/templates/runtimes/xplat-job.yml +++ b/eng/pipelines/common/templates/runtimes/xplat-job.yml @@ -109,6 +109,4 @@ jobs: fetchDepth: $(checkoutFetchDepth) fetchTags: false - - template: /eng/common/${{ parameters.templatePath }}/steps/enable-internal-sources.yml - - ${{ parameters.steps }} diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 6069993b2d6089..4718f6d07a1fc8 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -34,52 +34,31 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'iossimulator_arm64', 'tvossimulator_arm64', 'maccatalyst_arm64') }}: - - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - OSX.15.Arm64.Open - - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - OSX.15.Arm64 + - OSX.15.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: - - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - OSX.15.Amd64.Open - - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - OSX.15.Amd64 + - OSX.15.Amd64.Open # Android arm64 - ${{ if in(parameters.platform, 'android_arm64') }}: - - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - Windows.11.Amd64.Android.Open - - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - Windows.11.Amd64.Android + - Windows.11.Amd64.Android.Open # Android x64 - ${{ if in(parameters.platform, 'android_x64') }}: - - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - Ubuntu.2204.Amd64.Android.29.Open - - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - Ubuntu.2204.Amd64.Android.29 + - Ubuntu.2204.Amd64.Android.29.Open # Browser wasm - ${{ if eq(parameters.platform, 'browser_wasm') }}: - - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - (Ubuntu.2404.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-24.04-helix-webassembly-amd64 - - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - (Ubuntu.2404.Amd64)AzureLinux.3.Amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-24.04-helix-webassembly-amd64 + - (Ubuntu.2404.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-24.04-helix-webassembly-amd64 # iOS devices - ${{ if in(parameters.platform, 'ios_arm64') }}: - - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - osx.15.amd64.iphone.open - - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - osx.15.amd64.iphone + - osx.15.amd64.iphone.open # tvOS devices - ${{ if in(parameters.platform, 'tvos_arm64') }}: - - ${{ if eq(variables['System.TeamProject'], 'public') }}: - - osx.15.amd64.appletv.open - - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - osx.15.amd64.appletv + - osx.15.amd64.appletv.open # Linux arm - ${{ if eq(parameters.platform, 'linux_arm') }}: diff --git a/eng/pipelines/diagnostics/runtime-diag-job.yml b/eng/pipelines/diagnostics/runtime-diag-job.yml index a9421e29b6199d..85d644e851a8ac 100644 --- a/eng/pipelines/diagnostics/runtime-diag-job.yml +++ b/eng/pipelines/diagnostics/runtime-diag-job.yml @@ -147,7 +147,27 @@ jobs: - ${{ if and(eq(parameters.isOfficialBuild, true), notin(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator')) }}: - template: /eng/pipelines/common/restore-internal-tools.yml - - template: /eng/common/${{ parameters.templatePath }}/steps/enable-internal-sources.yml + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.hostedOs, 'windows')) }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ else }}: + - task: PowerShell@2 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1 + arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + # Run the NuGetAuthenticate task after the internal feeds are added to the nuget.config + # This ensures that creds are set appropriately for all feeds in the config, and that the + # credential provider is installed. + - task: NuGetAuthenticate@1 - ${{ if in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator') }}: - script: $(Build.SourcesDirectory)/eng/common/native/install-dependencies.sh ${{ parameters.osGroup }} diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 3a018bc981d364..6438a288f70681 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -85,11 +85,9 @@ jobs: - $(helix_macos_x64) # Android - # Always use the Ubuntu-based Android queue for internal validation as there is no internal equivalent of - # the Windows.11.Amd64.Android.Open queue. - - ${{ if or(eq(variables['System.TeamProject'], 'internal'), in(parameters.platform, 'android_x86', 'android_x64', 'linux_bionic_x64')) }}: + - ${{ if in(parameters.platform, 'android_x86', 'android_x64', 'linux_bionic_x64') }}: - Ubuntu.2204.Amd64.Android.29.Open - - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.platform, 'android_arm', 'android_arm64', 'linux_bionic_arm', 'linux_bionic_arm64')) }}: + - ${{ if in(parameters.platform, 'android_arm', 'android_arm64', 'linux_bionic_arm', 'linux_bionic_arm64') }}: - Windows.11.Amd64.Android.Open # iOS Simulator/Mac Catalyst arm64 diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index 75f35341da2d97..ed826732c819dd 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -26,10 +26,9 @@ parameters: helixArtifactsName: '' unifiedBuildNameSuffix: '' unifiedBuildConfigOverride: '' - templatePath: 'templates' jobs: - - template: /eng/common/${{ parameters.templatePath }}/job/job.yml + - template: /eng/common/templates/job/job.yml parameters: enablePublishBuildArtifacts: true timeoutInMinutes: ${{ parameters.timeoutInMinutes }} @@ -89,7 +88,27 @@ jobs: fetchDepth: $(checkoutFetchDepth) fetchTags: false - - template: /eng/common/${{ parameters.templatePath }}/steps/enable-internal-sources.yml + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - ${{ if ne(parameters.osGroup, 'windows') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ if eq(parameters.osGroup, 'windows') }}: + - task: PowerShell@2 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1 + arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + # Run the NuGetAuthenticate task after the internal feeds are added to the nuget.config + # This ensures that creds are set appropriately for all feeds in the config, and that the + # credential provider is installed. + - task: NuGetAuthenticate@1 - ${{ if in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator') }}: - script: $(Build.SourcesDirectory)/eng/common/native/install-dependencies.sh ${{ parameters.osGroup }} From 63a705a0f1386f62d82a249952e1aa5ad68b0f7f Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Wed, 11 Feb 2026 13:38:40 +0100 Subject: [PATCH 04/11] Reapply "Fix failures in internal validation pipeline (#123452)" This reverts commit 6d97ba4abcb00068b8176a68bd881d0a1e87e03b. --- eng/pipelines/common/global-build-job.yml | 22 +----------- .../common/templates/runtimes/xplat-job.yml | 2 ++ .../coreclr/templates/helix-queues-setup.yml | 35 +++++++++++++++---- .../diagnostics/runtime-diag-job.yml | 22 +----------- .../libraries/helix-queues-setup.yml | 6 ++-- eng/pipelines/libraries/run-test-job.yml | 25 ++----------- 6 files changed, 39 insertions(+), 73 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index afdbeff1c3154e..f6d09760772a26 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -172,27 +172,7 @@ jobs: - ${{ if and(eq(parameters.isOfficialBuild, true), notin(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator')) }}: - template: /eng/pipelines/common/restore-internal-tools.yml - - ${{ if ne(variables['System.TeamProject'], 'public') }}: - - ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.hostedOs, 'windows')) }}: - - task: Bash@3 - displayName: Setup Private Feeds Credentials - inputs: - filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh - arguments: $(Build.SourcesDirectory)/NuGet.config $Token - env: - Token: $(dn-bot-dnceng-artifact-feeds-rw) - - ${{ else }}: - - task: PowerShell@2 - displayName: Setup Private Feeds Credentials - inputs: - filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1 - arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token - env: - Token: $(dn-bot-dnceng-artifact-feeds-rw) - # Run the NuGetAuthenticate task after the internal feeds are added to the nuget.config - # This ensures that creds are set appropriately for all feeds in the config, and that the - # credential provider is installed. - - task: NuGetAuthenticate@1 + - template: /eng/common/${{ parameters.templatePath }}/steps/enable-internal-sources.yml - ${{ if in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator') }}: - script: $(Build.SourcesDirectory)/eng/common/native/install-dependencies.sh ${{ parameters.osGroup }} diff --git a/eng/pipelines/common/templates/runtimes/xplat-job.yml b/eng/pipelines/common/templates/runtimes/xplat-job.yml index 00e8dfb520a101..0e09b929828aed 100644 --- a/eng/pipelines/common/templates/runtimes/xplat-job.yml +++ b/eng/pipelines/common/templates/runtimes/xplat-job.yml @@ -109,4 +109,6 @@ jobs: fetchDepth: $(checkoutFetchDepth) fetchTags: false + - template: /eng/common/${{ parameters.templatePath }}/steps/enable-internal-sources.yml + - ${{ parameters.steps }} diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 4718f6d07a1fc8..6069993b2d6089 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -34,31 +34,52 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'iossimulator_arm64', 'tvossimulator_arm64', 'maccatalyst_arm64') }}: - - OSX.15.Arm64.Open + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - OSX.15.Arm64.Open + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - OSX.15.Arm64 # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: - - OSX.15.Amd64.Open + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - OSX.15.Amd64.Open + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - OSX.15.Amd64 # Android arm64 - ${{ if in(parameters.platform, 'android_arm64') }}: - - Windows.11.Amd64.Android.Open + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - Windows.11.Amd64.Android.Open + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - Windows.11.Amd64.Android # Android x64 - ${{ if in(parameters.platform, 'android_x64') }}: - - Ubuntu.2204.Amd64.Android.29.Open + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - Ubuntu.2204.Amd64.Android.29.Open + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - Ubuntu.2204.Amd64.Android.29 # Browser wasm - ${{ if eq(parameters.platform, 'browser_wasm') }}: - - (Ubuntu.2404.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-24.04-helix-webassembly-amd64 + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - (Ubuntu.2404.Amd64)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-24.04-helix-webassembly-amd64 + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - (Ubuntu.2404.Amd64)AzureLinux.3.Amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-24.04-helix-webassembly-amd64 # iOS devices - ${{ if in(parameters.platform, 'ios_arm64') }}: - - osx.15.amd64.iphone.open + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - osx.15.amd64.iphone.open + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - osx.15.amd64.iphone # tvOS devices - ${{ if in(parameters.platform, 'tvos_arm64') }}: - - osx.15.amd64.appletv.open + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - osx.15.amd64.appletv.open + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - osx.15.amd64.appletv # Linux arm - ${{ if eq(parameters.platform, 'linux_arm') }}: diff --git a/eng/pipelines/diagnostics/runtime-diag-job.yml b/eng/pipelines/diagnostics/runtime-diag-job.yml index 85d644e851a8ac..a9421e29b6199d 100644 --- a/eng/pipelines/diagnostics/runtime-diag-job.yml +++ b/eng/pipelines/diagnostics/runtime-diag-job.yml @@ -147,27 +147,7 @@ jobs: - ${{ if and(eq(parameters.isOfficialBuild, true), notin(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator')) }}: - template: /eng/pipelines/common/restore-internal-tools.yml - - ${{ if ne(variables['System.TeamProject'], 'public') }}: - - ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.hostedOs, 'windows')) }}: - - task: Bash@3 - displayName: Setup Private Feeds Credentials - inputs: - filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh - arguments: $(Build.SourcesDirectory)/NuGet.config $Token - env: - Token: $(dn-bot-dnceng-artifact-feeds-rw) - - ${{ else }}: - - task: PowerShell@2 - displayName: Setup Private Feeds Credentials - inputs: - filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1 - arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token - env: - Token: $(dn-bot-dnceng-artifact-feeds-rw) - # Run the NuGetAuthenticate task after the internal feeds are added to the nuget.config - # This ensures that creds are set appropriately for all feeds in the config, and that the - # credential provider is installed. - - task: NuGetAuthenticate@1 + - template: /eng/common/${{ parameters.templatePath }}/steps/enable-internal-sources.yml - ${{ if in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator') }}: - script: $(Build.SourcesDirectory)/eng/common/native/install-dependencies.sh ${{ parameters.osGroup }} diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 6438a288f70681..3a018bc981d364 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -85,9 +85,11 @@ jobs: - $(helix_macos_x64) # Android - - ${{ if in(parameters.platform, 'android_x86', 'android_x64', 'linux_bionic_x64') }}: + # Always use the Ubuntu-based Android queue for internal validation as there is no internal equivalent of + # the Windows.11.Amd64.Android.Open queue. + - ${{ if or(eq(variables['System.TeamProject'], 'internal'), in(parameters.platform, 'android_x86', 'android_x64', 'linux_bionic_x64')) }}: - Ubuntu.2204.Amd64.Android.29.Open - - ${{ if in(parameters.platform, 'android_arm', 'android_arm64', 'linux_bionic_arm', 'linux_bionic_arm64') }}: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), in(parameters.platform, 'android_arm', 'android_arm64', 'linux_bionic_arm', 'linux_bionic_arm64')) }}: - Windows.11.Amd64.Android.Open # iOS Simulator/Mac Catalyst arm64 diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index ed826732c819dd..75f35341da2d97 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -26,9 +26,10 @@ parameters: helixArtifactsName: '' unifiedBuildNameSuffix: '' unifiedBuildConfigOverride: '' + templatePath: 'templates' jobs: - - template: /eng/common/templates/job/job.yml + - template: /eng/common/${{ parameters.templatePath }}/job/job.yml parameters: enablePublishBuildArtifacts: true timeoutInMinutes: ${{ parameters.timeoutInMinutes }} @@ -88,27 +89,7 @@ jobs: fetchDepth: $(checkoutFetchDepth) fetchTags: false - - ${{ if ne(variables['System.TeamProject'], 'public') }}: - - ${{ if ne(parameters.osGroup, 'windows') }}: - - task: Bash@3 - displayName: Setup Private Feeds Credentials - inputs: - filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh - arguments: $(Build.SourcesDirectory)/NuGet.config $Token - env: - Token: $(dn-bot-dnceng-artifact-feeds-rw) - - ${{ if eq(parameters.osGroup, 'windows') }}: - - task: PowerShell@2 - displayName: Setup Private Feeds Credentials - inputs: - filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1 - arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token - env: - Token: $(dn-bot-dnceng-artifact-feeds-rw) - # Run the NuGetAuthenticate task after the internal feeds are added to the nuget.config - # This ensures that creds are set appropriately for all feeds in the config, and that the - # credential provider is installed. - - task: NuGetAuthenticate@1 + - template: /eng/common/${{ parameters.templatePath }}/steps/enable-internal-sources.yml - ${{ if in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator') }}: - script: $(Build.SourcesDirectory)/eng/common/native/install-dependencies.sh ${{ parameters.osGroup }} From d0bd09a3d6766b8b02f421338f6fa72348abfe12 Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Wed, 11 Feb 2026 13:41:20 +0100 Subject: [PATCH 05/11] Try legacy credential --- .../coreclr/templates/superpmi-collect-pipeline.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml index 3f260420a14a0e..3b3eb60c6e71a9 100644 --- a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml +++ b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml @@ -98,6 +98,11 @@ extends: timeoutInMinutes: 120 postBuildSteps: # Build CLR assets for x64 as well as the target as we need an x64 mcs + + # Use PAT for NuGet which is needed when specifying container: below + - template: /eng/common/templates/steps/enable-internal-sources.yml + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) - template: /eng/pipelines/common/templates/global-build-step.yml parameters: buildArgs: -s clr.spmi -c $(_BuildConfig) @@ -217,6 +222,10 @@ extends: timeoutInMinutes: 120 postBuildSteps: # Build CLR assets for x64 as well as the target as we need an x64 mcs + # Use PAT for NuGet which is needed when specifying container: below + - template: /eng/common/templates/steps/enable-internal-sources.yml + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) - template: /eng/pipelines/common/templates/global-build-step.yml parameters: buildArgs: -s clr.spmi -c $(_BuildConfig) From 2e07a99f9b13a702545f0e9c9160478c0ecf10cd Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Wed, 11 Feb 2026 13:49:39 +0100 Subject: [PATCH 06/11] Try --- eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml index 3b3eb60c6e71a9..c754f863b02835 100644 --- a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml +++ b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml @@ -223,7 +223,7 @@ extends: postBuildSteps: # Build CLR assets for x64 as well as the target as we need an x64 mcs # Use PAT for NuGet which is needed when specifying container: below - - template: /eng/common/templates/steps/enable-internal-sources.yml + - template: /eng/common/core-templates/steps/enable-internal-sources.yml parameters: legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) - template: /eng/pipelines/common/templates/global-build-step.yml From 433f31c38255aaae266878fedd5a4a2f5add8cef Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Wed, 11 Feb 2026 13:50:36 +0100 Subject: [PATCH 07/11] Try 2 --- eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml index c754f863b02835..48a8512a30931e 100644 --- a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml +++ b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml @@ -100,7 +100,7 @@ extends: # Build CLR assets for x64 as well as the target as we need an x64 mcs # Use PAT for NuGet which is needed when specifying container: below - - template: /eng/common/templates/steps/enable-internal-sources.yml + - template: /eng/common/core-templates/steps/enable-internal-sources.yml parameters: legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) - template: /eng/pipelines/common/templates/global-build-step.yml From 979810aa73dce97d3a38826da19d19c872c35b8a Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Wed, 11 Feb 2026 13:53:51 +0100 Subject: [PATCH 08/11] Remove newline --- eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml index 48a8512a30931e..7132dd0351bd30 100644 --- a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml +++ b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml @@ -98,7 +98,6 @@ extends: timeoutInMinutes: 120 postBuildSteps: # Build CLR assets for x64 as well as the target as we need an x64 mcs - # Use PAT for NuGet which is needed when specifying container: below - template: /eng/common/core-templates/steps/enable-internal-sources.yml parameters: From e4f44cdaa8d1cadfb073f019eb966aba8968b5d7 Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Wed, 11 Feb 2026 13:57:24 +0100 Subject: [PATCH 09/11] Different try --- eng/pipelines/common/global-build-job.yml | 2 ++ .../coreclr/templates/superpmi-collect-pipeline.yml | 8 -------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index f6d09760772a26..16ea6b623f998a 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -173,6 +173,8 @@ jobs: - template: /eng/pipelines/common/restore-internal-tools.yml - template: /eng/common/${{ parameters.templatePath }}/steps/enable-internal-sources.yml + parameters: + legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) - ${{ if in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator') }}: - script: $(Build.SourcesDirectory)/eng/common/native/install-dependencies.sh ${{ parameters.osGroup }} diff --git a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml index 7132dd0351bd30..3f260420a14a0e 100644 --- a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml +++ b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml @@ -98,10 +98,6 @@ extends: timeoutInMinutes: 120 postBuildSteps: # Build CLR assets for x64 as well as the target as we need an x64 mcs - # Use PAT for NuGet which is needed when specifying container: below - - template: /eng/common/core-templates/steps/enable-internal-sources.yml - parameters: - legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) - template: /eng/pipelines/common/templates/global-build-step.yml parameters: buildArgs: -s clr.spmi -c $(_BuildConfig) @@ -221,10 +217,6 @@ extends: timeoutInMinutes: 120 postBuildSteps: # Build CLR assets for x64 as well as the target as we need an x64 mcs - # Use PAT for NuGet which is needed when specifying container: below - - template: /eng/common/core-templates/steps/enable-internal-sources.yml - parameters: - legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) - template: /eng/pipelines/common/templates/global-build-step.yml parameters: buildArgs: -s clr.spmi -c $(_BuildConfig) From 5af0d3a91ac7f13d350659d921c908369486da60 Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Thu, 12 Feb 2026 16:25:11 +0100 Subject: [PATCH 10/11] Try NuGetAuthenticate in container --- eng/pipelines/common/global-build-job.yml | 2 -- eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml | 4 ++++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 16ea6b623f998a..f6d09760772a26 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -173,8 +173,6 @@ jobs: - template: /eng/pipelines/common/restore-internal-tools.yml - template: /eng/common/${{ parameters.templatePath }}/steps/enable-internal-sources.yml - parameters: - legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw) - ${{ if in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator') }}: - script: $(Build.SourcesDirectory)/eng/common/native/install-dependencies.sh ${{ parameters.osGroup }} diff --git a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml index 3f260420a14a0e..76efc2bc545782 100644 --- a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml +++ b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml @@ -98,6 +98,8 @@ extends: timeoutInMinutes: 120 postBuildSteps: # Build CLR assets for x64 as well as the target as we need an x64 mcs + - task: NuGetAuthenticate@1 + target: linux_x64 - template: /eng/pipelines/common/templates/global-build-step.yml parameters: buildArgs: -s clr.spmi -c $(_BuildConfig) @@ -217,6 +219,8 @@ extends: timeoutInMinutes: 120 postBuildSteps: # Build CLR assets for x64 as well as the target as we need an x64 mcs + - task: NuGetAuthenticate@1 + target: linux_x64 - template: /eng/pipelines/common/templates/global-build-step.yml parameters: buildArgs: -s clr.spmi -c $(_BuildConfig) From c4aa5ee43ff8cd237424769d3a1aea0cabc772ff Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Thu, 12 Feb 2026 18:54:32 +0100 Subject: [PATCH 11/11] Add a comment --- .../coreclr/templates/superpmi-collect-pipeline.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml index 76efc2bc545782..a14e5e3b7b1db8 100644 --- a/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml +++ b/eng/pipelines/coreclr/templates/superpmi-collect-pipeline.yml @@ -97,7 +97,9 @@ extends: buildArgs: -s clr+libs+libs.tests -rc $(_BuildConfig) -c Release /p:ArchiveTests=true timeoutInMinutes: 120 postBuildSteps: - # Build CLR assets for x64 as well as the target as we need an x64 mcs + # Build CLR assets for x64 as well as the target as we need an x64 + # mcs. We need to do that in a container, so ensure we can access the + # internal NuGet feeds in that container. - task: NuGetAuthenticate@1 target: linux_x64 - template: /eng/pipelines/common/templates/global-build-step.yml @@ -218,7 +220,9 @@ extends: buildArgs: -s clr+libs+libs.tests -rc $(_BuildConfig) -c Release /p:ArchiveTests=true timeoutInMinutes: 120 postBuildSteps: - # Build CLR assets for x64 as well as the target as we need an x64 mcs + # Build CLR assets for x64 as well as the target as we need an x64 + # mcs. We need to do that in a container, so ensure we can access the + # internal NuGet feeds in that container. - task: NuGetAuthenticate@1 target: linux_x64 - template: /eng/pipelines/common/templates/global-build-step.yml