PR Build Status Skill
Retrieve Azure DevOps build information for GitHub Pull Requests, including Helix test logs.
Tools Required
This skill uses bash together with pwsh (PowerShell 7+) to run the PowerShell scripts. No file editing or other tools are required.
When to Use
-
User asks about CI/CD status for a PR
-
User asks about failed checks or builds
-
User asks "what's failing on PR #XXXXX"
-
User wants to see test results
-
User asks about Helix failures (device tests, integration tests, etc.)
-
User needs to debug why tests are failing on Helix infrastructure
Scripts
All scripts are in .github/skills/pr-build-status/scripts/
- Get Build IDs for a PR
pwsh .github/skills/pr-build-status/scripts/Get-PrBuildIds.ps1 -PrNumber <PR_NUMBER>
- Get Build Status
pwsh .github/skills/pr-build-status/scripts/Get-BuildInfo.ps1 -BuildId <BUILD_ID>
For failed jobs only:
pwsh .github/skills/pr-build-status/scripts/Get-BuildInfo.ps1 -BuildId <BUILD_ID> -FailedOnly
- Get Build Errors and Test Failures
Get all errors (build errors + test failures)
pwsh .github/skills/pr-build-status/scripts/Get-BuildErrors.ps1 -BuildId <BUILD_ID>
Get only build/compilation errors
pwsh .github/skills/pr-build-status/scripts/Get-BuildErrors.ps1 -BuildId <BUILD_ID> -ErrorsOnly
Get only test failures
pwsh .github/skills/pr-build-status/scripts/Get-BuildErrors.ps1 -BuildId <BUILD_ID> -TestsOnly
- Get Helix Console Logs
List all Helix work items and their status
pwsh .github/skills/pr-build-status/scripts/Get-HelixLogs.ps1 -BuildId <BUILD_ID>
Filter by platform
pwsh .github/skills/pr-build-status/scripts/Get-HelixLogs.ps1 -BuildId <BUILD_ID> -Platform Windows
Show console log content for failed work items
pwsh .github/skills/pr-build-status/scripts/Get-HelixLogs.ps1 -BuildId <BUILD_ID> -ShowConsoleLog
Filter by work item name and show more log lines
pwsh .github/skills/pr-build-status/scripts/Get-HelixLogs.ps1 -BuildId <BUILD_ID> -WorkItem "Lifecycle" -ShowConsoleLog -TailLines 200
Workflow
Standard Build Failures
-
Get build IDs: Get-PrBuildIds.ps1 -PrNumber XXXXX
-
For each build, get status: Get-BuildInfo.ps1 -BuildId YYYYY -FailedOnly
-
For failed builds, get errors: Get-BuildErrors.ps1 -BuildId YYYYY
Helix Test Failures
-
Get build IDs: Get-PrBuildIds.ps1 -PrNumber XXXXX
-
Find the build with Helix jobs (e.g., maui-pr-devicetests , maui-integration-tests )
-
Get Helix logs: Get-HelixLogs.ps1 -BuildId YYYYY -ShowConsoleLog
-
For specific platform: Get-HelixLogs.ps1 -BuildId YYYYY -Platform Windows -ShowConsoleLog
Understanding Helix Logs
Helix is the .NET engineering infrastructure that runs tests across multiple platforms and device types. Tests that run on Helix include:
-
Device tests - Run on real devices/emulators (iOS, Android, Windows, MacCatalyst)
-
Integration tests - Run on various OS configurations
-
Other distributed tests - Any test scenario that requires Helix infrastructure
When Helix tests fail:
-
Build stage - Compiles and packages the test app/harness
-
Helix submission - Sends the work items to Helix queues
-
Work item execution - Helix runs the tests on target machines/devices
-
Console log - Contains stdout/stderr from the test execution
The Get-HelixLogs.ps1 script retrieves the console logs which show:
-
Test execution output
-
Any crashes or errors
-
Infrastructure issues (timeouts, installation failures, etc.)
Common Helix Failure Patterns
Pattern in Console Log Meaning
"XHarness timeout" Test took too long, killed by infrastructure
"No test result files found" Tests never ran or process crashed
"error MT..." or "error BL..." Build/linking error (check build logs instead)
Exit code non-zero Test failures or infrastructure issues
Prerequisites
-
gh (GitHub CLI) - authenticated
-
pwsh (PowerShell 7+)