Upload TestCases folder as artifact when CI tests fail - #3874
Merged
Conversation
Failed decompiler-test runs leave their generated fixtures (compiled test assemblies, generated IL, diff inputs) on the runner where they are lost, making CI-only failures hard to diagnose. Capture the folder via upload-artifact's own client-side zip at compression-level 9 instead of a separate 7z step, since 7z is not reliably available on the macOS runner. Assisted-by: Claude:claude-fable-5:Claude Code
siegfriedpammer
approved these changes
Jul 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When tests fail in CI, the generated fixtures under
ICSharpCode.Decompiler.Tests/TestCases(compiled test assemblies, generated IL, diff inputs) are lost with the runner. This uploads that folder as a maximum-compression artifact whenever the test step fails, to make CI-only failures diagnosable.Buildjob: addedid: unit-teststo "Execute unit tests" and a new "Upload TestCases on test failure" step right after "Upload Test Logs", gated onfailure() && steps.unit-tests.outcome == 'failure'(artifacttestcases-Debug/testcases-Release)Desktopjob: same pattern keyed to "Execute decompiler tests" viaid: decompiler-tests(artifacttestcases-linux/testcases-macos)actions/upload-artifact@v7withcompression-level: 9instead of a separate 7z step - the action zips client-side at maximum compression, and7zis not reliably available on the macOS runnerif-no-files-foundstays at the defaultwarnso a run where TestCases was never generated does not mask the original test failure with an artifact errorOn green runs the new steps show as skipped; they only execute when their test step failed.
🤖 Generated with Claude Code