Skip to content

CI: re-enable Managed DevOps Pool by default - #3969

Merged
marcschier merged 11 commits into
masterfrom
ci/enable-managed-pool
Jul 17, 2026
Merged

CI: re-enable Managed DevOps Pool by default#3969
marcschier merged 11 commits into
masterfrom
ci/enable-managed-pool

Conversation

@marcschier

Copy link
Copy Markdown
Collaborator

Description

Flip the managedPool parameter default in azure-pipelines.yml from false to true so Windows/Linux jobs route to the netstandard Managed DevOps Pool via ImageOverride demands. macOS jobs continue to run on Microsoft-hosted agents because Managed DevOps Pools does not provide macOS images.

Operators can still uncheck the parameter at queue time to fall back to Microsoft-hosted agents.

Related issues

Follow-up to #3881.

Checklist

  • I have signed the CLA and read the CONTRIBUTING doc.
  • I have added tests that prove my fix is effective or that my feature works and increased code coverage. (N/A — pipeline default only.)
  • I have added all necessary documentation.
  • I have verified that my changes do not introduce (new) build or analyzer warnings. (N/A — no source change.)
  • I ran all tests locally using the UA.slnx solution against at least .net framework and .net 10, and all passed.
  • I fixed all failing and flaky tests in the CI pipelines and all CodeQL warnings.
  • I have addressed all PR feedback received.

Flip the 'managedPool' parameter default from false to true so
Windows/Linux jobs route to the netstandard Managed DevOps Pool via
ImageOverride demands.  Operators can still override to Microsoft-hosted
agents per queue via the pipeline UI.
@marcschier
marcschier marked this pull request as ready for review July 9, 2026 07:14
Copilot AI review requested due to automatic review settings July 9, 2026 07:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot couldn't run its full agentic review because no GitHub Actions runner was available. Make sure your repository has a runner available to run Copilot's review, or add a copilot-setup-steps.yml file specifying one with the runs-on attribute. See the docs for more details.

Re-enables the netstandard Managed DevOps Pool by making the managedPool pipeline parameter default to true, so eligible jobs route to the managed pool unless explicitly disabled at queue time.

Changes:

  • Flip managedPool parameter default from false to true in azure-pipelines.yml.

@marcschier marcschier added the ready Ready to merge once CI Passes label Jul 16, 2026
Replace the all-or-nothing `managedPool` boolean with a `poolMode` enum
(mixed | managed | hosted) and route stages across two pool profiles so
the netstandard Managed DevOps Pool and the Microsoft-hosted agents share
the workload of a single run.

- mixed (default): each stage uses its assigned profile, so both pools run
  in parallel. The two always-concurrent PR stages are split across pools:
  build -> hosted (bigger temp disk for multi-TFM bin trees), testfastpr ->
  managed (fast, image-pinned gate). Full-run stages are balanced ~5/5.
- managed / hosted: global overrides that collapse both profiles onto a
  single pool (all-managed or all-hosted) for emergencies.

The pool switch lives only in the variables block (mgd*/host* profiles),
so stages carry no per-stage conditionals. macOS is unchanged (always
hosted; the managed pool has no macOS images).
@marcschier
marcschier merged commit 55bdb5b into master Jul 17, 2026
114 checks passed
@marcschier
marcschier deleted the ci/enable-managed-pool branch July 17, 2026 10:44
marcschier added a commit that referenced this pull request Jul 17, 2026
Replace the all-or-nothing `managedPool` boolean with a `poolMode` enum
(mixed | managed | hosted) and route stages across two pool profiles so
the netstandard Managed DevOps Pool and the Microsoft-hosted agents share
the workload of a single run.

- mixed (default): each stage uses its assigned profile, so both pools run
  in parallel. The two always-concurrent PR stages are split across pools:
  build -> hosted (bigger temp disk for multi-TFM bin trees), testfastpr ->
  managed (fast, image-pinned gate). Full-run stages are balanced ~5/5.
- managed / hosted: global overrides that collapse both profiles onto a
  single pool (all-managed or all-hosted) for emergencies.

The pool switch lives only in the variables block (mgd*/host* profiles),
so stages carry no per-stage conditionals. macOS is unchanged (always
hosted; the managed pool has no macOS images).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready Ready to merge once CI Passes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants