[ci] Make dnceng-public the default PR pipeline; disable PR triggers on DevDiv pipeline#11578
Open
jonathanpeppers wants to merge 2 commits into
Open
[ci] Make dnceng-public the default PR pipeline; disable PR triggers on DevDiv pipeline#11578jonathanpeppers wants to merge 2 commits into
jonathanpeppers wants to merge 2 commits into
Conversation
…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>
Contributor
There was a problem hiding this comment.
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: nonetobuild-tools/automation/azure-pipelines.yaml. - Removed fork-only stage gating in
azure-pipelines-public.yamlso the full PR matrix runs for non-fork PRs as well. - Changed the public pipeline
skipTestsdefault to'false'and simplifiedSkipTestStagesto 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:
skipTestsstill allows an'auto'value, but theSkipTestStageslogic 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 explicitautosemantics).
default: 'false'
values:
- 'auto'
- 'true'
- 'false'
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
Today PR validation runs on the DevDiv-internal Azure DevOps pipeline
Xamarin.Android-PR(defined bybuild-tools/automation/azure-pipelines.yaml). The dnceng-public pipelinedotnet-android(defined bybuild-tools/automation/azure-pipelines-public.yaml) already runs the full PR test matrix, but every test stage has been gated oneq(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:condition: eq(variables['System.PullRequest.IsFork'], 'True')from themac_build,win_build_test, andlinux_buildstages.IsForkclause from the conditions on the three test stages (linux_tests,mac_msbuild_tests,mac_emulator_tests); they keepsucceeded()and theSkipTestStagesguard.skipTestsparameter default from'auto'to'false'.SkipTestStagesvariable expression to just the explicittrue/else: falsecases (theIsFork-awareautobranch is gone).build-tools/automation/azure-pipelines.yaml:pr: noneafter the existingtrigger:block so the DevDiv pipeline stops triggering on PRs. Thetrigger:list (main,d16-*,d17-*,release/*,feature/*) is unchanged, so CI onmain/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.yaml.safe_load.azure-pipelines.yamltrigger: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 ofXamarin.Android-PR. That has to be done by a maintainer in the repo admin UI alongside merging this PR.