Skip to content

[ci] Make dnceng-public the default PR pipeline; disable PR triggers on DevDiv pipeline#11578

Open
jonathanpeppers wants to merge 2 commits into
mainfrom
jonathanpeppers/dnceng-public-default-pr
Open

[ci] Make dnceng-public the default PR pipeline; disable PR triggers on DevDiv pipeline#11578
jonathanpeppers wants to merge 2 commits into
mainfrom
jonathanpeppers/dnceng-public-default-pr

Conversation

@jonathanpeppers
Copy link
Copy Markdown
Member

Context

Today PR validation runs on the DevDiv-internal Azure DevOps pipeline Xamarin.Android-PR (defined by build-tools/automation/azure-pipelines.yaml). The dnceng-public pipeline dotnet-android (defined by build-tools/automation/azure-pipelines-public.yaml) already runs the full PR test matrix, but every test stage has been gated on eq(variables['System.PullRequest.IsFork'], 'True') since #11153 ("Only run dnceng-public pipeline for fork PRs"), so it only exercises that matrix for fork PRs.

Build dnceng-public 1443410 (PR #11531, ~2h 18m, all green) demonstrates full matrix coverage on dnceng-public for a fork PR: Mac MSBuild 1-10, Mac MSBuild+Emulator 1-8, Mac APKs 1-2, Windows MSBuild 1-8, Linux MSBuild 1-2.

Changes

build-tools/automation/azure-pipelines-public.yaml:

  • Drop condition: eq(variables['System.PullRequest.IsFork'], 'True') from the mac_build, win_build_test, and linux_build stages.
  • Drop the IsFork clause from the conditions on the three test stages (linux_tests, mac_msbuild_tests, mac_emulator_tests); they keep succeeded() and the SkipTestStages guard.
  • Change the skipTests parameter default from 'auto' to 'false'.
  • Collapse the SkipTestStages variable expression to just the explicit true/else: false cases (the IsFork-aware auto branch is gone).

build-tools/automation/azure-pipelines.yaml:

  • Add pr: none after the existing trigger: block so the DevDiv pipeline stops triggering on PRs. The trigger: list (main, d16-*, d17-*, release/*, feature/*) is unchanged, so CI on main/release branches and official signed builds continue to run normally.

Verification

  • git grep -n IsFork build-tools/automation/azure-pipelines-public.yaml → zero hits.
  • git grep -n "pr: none" build-tools/automation/azure-pipelines.yaml → one hit.
  • Both YAML files parse cleanly with yaml.safe_load.
  • azure-pipelines.yaml trigger: block is untouched.

Follow-up (manual repo-admin step)

After this merges, branch policies in the dotnet/android repo settings must be updated to require the dotnet-android (dnceng-public) check instead of Xamarin.Android-PR. That has to be done by a maintainer in the repo admin UI alongside merging this PR.

…on DevDiv pipeline

Reverses the IsFork gating added in #11153 so the dnceng-public pipeline
(`dotnet-android`) runs the full PR test matrix for ALL pull requests,
not just fork PRs. Adds `pr: none` to the DevDiv pipeline
(`Xamarin.Android-PR`) so it stops running for pull requests entirely.

Build https://dev.azure.com/dnceng-public/public/_build/results?buildId=1443410
(PR #11531) demonstrates full matrix coverage on dnceng-public for a
fork PR (~2h 18m, all green): Mac MSBuild 1-10, Mac MSBuild+Emulator 1-8,
Mac APKs 1-2, Windows MSBuild 1-8, Linux MSBuild 1-2.

`azure-pipelines.yaml` continues to run for CI on `main` /
`d16-*` / `d17-*` / `release/*` / `feature/*` branches and for official
signed builds — only PR triggering is removed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 4, 2026 15:07
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the Azure DevOps pipeline configuration to make the dnceng-public dotnet-android pipeline the default PR validation path, and to stop the DevDiv pipeline from triggering on PRs (while keeping branch CI triggers intact).

Changes:

  • Disabled PR triggers on the DevDiv pipeline by adding pr: none to build-tools/automation/azure-pipelines.yaml.
  • Removed fork-only stage gating in azure-pipelines-public.yaml so the full PR matrix runs for non-fork PRs as well.
  • Changed the public pipeline skipTests default to 'false' and simplified SkipTestStages to explicit true/false behavior.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
build-tools/automation/azure-pipelines.yaml Disables PR triggering for the DevDiv pipeline via pr: none, keeping existing branch triggers.
build-tools/automation/azure-pipelines-public.yaml Enables full PR matrix by removing fork-only stage conditions and simplifying test-skip parameter handling.
Comments suppressed due to low confidence (1)

build-tools/automation/azure-pipelines-public.yaml:26

  • 💡 Suggestion: skipTests still allows an 'auto' value, but the SkipTestStages logic no longer has any special handling for it (it now behaves the same as 'false'). To avoid confusing/unsupported UI options, consider removing 'auto' from the allowed values (or reintroducing explicit auto semantics).
  default: 'false'
  values:
  - 'auto'
  - 'true'
  - 'false'

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