Correctly capture failures from the Subshell #103
Merged
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.
Currently the -e option is turned off from inside the subshell - This fails though, as it remains on for the parent shell.
Thus, to capture (and handle) failures, we need to turn the option off in the top level shell correctly, rather than in a child shell, and restore this after our block of code has been run.
This manifests itself in the form of failed commands only invoking cleanup, and none of the rest of the code. The check on exit code is completely skipped and, for instance, docker logs from linked containers are never uploaded (which is far from ideal).