Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions eng/pipelines/runtime-diagnostics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,20 @@ extends:
buildConfiguration: $(_BuildConfig)
continueOnError: true
condition: always()
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/tmp/$(_BuildConfig)/dumps'
artifactName: 'Dumps_cDAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Crash Dumps'
continueOnError: true
condition: failed()
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/TestResults'
artifactName: 'TestResults_cDAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Test Results and SOS Logs'
continueOnError: true
condition: failed()
Comment on lines +116 to +123
Copy link

Copilot AI Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

condition: failed() likely won’t run when tests fail but the job ends as SucceededWithIssues (e.g., PublishTestResults@2 has continueOnError: true). Consider using a condition that also matches Agent.JobStatus == 'SucceededWithIssues' (e.g., in(variables['Agent.JobStatus'], 'Failed', 'SucceededWithIssues')) so dumps get published on test failures as well.

Suggested change
condition: failed()
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/TestResults'
artifactName: 'TestResults_cDAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Test Results and SOS Logs'
continueOnError: true
condition: failed()
condition: in(variables['Agent.JobStatus'], 'Failed', 'SucceededWithIssues')
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/TestResults'
artifactName: 'TestResults_cDAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Test Results and SOS Logs'
continueOnError: true
condition: in(variables['Agent.JobStatus'], 'Failed', 'SucceededWithIssues')

Copilot uses AI. Check for mistakes.
Comment on lines +116 to +123
Copy link

Copilot AI Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same issue as above: with continueOnError: true on PublishTestResults@2, the job may be SucceededWithIssues rather than Failed, so condition: failed() may skip publishing the TestResults/SOS logs artifact. Adjust the condition to include SucceededWithIssues if the goal is to publish whenever tests fail.

Suggested change
condition: failed()
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/TestResults'
artifactName: 'TestResults_cDAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Test Results and SOS Logs'
continueOnError: true
condition: failed()
condition: or(failed(), eq(variables['Agent.JobStatus'], 'SucceededWithIssues'))
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/TestResults'
artifactName: 'TestResults_cDAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Test Results and SOS Logs'
continueOnError: true
condition: or(failed(), eq(variables['Agent.JobStatus'], 'SucceededWithIssues'))

Copilot uses AI. Check for mistakes.
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/diagnostics/runtime-diag-job.yml
Expand Down Expand Up @@ -141,6 +155,20 @@ extends:
buildConfiguration: $(_BuildConfig)
continueOnError: true
condition: always()
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/tmp/$(_BuildConfig)/dumps'
artifactName: 'Dumps_DAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Crash Dumps'
continueOnError: true
condition: failed()
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/TestResults'
artifactName: 'TestResults_DAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Test Results and SOS Logs'
continueOnError: true
condition: failed()
Comment on lines +164 to +171
Copy link

Copilot AI Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As above, condition: failed() can skip artifact publication when the job ends SucceededWithIssues due to continueOnError. If publishing logs/results is intended for any failure/issue, update the condition to also match SucceededWithIssues.

Suggested change
condition: failed()
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/TestResults'
artifactName: 'TestResults_DAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Test Results and SOS Logs'
continueOnError: true
condition: failed()
condition: or(failed(), eq(variables['Agent.JobStatus'], 'SucceededWithIssues'))
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/TestResults'
artifactName: 'TestResults_DAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Test Results and SOS Logs'
continueOnError: true
condition: or(failed(), eq(variables['Agent.JobStatus'], 'SucceededWithIssues'))

Copilot uses AI. Check for mistakes.
Comment on lines +164 to +171
Copy link

Copilot AI Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

condition: failed() may not trigger when the job result is SucceededWithIssues (e.g., test failures reported by PublishTestResults@2 with continueOnError: true). If you want dumps on any test failure, include SucceededWithIssues in the condition (e.g., in(variables['Agent.JobStatus'], 'Failed', 'SucceededWithIssues')).

Suggested change
condition: failed()
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/TestResults'
artifactName: 'TestResults_DAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Test Results and SOS Logs'
continueOnError: true
condition: failed()
condition: in(variables['Agent.JobStatus'], 'Failed', 'SucceededWithIssues')
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)/artifacts/TestResults'
artifactName: 'TestResults_DAC_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)_Attempt$(System.JobAttempt)'
displayName: 'Publish Test Results and SOS Logs'
continueOnError: true
condition: in(variables['Agent.JobStatus'], 'Failed', 'SucceededWithIssues')

Copilot uses AI. Check for mistakes.

#
# cDAC Dump Creation — Build runtime, create crash dumps, publish dump artifacts
Expand Down
Loading