From 0e5533f6b9d3fa3271d7d70ad942547ba9bd34e1 Mon Sep 17 00:00:00 2001 From: DanS Date: Wed, 22 Jul 2026 10:44:01 -0500 Subject: [PATCH] fix(build): exit 0 on a successful single-platform release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build.sh runs under `set -e`, and its final line was `[[ -d release/mac ]] && echo …`. On a build that did not produce a mac artifact (e.g. --win-release), the `[[ -d ]]` test is false; set -e exempts the left side of an && so the script does not abort, but that non-zero status becomes the script's exit code — making a fully successful build report failure (and breaking CI status). Add an explicit `exit 0` at the end; real failures already exit 1 at their point of failure. Co-Authored-By: Claude Fable 5 --- build.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build.sh b/build.sh index b9d49f7..f3629b8 100755 --- a/build.sh +++ b/build.sh @@ -1306,3 +1306,9 @@ if $DO_LINUX || $DO_WIN || $DO_MAC; then [[ -d "$SCRIPT_DIR/release/windows" ]] && echo -e " ${CYAN}windows/${NC} — .exe + .zip" [[ -d "$SCRIPT_DIR/release/mac" ]] && echo -e " ${CYAN}mac/${NC} — .app + .dmg" fi + +# Reaching here means the build completed (real failures exit 1 at their point of failure). +# Exit 0 explicitly: the final `[[ -d release/mac ]] && echo` above returns non-zero on a +# non-mac build — and since set -e exempts the left side of an &&, that status would otherwise +# become the script's exit code and make a successful build report failure (e.g. to CI). +exit 0