Agent Skills › microsoft/PowerToys › ui-tests-pipeline-ci

ui-tests-pipeline-ci

GitHub

面向微软内部员工的 PowerToys UI 测试自动化流程,负责在本地验证通过后自动提交、推送代码并触发 Azure DevOps CI 流水线,同时监控运行状态、诊断权限问题及处理失败重试。

.github/skills/ui-tests-pipeline-ci/SKILL.md microsoft/PowerToys

Trigger Scenarios

UI测试通过本地VM矩阵验证后需提交并运行CI 需要排队或监控PowerToys UITests流水线 诊断401/403权限错误或验证Azure CLI环境就绪 复用历史构建仅重建部分UI测试项目 查找和分享失败的测试截图、日志或录制链接

Install

npx skills add microsoft/PowerToys --skill ui-tests-pipeline-ci -g -y
More Options

Non-standard path

npx skills add https://github.com/microsoft/PowerToys/tree/main/.github/skills/ui-tests-pipeline-ci -g -y

Use without installing

npx skills use microsoft/PowerToys@ui-tests-pipeline-ci

指定 Agent (Claude Code)

npx skills add microsoft/PowerToys --skill ui-tests-pipeline-ci -a claude-code -g -y

安装 repo 全部 skill

npx skills add microsoft/PowerToys --all -g -y

预览 repo 内 skill

npx skills add microsoft/PowerToys --list

SKILL.md

Frontmatter
{
    "name": "ui-tests-pipeline-ci",
    "license": "MIT",
    "description": "Microsoft FTE-only completion workflow for PowerToys UI-test implementation: automatically continue after successful local VM suites, commit and push scoped changes, queue CI, wait synchronously, and stabilize through Azure CLI and Azure DevOps REST APIs. No separate push\/run-CI request is needed for create, migrate, or stabilize tasks unless the user limited scope. Also use for explicit UITests CI, setup preflight, 401\/403 diagnosis, build reuse, recordings\/artifacts, and the three-run limit. Keywords: FTE, az, Azure CLI, Azure DevOps, pipeline, UI Test Automation, UITests CI, commit, push, local-to-CI handoff, buildNow, specificBuildId, uiTestModules, CI flake."
}

PowerToys UI Tests Pipeline CI

Queue and stabilize the internal UI Test Automation Azure DevOps pipeline only after the target UITest suite is proven locally. Use the existing Azure CLI sign-in plus Azure DevOps REST APIs for discovery, preview, queueing, status, timelines, logs, tests, artifacts, and result attachments.

[!IMPORTANT] Microsoft FTE only. This workflow requires authorized access to the microsoft Azure DevOps organization and the Dart project. External contributors stop after local validation and report CI as unavailable. Never store credentials, PATs, tokens, or internal artifact contents in the repository.

When to use

Invoke this skill automatically when an authorized Microsoft FTE's create, migrate, or stabilize UI tests task passes its full local VM matrix. That task includes scoped commit/push and CI validation; do not wait for an additional "run CI" request.

Also use it when an authorized Microsoft FTE asks to:

  • Queue PowerToys UITests in the internal UI Test Automation pipeline.
  • Validate Azure CLI and Azure DevOps readiness before queueing or after a 401/403 response.
  • Monitor a UITests pipeline run or summarize its stages, tests, and artifacts.
  • Iterate on a failure that passed the complete local VM matrix.
  • Reuse a prior successful product build while rebuilding only one or more UITest projects.
  • Find and share failed-test screenshots, logs, or recording links.

Do not use this skill for local execution. Complete ui-tests-local-vm first. Use ui-tests-migration for test implementation and stabilization.

Automatic handoff and scope

The three skills form one delivery workflow, not three independently complete tasks. Local success means ready for publication and CI, not done. Follow references/agentic-loop.md to review the diff, commit only task-owned files, push a feature branch without force, and record the exact remote SHA before queueing. Never include unrelated work or secrets.

Honor explicit local-only/no-push/no-CI instructions. A status question, read-only investigation, VM setup, or local execution of an existing suite does not authorize publishing changes. External contributors or failed access/push preflights stop at the exact blocker; do not bypass sign-in, permissions, protected branches, or local gates. For an end-to-end task, keep CI pending until verified terminal success or a documented blocker/three-run escalation.

Non-negotiable gates

  1. Setup preflight first. Before the first Azure operation in a session, run Test-AzureDevOpsSetup.ps1 and require Ready=true with every required check PASS. It performs reads and a non-mutating pipeline preview only. Re-run it after account changes or any 401/403 response.
  2. Local first. Do not queue CI until all required local runs are green, including full suites on the default and Constrained profiles for Windows 10 and Windows 11, plus the applicable architecture builds/guests required by ui-tests-local-vm.
  3. Pushed revision. Queue only a pushed branch. Record its exact commit and verify the queued run's sourceVersion matches it. Creating and pushing that scoped commit is part of the implementation workflow, not an optional user follow-up.
  4. One run per branch. Before queueing, discover active runs for UI Test Automation. Wait for or cancel a relevant superseded run on the target branch; runs on other branches may continue in parallel. Never cancel another branch's unrelated run.
  5. Always scope modules. uiTestModules must be non-empty and contain the exact current UITest project stem, for example [FancyZonesEditor.UITests.Next].
  6. Three-run ceiling. A CI stabilization sequence may queue at most three runs total. Keep an attempt ledger. If run 3 is not green, stop and ask the user for assistance. Also stop when three consecutive runs show no stabilization progress.
  7. Evidence before edits. Read the failed result, logs, screenshot, and recording before forming a fix hypothesis. Preserve assertions and classify infrastructure failures separately.
  8. Tracked runs remain unfinished work. After queueing, persist the build ID, branch, source SHA, attempt number, and parameters in session/task state. Do not mark the task complete or claim a terminal result while that build is nonterminal. Immediately run Wait-AzureDevOpsBuild.ps1 synchronously in the foreground, bound to the exact build ID, branch, and source SHA. Keep the same agent turn alive until the waiter returns, then verify the terminal result and continue stabilization without user input. Do not end the turn or call task_complete while the waiter runs.

Internal constants

Setting Value
Azure DevOps organization microsoft
Project Dart
Pipeline name UI Test Automation
Current known definition ID 161438 (discover by name each session; do not blindly hardcode)
Azure DevOps token resource 499b84ac-1321-427f-aa17-267ca6975798
Required setup check scripts/Test-AzureDevOpsSetup.ps1
Required completion waiter scripts/Wait-AzureDevOpsBuild.ps1
Platforms arm64, x64
Default booleans enableMsBuildCaching=false, useVSPreview=false, useLatestWebView2=false

Required workflow

Read and execute references/agentic-loop.md from top to bottom. It contains:

  • The required prompt-free setup preflight and bundled REST helper.
  • Local-signoff and active-run preflight.
  • buildNow versus specificBuildId decision rules.
  • Exact queue parameters and branch targeting.
  • Monitoring, failure evidence, direct Azure Test attachment downloads, and recording links.
  • Agent-owned foreground completion waiting and truthful client capability limits.
  • The three-run stabilization ledger and stop conditions.

Completion standard

A task is complete only when one of these is true:

  • The run is terminal Succeeded, all selected tests executed, and there are no failed, aborted, timed-out, error, or not-executed results.
  • For a monitor-only request, the run is terminal but failed, and the report includes the controlling failure, relevant logs, and available recording/artifact links.
  • For a stabilization request, a terminal failed run is intermediate work. Continue the agentic loop until a later attempt succeeds, a genuine blocker prevents the next verified attempt, or the three-run/no-progress ceiling is reached.
  • The three-run ceiling or no-progress rule was reached, and the agent stopped and asked the user for assistance with the full attempt ledger and evidence links.

Version History

  • d513ca8 Current 2026-09-22 21:55

    新增自动流转逻辑:本地测试成功后自动完成 commit/push 并排队 CI,无需额外指令;强调不相关代码隔离与安全限制。

  • e5a19c4 2026-08-28 19:26

Same Skill Collection

.github/skills/release-note-generation/SKILL.md
.github/skills/winmd-api-search/SKILL.md
.github/skills/powertoys-verification/SKILL.md
.github/skills/ui-tests-local-vm/SKILL.md
.github/skills/ui-tests-migration/SKILL.md
.github/skills/wpf-to-winui3-migration/SKILL.md

Metadata

Files
0
Version
5723797
Hash
f032c6be
Indexed
2026-08-28 19:26

ホーム - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-28 23:00
浙ICP备14020137号-1