Fix error in bash syntax in bisect script.
Add a way to clean first in case the error being bisected is a failure in
incrementality.
Closes #10231.
PiperOrigin-RevId: 281102552
diff --git a/scripts/bazel-bisect.sh b/scripts/bazel-bisect.sh
index de6e52f..6977ea2 100755
--- a/scripts/bazel-bisect.sh
+++ b/scripts/bazel-bisect.sh
@@ -36,6 +36,9 @@
BAZEL_DIR=${BAZEL_DIR:-$HOME/os-bazel-bisect}
# Bazel to use to build local bazel binaries.
BAZEL_BINARY=${BAZEL_BINARY:-$(which bazel)}
+# Whether to run 'bazel clean' between invocations.
+# Set BAZEL_BISECT_WITH_CLEAN=y to clean build artifacts between runs.
+BAZEL_BISECT_WITH_CLEAN=${BAZEL_BISECT_WITH_CLEAN:-n}
# Collect the arguments.
if [ "$#" -lt 3 ]; then
@@ -73,13 +76,16 @@
cat >$BISECT_SCRIPT <<EOF
#!/bin/bash
set -eu
-"$BAZEL_BINARY" build //src:bazel || exit 1
+"$BAZEL_BINARY" build //src:bazel >/dev/null 2>&1 || exit 1
cp -f bazel-bin/src/bazel "$TMP_BIN"
cd "$WORKING_DIR"
# Call the newly built Bazel. If it fails, save the exit code but don't stop
# the script.
result=0
-"$TMP_BIN" $BAZEL_ARGUMENTS || result=$\? && true
+if [[ "${BAZEL_BISECT_WITH_CLEAN}" = "y" ]]; then
+ "$TMP_BIN" clean || true
+fi
+"$TMP_BIN" $BAZEL_ARGUMENTS || result=\$? && true
"$TMP_BIN" shutdown || true
exit \$result
EOF