aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin Tobler <jltobler@gmail.com>2024-05-03 12:21:06 -0500
committerJunio C Hamano <gitster@pobox.com>2024-05-03 12:11:49 -0700
commit9bef98096c1a58ec0f0e793a282374b50a43eaab (patch)
tree9e45dae2a0ade280a194cd3f4a9fa27f32e60fb7
parent66820fb7bfc47e0356dd8c27af3abd2a27daafcd (diff)
downloadgit-9bef98096c1a58ec0f0e793a282374b50a43eaab.tar.gz
ci: make the whitespace report optional
The `check-whitespace` CI job generates a formatted output file containing whitespace error information. As not all CI providers support rendering a formatted summary, make its generation optional. Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xci/check-whitespace.sh45
1 files changed, 33 insertions, 12 deletions
diff --git a/ci/check-whitespace.sh b/ci/check-whitespace.sh
index 9cc496da40..db399097a5 100755
--- a/ci/check-whitespace.sh
+++ b/ci/check-whitespace.sh
@@ -1,9 +1,20 @@
#!/usr/bin/env bash
+#
+# Check that commits after a specified point do not contain new or modified
+# lines with whitespace errors. An optional formatted summary can be generated
+# by providing an output file path and url as additional arguments.
+#
baseCommit=$1
outputFile=$2
url=$3
+if test "$#" -ne 1 && test "$#" -ne 3
+then
+ echo "USAGE: $0 <BASE_COMMIT> [<OUTPUT_FILE> <URL>]"
+ exit 1
+fi
+
problems=()
commit=
commitText=
@@ -56,19 +67,29 @@ then
goodParent=${baseCommit: 0:7}
fi
- echo "🛑 Please review the Summary output for further information."
- echo "### :x: A whitespace issue was found in one or more of the commits." >"$outputFile"
- echo "" >>"$outputFile"
- echo "Run these commands to correct the problem:" >>"$outputFile"
- echo "1. \`git rebase --whitespace=fix ${goodParent}\`" >>"$outputFile"
- echo "1. \`git push --force\`" >>"$outputFile"
- echo " " >>"$outputFile"
- echo "Errors:" >>"$outputFile"
+ echo "A whitespace issue was found in onen of more of the commits."
+ echo "Run the following command to resolve whitespace issues:"
+ echo "git rebase --whitespace=fix ${goodParent}"
+
+ # If target output file is provided, write formatted output.
+ if test -n "$outputFile"
+ then
+ echo "🛑 Please review the Summary output for further information."
+ (
+ echo "### :x: A whitespace issue was found in one or more of the commits."
+ echo ""
+ echo "Run these commands to correct the problem:"
+ echo "1. \`git rebase --whitespace=fix ${goodParent}\`"
+ echo "1. \`git push --force\`"
+ echo ""
+ echo "Errors:"
- for i in "${problems[@]}"
- do
- echo "${i}" >>"$outputFile"
- done
+ for i in "${problems[@]}"
+ do
+ echo "${i}"
+ done
+ ) >"$outputFile"
+ fi
exit 2
fi