Skip to content

eng/pipeline: allow test retries after result publishing - #2445

Merged
Davis Goodin (dagood) merged 1 commit into
microsoft/mainfrom
dev/gadams/macosretry
Aug 11, 2026
Merged

eng/pipeline: allow test retries after result publishing#2445
Davis Goodin (dagood) merged 1 commit into
microsoft/mainfrom
dev/gadams/macosretry

Conversation

@gdams

@gdams George Adams (gdams) commented Aug 11, 2026

Copy link
Copy Markdown
Member

Test retry attempts currently require the job to be in a successful state. Non-final test commands use ignoreLASTEXITCODE, but PublishTestResults can still fail after publishing a failed JUnit result. That changes the job state before the next test attempt evaluates its succeeded() condition, causing all remaining retries to be skipped.

Mark non-final result-publishing tasks with continueOnError. Their expected failed-test result becomes SucceededWithIssues, which permits the existing retry condition to continue without weakening its protection against catastrophic build failures. Apply the same behavior to the final publisher for builders marked broken, preserving the existing policy that their final test failure is non-fatal.

Validation:

  • go test ./cmd/pipelineymlgen
  • YAML diagnostics
  • git diff --check

Fixes #2264

@gdams
George Adams (gdams) requested a review from a team as a code owner August 11, 2026 13:45
Copilot AI lite review requested due to automatic review settings August 11, 2026 13:45
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 updates the Azure DevOps pipeline stage template to ensure test retry attempts are not blocked by failures in intermediate PublishTestResults tasks, keeping the existing retry gating (succeeded()) intact while allowing expected failed-test outcomes to proceed to the next attempt.

Changes:

  • Mark non-final PublishTestResults@2 tasks as continueOnError: true so intermediate failed-test publishing does not transition the job into a Failed state and skip remaining retries.
Show a summary per file
File Description
eng/pipeline/stages/run-stage.yml Allows intermediate test result publishing to be non-fatal so retry attempts can continue.

Review details

Tip

Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

  • Files reviewed: 1/1 changed files
  • Comments generated: 1
  • Review effort level: Lite

Comment thread eng/pipeline/stages/run-stage.yml
@dagood
Davis Goodin (dagood) merged commit 3291f8b into microsoft/main Aug 11, 2026
56 checks passed
@dagood
Davis Goodin (dagood) deleted the dev/gadams/macosretry branch August 11, 2026 16:40
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.

macOS tests failed but didn't retry

3 participants