Skip to content

[wip] publish_test_results: annotate test failures on GitHub Actions#3484

Open
jstarks wants to merge 2 commits into
microsoft:mainfrom
jstarks:annotate
Open

[wip] publish_test_results: annotate test failures on GitHub Actions#3484
jstarks wants to merge 2 commits into
microsoft:mainfrom
jstarks:annotate

Conversation

@jstarks
Copy link
Copy Markdown
Member

@jstarks jstarks commented May 14, 2026

On the GitHub Actions CI backend, JUnit XML results are uploaded as raw artifacts but never parsed — making it hard to find which tests failed without downloading and reading XML. The ADO backend doesn't have this problem because PublishTestResults@2 natively integrates results into the UI.

Add a Rust step on the GitHub backend that parses the JUnit XML with roxmltree (already a dependency) and emits ::error:: workflow commands for each failure. These show as annotations on the PR checks tab. The step also writes a Markdown summary table to $GITHUB_STEP_SUMMARY for a quick visual overview on the job summary page.

On the GitHub Actions CI backend, JUnit XML results are uploaded as raw
artifacts but never parsed — making it hard to find which tests failed
without downloading and reading XML. The ADO backend doesn't have this
problem because PublishTestResults@2 natively integrates results into
the UI.

Add a Rust step on the GitHub backend that parses the JUnit XML with
roxmltree (already a dependency) and emits ::error:: workflow commands
for each failure. These show as annotations on the PR checks tab. The
step also writes a Markdown summary table to $GITHUB_STEP_SUMMARY for
a quick visual overview on the job summary page.
Copilot AI review requested due to automatic review settings May 14, 2026 02:34
@jstarks jstarks requested review from a team as code owners May 14, 2026 02:34
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

This PR adds GitHub Actions-native visibility for failed Rust test runs by parsing published JUnit XML and emitting annotations plus job-summary output.

Changes:

  • Adds a GitHub-only Flowey Rust step to parse JUnit XML and annotate failed/error test cases.
  • Writes a Markdown failure summary to $GITHUB_STEP_SUMMARY.
  • Regenerates OpenVMM GitHub workflow YAMLs to include the new annotation steps.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
flowey/flowey_lib_common/src/publish_test_results.rs Adds JUnit failure parsing and GitHub annotation/summary emission.
.github/workflows/openvmm-pr.yaml Regenerated PR workflow with annotation steps.
.github/workflows/openvmm-pr-release.yaml Regenerated PR release workflow with annotation steps.
.github/workflows/openvmm-ci.yaml Regenerated CI workflow with annotation steps.


// GitHub Actions workflow command — shows as an annotation on
// the PR checks tab.
eprintln!("::error title=Test failure: {full_name}::{short_msg}");
@github-actions
Copy link
Copy Markdown

Replace :: with / in the annotation title to avoid breaking GitHub
Actions workflow command parsing (:: is the command delimiter). Remove
the step name prefix so the annotation shows the test path directly.

Drop the source file mapping code—it was unreliable and added too much
complexity for uncertain benefit.
@github-actions
Copy link
Copy Markdown

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