Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 16 additions & 7 deletions eng/pipelines/libraries/helix-queues-setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,12 @@ jobs:

- ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true))}}:
# inner and outer loop CoreCLR (general set)
# Primary distro for all builds
- (Ubuntu.2604.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-amd64
- (AzureLinux.3.0.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-helix-amd64
- (Centos.10.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-10-helix-amd64
# Additional distros on rolling builds for broader coverage
Copy link

Copilot AI Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comments say “rolling builds”, but in this repo isRollingBuild (from eng/pipelines/libraries/variables.yml) is defined as “not a PullRequest build” (notIn(Build.Reason, 'PullRequest')). That means these extra queues will run for any non-PR build reason (including manual/CI), not just the scheduled rolling builds.

To avoid confusion for future maintainers, consider rewording these comments to match the actual condition (e.g. “non-PR builds”).

Suggested change
# Additional distros on rolling builds for broader coverage
# Additional distros on non-PR builds for broader coverage

Copilot uses AI. Check for mistakes.
- ${{ if eq(variables['isRollingBuild'], true) }}:
Copy link

Copilot AI Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The added distros are gated only on variables['isRollingBuild']. That breaks the jobParameters.includeAllPlatforms escape hatch: callers that explicitly set includeAllPlatforms: true (e.g. NativeAOT outerloop, which is intended to allow PR runs with full coverage) will still not get these additional Linux queues on PR builds because isRollingBuild is false for PR-triggered runs.

Consider updating the condition to include jobParameters.includeAllPlatforms (e.g. or(eq(variables['isRollingBuild'], true), eq(parameters.jobParameters.includeAllPlatforms, true))) so includeAllPlatforms: true continues to mean “run the full queue set” even on PRs.

Suggested change
- ${{ if eq(variables['isRollingBuild'], true) }}:
- ${{ if or(eq(variables['isRollingBuild'], true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:

Copilot uses AI. Check for mistakes.
- (AzureLinux.3.0.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-helix-amd64
- (Centos.10.Amd64.Open)AzureLinux.3.Amd64.Open@mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-10-helix-amd64

# OSX arm64
- ${{ if eq(parameters.platform, 'osx_arm64') }}:
Expand Down Expand Up @@ -125,13 +128,16 @@ jobs:
- ${{ if ne(parameters.jobParameters.testScope, 'outerloop') }}:
- (Windows.10.Amd64.ServerRS5.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2019-helix-amd64
- ${{ if or(ne(parameters.jobParameters.isExtraPlatformsBuild, true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:
- Windows.Amd64.Server2022.Open
# Primary Windows versions for all builds: newest server + Nano (distinct environment)
- Windows.Server2025.Amd64.Open
- Windows.11.Amd64.Client.Open
- ${{ if eq(parameters.jobParameters.testScope, 'outerloop') }}:
- (Windows.10.Amd64.ServerRS5.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2019-helix-amd64
- ${{ if ne(parameters.jobParameters.runtimeFlavor, 'mono') }}:
- (Windows.Nano.1809.Amd64.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:nanoserver-1809-helix-amd64
# Additional Windows versions on rolling builds for broader coverage
- ${{ if eq(variables['isRollingBuild'], true) }}:
- Windows.Amd64.Server2022.Open
- Windows.11.Amd64.Client.Open
- ${{ if eq(parameters.jobParameters.testScope, 'outerloop') }}:
- (Windows.10.Amd64.ServerRS5.Open)windows.10.amd64.serverrs5.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2019-helix-amd64
Comment on lines +135 to +140
Copy link

Copilot AI Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same issue here: the extra Windows queues are conditional only on variables['isRollingBuild'], so jobParameters.includeAllPlatforms: true won’t re-enable Server2022/Win11 (or the outerloop RS5 queue) on PR builds. That changes the meaning of includeAllPlatforms for consumers that use it to force full coverage.

Recommend conditioning these additional queues on or(isRollingBuild, includeAllPlatforms) instead of isRollingBuild alone.

Copilot uses AI. Check for mistakes.

# .NETFramework
- ${{ if eq(parameters.jobParameters.framework, 'net481') }}:
Expand Down Expand Up @@ -173,7 +179,10 @@ jobs:

# Browser WebAssembly windows
- ${{ if in(parameters.platform, 'browser_wasm_win', 'wasi_wasm_win') }}:
- (Windows.Amd64.Server2022.Open)windows.amd64.server2022.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2022-helix-webassembly
# Primary Windows version for all builds
- (Windows.Server2025.Amd64.Open)windows.server2025.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2025-helix-webassembly-amd64
# Additional Windows version on rolling builds
- ${{ if eq(variables['isRollingBuild'], true) }}:
Comment on lines +184 to +185
Copy link

Copilot AI Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The additional Browser WASM Windows queue is now gated only on variables['isRollingBuild'], so jobParameters.includeAllPlatforms: true won’t re-enable Server2022 on PR runs.

If includeAllPlatforms is intended to force full coverage regardless of PR vs non-PR, consider using or(isRollingBuild, includeAllPlatforms) here too.

Suggested change
# Additional Windows version on rolling builds
- ${{ if eq(variables['isRollingBuild'], true) }}:
# Additional Windows version on rolling builds or when all platforms are requested
- ${{ if or(eq(variables['isRollingBuild'], true), eq(parameters.jobParameters.includeAllPlatforms, true)) }}:

Copilot uses AI. Check for mistakes.
- (Windows.Amd64.Server2022.Open)windows.amd64.server2022.open@mcr.microsoft.com/dotnet-buildtools/prereqs:windowsservercore-ltsc2022-helix-webassembly

${{ insert }}: ${{ parameters.jobParameters }}
Loading