From 6e086b85fd0522c2be22ecae75079e486414162c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Tue, 15 Sep 2026 10:57:53 +0200 Subject: [PATCH] [release/11.0] Fix internal Helix pipeline credentials and queue selection Backport #133885, #133704, and #133878. Preserve release Windows queue literals and container image digests; omit the main-only Windows alias migration hunk. Upstream commits: 8d1cc30ef79c0531c11e85d1e6bdcb45fa69fdb7 bd6d336bfd95a333e8b3f22f26259bbb659974cf cbe94bfd09d7010741750285eddbf1791a3c1aa7 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../wasi-wasm-coreclr-build-only.yml | 2 +- .../wasi-wasm-coreclr-runtime-tests.yml | 4 +- .../coreclr/templates/helix-queues-setup.yml | 7 +++- .../installer/helix-queues-setup.yml | 13 ++++++- .../libraries/helix-queues-setup.yml | 38 +++++++++++++++---- eng/pipelines/performance/perf.yml | 2 +- eng/pipelines/runtime.yml | 2 +- 7 files changed, 52 insertions(+), 16 deletions(-) diff --git a/eng/pipelines/common/templates/wasi-wasm-coreclr-build-only.yml b/eng/pipelines/common/templates/wasi-wasm-coreclr-build-only.yml index e8593a9986cee3..84a12555b34eff 100644 --- a/eng/pipelines/common/templates/wasi-wasm-coreclr-build-only.yml +++ b/eng/pipelines/common/templates/wasi-wasm-coreclr-build-only.yml @@ -16,7 +16,7 @@ jobs: # src/tests CoreCLR runtime tests on Helix under wasmtime lives in # wasi-wasm-coreclr-runtime-tests.yml (the 'wasi_wasm' Helix queue is # already mapped to the ubuntu-26.04-helix-webassembly-amd64 image, -# which ships wasmtime — see eng/pipelines/libraries/helix-queues-setup.yml). +# which ships wasmtime — see eng/pipelines/coreclr/templates/helix-queues-setup.yml). # - template: /eng/pipelines/common/platform-matrix.yml parameters: diff --git a/eng/pipelines/common/templates/wasi-wasm-coreclr-runtime-tests.yml b/eng/pipelines/common/templates/wasi-wasm-coreclr-runtime-tests.yml index c9a025e8a7cb4d..d90820940a987a 100644 --- a/eng/pipelines/common/templates/wasi-wasm-coreclr-runtime-tests.yml +++ b/eng/pipelines/common/templates/wasi-wasm-coreclr-runtime-tests.yml @@ -15,13 +15,13 @@ jobs: # testBuildArgs below). # # Merged-runner mode; xharness dispatches via helixpublishwitharcade.proj. -# Reuses the wasi_wasm helix queue (ubuntu-26.04-helix-webassembly-amd64). +# Reuses the CoreCLR browser/WASI Helix queue (ubuntu-26.04-helix-webassembly-amd64). # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release runtimeFlavor: coreclr platforms: ${{ parameters.platforms }} diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 62d9c24a9b7d79..4d574784c1b2e7 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -30,6 +30,9 @@ jobs: pool: ${{ parameters.pool }} platform: ${{ parameters.platform }} shouldContinueOnError: ${{ parameters.shouldContinueOnError }} + + # IMPORTANT: Select public/internal queue aliases explicitly. Runtime macros expand too late + # for helix.yml to strip the .Open suffix at template expansion time for internal runs. helixQueues: # iOS Simulator/Mac Catalyst arm64 @@ -67,8 +70,8 @@ jobs: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - Ubuntu.2204.Amd64.Android.29 - # Browser wasm - - ${{ if eq(parameters.platform, 'browser_wasm') }}: + # Browser and WASI wasm + - ${{ if in(parameters.platform, 'browser_wasm', 'wasi_wasm') }}: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - (Ubuntu.2604.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64@sha256:0be8725e08b6d0f58ec0290f3f3b70c449123e78b2b33853e9049df84b912fa8 - ${{ if eq(variables['System.TeamProject'], 'internal') }}: diff --git a/eng/pipelines/installer/helix-queues-setup.yml b/eng/pipelines/installer/helix-queues-setup.yml index 99232a1897a518..b3637513971a95 100644 --- a/eng/pipelines/installer/helix-queues-setup.yml +++ b/eng/pipelines/installer/helix-queues-setup.yml @@ -18,6 +18,9 @@ steps: osGroup: ${{ parameters.osGroup }} osSubgroup: ${{ parameters.osSubgroup }} useHelixMonitor: ${{ parameters.useHelixMonitor }} + + # IMPORTANT: Select public/internal queue aliases explicitly. Runtime macros expand too late + # for helix.yml to strip the .Open suffix at template expansion time for internal runs. helixQueues: # Linux arm @@ -42,11 +45,17 @@ steps: # OSX arm64 - ${{ if eq(parameters.platform, 'osx_arm64') }}: - - $(helix_macos_arm64) + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - $(helix_macos_arm64) + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - $(helix_macos_arm64_latest_internal) # OSX x64 - ${{ if eq(parameters.platform, 'osx_x64') }}: - - $(helix_macos_x64) + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - $(helix_macos_x64) + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - $(helix_macos_x64_latest_internal) # windows x64 - ${{ if eq(parameters.platform, 'windows_x64') }}: diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 5f0bd1f030589b..23449655324140 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -21,6 +21,9 @@ jobs: pool: ${{ parameters.pool }} platform: ${{ parameters.platform }} shouldContinueOnError: ${{ parameters.shouldContinueOnError }} + + # IMPORTANT: Select public/internal queue aliases explicitly. Runtime macros expand too late + # for helix.yml to strip the .Open suffix at template expansion time for internal runs. helixQueues: # Linux arm @@ -81,11 +84,17 @@ jobs: # OSX arm64 - ${{ if eq(parameters.platform, 'osx_arm64') }}: - - $(helix_macos_arm64) + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - $(helix_macos_arm64) + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - $(helix_macos_arm64_latest_internal) # OSX x64 - ${{ if eq(parameters.platform, 'osx_x64') }}: - - $(helix_macos_x64) + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - $(helix_macos_x64) + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - $(helix_macos_x64_latest_internal) # Android # Use the Ubuntu-based Android queue for x86/x64/bionic_x64 on all projects, @@ -101,19 +110,31 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'iossimulator_arm64', 'tvossimulator_arm64', 'maccatalyst_arm64') }}: - - $(helix_macos_ios_simulator_arm64) + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - $(helix_macos_ios_simulator_arm64) + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - $(helix_macos_ios_simulator_arm64_internal) # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: - - $(helix_macos_ios_simulator_x64) + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - $(helix_macos_ios_simulator_x64) + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - $(helix_macos_ios_simulator_x64_internal) # iOS devices - ${{ if in(parameters.platform, 'ios_arm64') }}: - - $(helix_macos_ios_device) + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - $(helix_macos_ios_device) + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - $(helix_macos_ios_device_internal) # tvOS devices - ${{ if in(parameters.platform, 'tvos_arm64') }}: - - $(helix_macos_tvos_device) + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - $(helix_macos_tvos_device) + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - $(helix_macos_tvos_device_internal) # windows x64 - ${{ if eq(parameters.platform, 'windows_x64') }}: @@ -190,6 +211,9 @@ jobs: # Browser WebAssembly macOS - ${{ if eq(parameters.platform, 'browser_wasm_mac') }}: - - $(helix_macos_arm64) + - ${{ if eq(variables['System.TeamProject'], 'public') }}: + - $(helix_macos_arm64) + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - $(helix_macos_arm64_latest_internal) ${{ insert }}: ${{ parameters.jobParameters }} diff --git a/eng/pipelines/performance/perf.yml b/eng/pipelines/performance/perf.yml index d00d47aaf26752..d585dadcd2649a 100644 --- a/eng/pipelines/performance/perf.yml +++ b/eng/pipelines/performance/perf.yml @@ -57,7 +57,7 @@ extends: - stage: Build variables: # The standalone monitor does not inherit the submitter jobs' variable groups. - - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNet-HelixApi-Access jobs: diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 90b70dd951d344..1c8a178f3ce206 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -67,7 +67,7 @@ extends: - stage: Build variables: # The standalone monitor does not inherit the submitter jobs' variable groups. - - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNet-HelixApi-Access jobs: - ${{ if eq(variables['enableHelixJobMonitor'], true) }}: