[CI] Fix SIGPIPE
behavior in GH Actions default runner
#357
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.
This is a workaround for the default GitHub Actions runner which inherits to all jobs and steps a SIGPIPE handler that does nothing.
The behavior can be reproduced locally by running
trap '' SIGPIPE
and then commands that produce a SIGPIPE signal, likecat | ls
.The workaround is to compile a C program that resets the SIGPIPE handler and call the mstest command from it.
A shell script wrapper like
trap - SIGPIPE ; exec
does not work.Reference about the behavior of GitHub Actions runner:
actions/runner#2684