feat: less noisy run-ios build failures with xcpretty #1393
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.
Summary:
The run-ios command detects and uses xcpretty (https://github.com/xcpretty/xcpretty) if it's available. If it's not available it displays a loader/spinner animation until xcodebuild finishes.
If a build failure happens then the buildOutput and errorOutput are included in the raised CLIError and printed out to the terminal.
This makes sense when xcpretty isn't present as there has been no build output displayed up to now. However, if xcpretty is being used, this behaviour makes less sense:
Firstly, xcpretty has been doing coloured output, nicely highlighting warnings and errors as they happened. The raised CLIError will repeat the output but without colours which means you have to scroll back up past a potential mountain of monochrome xcodebuild output to find the xcpretty output (or attempt to pick out the error from the monochrome output).
Secondly, you will be prompted to "Run CLI with --verbose flag for more details." upon build failure anyway. If you use xcpretty then running the build again with the --verbose flag would force raw xcodebuild output (which would then including the buildOutput and errorOutput again).
Test Plan:
Tested manually with and without xcpretty installed.