fixing build.sh not returning error in build (#1460)

Return the build status as return code from the `main` helper function.
In the process convert the handling if the file was sourced or directly
executed into an explicit if/else statement to make the intent clearer.

In case of an build error the error is now reported at the build step,
where the error happened.

Fixes: https://github.com/InfiniTimeOrg/InfiniTime/issues/1292
This commit is contained in:
cybuzuma 2022-12-13 08:18:53 +01:00 committed by GitHub
parent 1062fec5f2
commit 081cc60aa5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 2 deletions

View file

@ -35,6 +35,8 @@ main() {
if [ "$DISABLE_POSTBUILD" != "true" -a "$BUILD_RESULT" == 0 ]; then if [ "$DISABLE_POSTBUILD" != "true" -a "$BUILD_RESULT" == 0 ]; then
source "$BUILD_DIR/post_build.sh" source "$BUILD_DIR/post_build.sh"
fi fi
# assuming post_build.sh will never fail on a successful build
return $BUILD_RESULT
} }
GetGcc() { GetGcc() {
@ -74,4 +76,12 @@ CmakeBuild() {
fi fi
} }
[[ $SOURCED == "false" ]] && main "$@" || echo "Sourced!" if [[ $SOURCED == "false" ]]; then
# It is important to return exit code of main
# To be future-proof, this is handled explicitely
main "$@"
BUILD_RESULT=$?
exit $BUILD_RESULT
else
echo "Sourced!"
fi

View file

@ -41,6 +41,8 @@ main() {
if [ "$DISABLE_POSTBUILD" != "true" -a "$BUILD_RESULT" == 0 ]; then if [ "$DISABLE_POSTBUILD" != "true" -a "$BUILD_RESULT" == 0 ]; then
source "$BUILD_DIR/post_build.sh" source "$BUILD_DIR/post_build.sh"
fi fi
# assuming post_build.sh will never fail on a successful build
return $BUILD_RESULT
} }
GetGcc() { GetGcc() {
@ -77,4 +79,12 @@ CmakeBuild() {
fi fi
} }
[[ $SOURCED == "false" ]] && main "$@" || echo "Sourced!" if [[ $SOURCED == "false" ]]; then
# It is important to return exit code of main
# To be future-proof, this is handled explicitely
main "$@"
BUILD_RESULT=$?
exit $BUILD_RESULT
else
echo "Sourced!"
fi