Skip to content

[skills] Update CI/test skills for public pipeline + NUnit dotnet test#11670

Draft
simonrozsival wants to merge 3 commits into
dotnet:mainfrom
simonrozsival:simonrozsival/update-ci-skills
Draft

[skills] Update CI/test skills for public pipeline + NUnit dotnet test#11670
simonrozsival wants to merge 3 commits into
dotnet:mainfrom
simonrozsival:simonrozsival/update-ci-skills

Conversation

@simonrozsival

Copy link
Copy Markdown
Member

Summary

Adapts the local agent skills (.github/skills/) and workflow docs to two recent CI changes. Docs/skills only — no product code.

1. Public PR pipeline (#11578)

PR validation now runs on a single public pipeline — dotnet-android on dev.azure.com/dnceng-public (project public, def 333) — running the full matrix for every PR (direct + fork). The DevDiv Xamarin.Android-PR pipeline got pr: none and no longer runs on PRs.

Reworked the ci-status skill around one public build:

  • One dotnet-android build per PR; BUILD_ID extraction from the check links; org/project = dnceng-public/public.
  • Fork status now only affects triggering (fork builds may await maintainer /azp run approval), not which pipeline runs.
  • AZDO test-area az devops invoke is broken on dnceng-public → switched failed-test queries to az rest + ResultsByBuild.
  • ETA reworked: duration is dominated by hosted-agent queue time (≈50 min–3 h), so the median is a rough estimate.
  • Gating-vs-flaky verdict: the build result + GitHub checks are authoritative — continueOnError device-test failures (e.g. flaky SslTest.*) are published even on green builds and must not be reported as red.

2. NUnitLite → stock NUnit via dotnet test/MTP (#11224)

Mono.Android device tests now run stock NUnit through dotnet test + Microsoft Testing Platform (-t:Install then dotnet test --no-build --report-trx, TRX output, logcat-*.txt artifacts) instead of NUnitLite/-t:RunTestApp/TestResult-*.xml.

Updated: tests skill (+ test-catalog.md), copilot-instructions.md, Documentation/workflow/UnitTests.md, and removed the now-deleted NUnitLite/ row from the update-tpn skill. The ci-status skill + binlog-analysis.md gained the device-test logcat/TRX notes.

Validation

Exercised the updated ci-status skill end-to-end against several live PRs and iterated:

All az/gh/az rest commands in the skill were run against dnceng-public and confirmed working.

🤖 Drafted with GitHub Copilot CLI.

simonrozsival and others added 3 commits June 16, 2026 20:50
Adapt the local agent skills and workflow docs to two recent CI changes:

- dotnet#11578 made dnceng-public `dotnet-android` the single PR pipeline (full
  matrix for every PR) and set `pr: none` on the DevDiv `Xamarin.Android-PR`
  pipeline. Rework the `ci-status` skill around one public build: build-id
  extraction, AZDO test queries via `az rest` (ResultsByBuild), queue-driven
  ETA variance, a gating-vs-flaky verdict (build result + checks are
  authoritative; `continueOnError` device-test failures are non-gating), and
  device-test `logcat-*.txt` artifacts.

- dotnet#11224 migrated Mono.Android device tests from NUnitLite/`-t:RunTestApp` to
  stock NUnit via `dotnet test` + Microsoft Testing Platform. Update the
  `tests` skill, `copilot-instructions.md`, and `UnitTests.md` to the new
  `-t:Install` + `dotnet test --no-build --report-trx` flow (TRX output), and
  drop the removed NUnitLite row from the `update-tpn` skill.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply the skill-creator "concise is key" principle to the ci-status skill:
cut content that is obvious to the agent and keep only what is unique to
dotnet/android CI.

- SKILL.md 306 -> 78 lines (~70% smaller always-loaded body): drop the
  prerequisites table, PowerShell duplicates, step-by-step arithmetic
  (elapsed/median/job-counter explanations) and the verbose output
  template; state the repo-specific facts once (single public pipeline,
  Xamarin.Android-PR pr:none, test-area 404 -> az rest, gating-vs-flaky
  continueOnError lanes, queue-time ETA variance, logcat artifact).
- Move deep-dive commands (ETA query, per-test error/stack, test-runs
  list, log fetch) to references/azdo-queries.md, loaded only when needed.

Validated with skill-creator quick_validate and by re-running the lean
workflow against live PRs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Per review feedback: the explicit "Present summary" template produced
predictable, familiar output. Bring back an explicit (but lean) report
template — PR header + fork badge, the dotnet-android build block
(result / elapsed / ETA / job counters), a Stage > Job status table,
Failures, gating-vs-flaky Failed tests, Verdict, and What next — in place
of the prose-only guidance from the previous commit. SKILL.md is still
~107 lines (vs 306 originally).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

1 participant