fix: run os.exit on persistent post run only when executor has non-zero exitcode #4138
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.
As described in issue #4137 and linked reproduction sample, when running golangci-lint in a Magefile target in a serial flow with other targets with
SerialCtxDeps
, the serially executed target pipeline is exited prematurely due toos.exit
.Not sure if this PR is applicable for the context in the
PersistentPostRunE
handler that is passed to Cobra, but this PR attempts to by implementing a check where:os.Exit
is run only when exit code of the executor was non-zeronil
otherwiseFixes #4137