Fix autoninja && chrome on failed builds

A handy usage pattern for autoninja.bat that I was not aware of is to go

    autoninja -C out\Default chrome && chrome

This will build chrome and then run it, but only run it if the build
succeeds. The addition of post_build_ninja_summary.py broke this by
losing the error code. This change fixes it by using black magic to
set an error code in the failure case.

Bug: chromium:787983
Change-Id: Ib87fd1799816e19d56de76e08e0f9688be903d80
Reviewed-on: https://chromium-review.googlesource.com/916705
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
changes/05/916705/4
Bruce Dawson 7 years ago committed by Commit Bot
parent e186e50d0b
commit 46541b4996

@ -10,7 +10,13 @@
command=$(python $(dirname -- "$0")/autoninja.py "$@")
echo $command
$command
if [ $? -eq 0 ] && [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then
python $(dirname -- "$0")/post_build_ninja_summary.py $@
if [ $? -eq 0 ]; then
if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then
python $(dirname -- "$0")/post_build_ninja_summary.py $@
fi
exit
fi
# Return an error code of 1 so that if a developer types:
# "autoninja chrome && chrome" then chrome won't run if the build fails.
exit 1

@ -8,4 +8,8 @@ REM Also print it to reassure that the right settings are being used.
FOR /f "usebackq tokens=*" %%a in (`python %~dp0autoninja.py "%*"`) do echo %%a & %%a
@if errorlevel 1 goto buildfailure
@if "%NINJA_SUMMARIZE_BUILD%" == "1" python %~dp0post_build_ninja_summary.py %*
exit /b
:buildfailure
REM Return an error code of 1 so that if a developer types:
REM "autoninja chrome && chrome" then chrome won't run if the build fails.
cmd /c exit 1

Loading…
Cancel
Save