Ваша проблема в том, что bash по умолчанию использует существующий код из последней команды в xcpretty. Таким образом, вы получаете существующий код из xcpretty.
Вы можете пойти и установить pipefail в своей среде (установите -o pipefail).
pipefail
приведет к завершению работы скрипта с первым ненулевым кодом выхода.
например. в вашем файле Travis
script:
- set -o pipefail
- xcodebuild build -workspace CalendarKitDemo.xcworkspace -scheme "CalendarKitDemo" -sdk iphonesimulator | xcpretty
Если вы хотите быть более явным, вы также можете получить код выхода из первой команды (xcodebuild), bash предоставляет коды выхода конвейера в массиве PIPESTATUS
.
Так, например,
- xcodebuild build -workspace CalendarKitDemo.xcworkspace -scheme "CalendarKitDemo" -sdk iphonesimulator | xcpretty && exit ${PIPESTATUS[0]}"