Skip to content

Skip macOS quarantined-test job on PRs - #67767

Merged
wtgodbe merged 1 commit into
dotnet:mainfrom
wtgodbe:wtgodbe/skip-macos-quarantine-pr
Jul 14, 2026
Merged

Skip macOS quarantined-test job on PRs#67767
wtgodbe merged 1 commit into
dotnet:mainfrom
wtgodbe:wtgodbe/skip-macos-quarantine-pr

Conversation

@wtgodbe

@wtgodbe wtgodbe commented Jul 13, 2026

Copy link
Copy Markdown
Member

Summary

Skips the Tests: macOS quarantined-test job on PR builds of the quarantine pipeline (.azure/pipelines/quarantined-pr.yml). It still runs on main via the scheduled (every-4-hours) and batched CI triggers, so we keep macOS quarantine coverage on the branch.

Why

Over the last 7 days of def 86, the macOS job was by far the dominant failure:

  • 72 failed builds had Tests: macOS fail; 59 of those were the "ran longer than the maximum time of 150 minutes" timeout.
  • Every failed rolling build (18/18) failed only on macOS, all via the 150-min timeout — i.e. ~half of all main builds hard-fail on this hang.
  • The hang is a fork()/exec() deadlock in the ServerComparison functional-test deploy path (MSBuild → Process.Start → Interop.Sys.ForkAndExecProcess), not a test failure. It reproduces on native Intel hosted macos-15 agents.
  • When the job does complete, the macOS agent leg only runs ~6–7 quarantined tests — so blocking PRs for up to 150 minutes on it is a poor tradeoff.

Given the low test yield and the high failure/timeout rate, skipping it on PRs removes a frequent 150-minute drag on PR validation while preserving macOS coverage on main.

Change

Wraps the macOS job in - ${{ if notin(variables['Build.Reason'], 'PullRequest') }}: (an established pattern in this repo, e.g. ci-public.yml, ci-unofficial.yml).

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

Related: dotnet/runtime#89272

The macOS job in the quarantine pipeline hangs and hits its 150-minute
timeout on roughly half of all runs -- a fork/exec deadlock in the
ServerComparison functional-test deploy path (not a test failure). When it
does complete, the macOS agent job only runs ~6-7 quarantined tests. This
made the "Tests: macOS" leg the dominant failure in the pipeline and a
frequent 150-min drag on PR validation.

Skip the job on PR builds while keeping it on main via the scheduled and
batched CI triggers, so we retain macOS quarantine coverage on the branch
without blocking/​slowing PRs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c6695e66-ef29-4591-8ca6-fc494164b1ca
Copilot AI review requested due to automatic review settings July 13, 2026 21:37
@wtgodbe
wtgodbe requested a review from a team as a code owner July 13, 2026 21:37

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

This PR updates the quarantine Azure Pipelines definition to avoid running the macOS quarantined-test job on Pull Request builds, reducing frequent 150-minute timeouts while retaining macOS quarantine coverage on main via scheduled and CI triggers.

Changes:

  • Wraps the Tests: macOS quarantined-test job in a template-time condition that excludes Build.Reason == PullRequest.
  • Adds in-file rationale documenting why macOS is skipped on PRs.

@wtgodbe

wtgodbe commented Jul 13, 2026

Copy link
Copy Markdown
Member Author

Related: dotnet/runtime#89272

@wtgodbe
wtgodbe merged commit 0eb7bd1 into dotnet:main Jul 14, 2026
26 checks passed
@dotnet-milestone-bot dotnet-milestone-bot Bot added this to the 11.0-preview7 milestone Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants