From: Karthik Nayak <karthik.188@gmail.com>
To: karthik.188@gmail.com
Cc: chriscool@tuxfamily.org, git@vger.kernel.org, jltobler@gmail.com,
phillip.wood123@gmail.com, gitster@pobox.com
Subject: [PATCH v4 7/8] check-whitespace: detect if no base_commit is provided
Date: Mon, 15 Jul 2024 11:30:46 +0200 [thread overview]
Message-ID: <20240715093047.49321-8-karthik.188@gmail.com> (raw)
In-Reply-To: <20240715093047.49321-1-karthik.188@gmail.com>
The 'check-whitespace' CI script exits gracefully if no base commit is
provided or if an invalid revision is provided. This is not good because
if a particular CI provides an incorrect base_commit, it would fail
successfully.
This is exactly the case with the GitLab CI. The CI is using the
"$CI_MERGE_REQUEST_TARGET_BRANCH_SHA" variable to get the base commit
SHA, but variable is only defined for _merged_ pipelines. So it is empty
for regular pipelines [1]. This should've failed the check-whitespace
job.
Let's fallback to 'CI_MERGE_REQUEST_DIFF_BASE_SHA' if
"CI_MERGE_REQUEST_TARGET_BRANCH_SHA" isn't available in GitLab CI,
similar to the previous commit. Let's also add a check for incorrect
base_commit in the 'check-whitespace.sh' script. While here, fix a small
typo too.
[1]: https://docs.gitlab.com/ee/ci/variables/predefined_variables.html#predefined-variables-for-merge-request-pipelines
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
---
.gitlab-ci.yml | 13 ++++++++++++-
ci/check-whitespace.sh | 10 ++++++++--
2 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 817266226e..320b78b9ae 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -118,8 +118,19 @@ check-whitespace:
image: ubuntu:latest
before_script:
- ./ci/install-dependencies.sh
+ # Since $CI_MERGE_REQUEST_TARGET_BRANCH_SHA is only defined for merged
+ # pipelines, we fallback to $CI_MERGE_REQUEST_DIFF_BASE_SHA, which should
+ # be defined in all pipelines.
script:
- - ./ci/check-whitespace.sh "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA"
+ - |
+ R=${CI_MERGE_REQUEST_TARGET_BRANCH_SHA-${CI_MERGE_REQUEST_DIFF_BASE_SHA?}}
+
+ if test -z "$R"
+ then
+ echo "CI_MERGE_REQUEST_DIFF_BASE_SHA should always exist!"
+ exit 1
+ fi
+ ./ci/check-whitespace.sh "$R"
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
diff --git a/ci/check-whitespace.sh b/ci/check-whitespace.sh
index db399097a5..c40804394c 100755
--- a/ci/check-whitespace.sh
+++ b/ci/check-whitespace.sh
@@ -9,7 +9,7 @@ baseCommit=$1
outputFile=$2
url=$3
-if test "$#" -ne 1 && test "$#" -ne 3
+if test "$#" -ne 1 && test "$#" -ne 3 || test -z "$1"
then
echo "USAGE: $0 <BASE_COMMIT> [<OUTPUT_FILE> <URL>]"
exit 1
@@ -21,6 +21,12 @@ commitText=
commitTextmd=
goodParent=
+if ! git rev-parse --quiet --verify "${baseCommit}"
+then
+ echo "Invalid <BASE_COMMIT> '${baseCommit}'"
+ exit 1
+fi
+
while read dash sha etc
do
case "${dash}" in
@@ -67,7 +73,7 @@ then
goodParent=${baseCommit: 0:7}
fi
- echo "A whitespace issue was found in onen of more of the commits."
+ echo "A whitespace issue was found in one or more of the commits."
echo "Run the following command to resolve whitespace issues:"
echo "git rebase --whitespace=fix ${goodParent}"
--
2.45.2
next prev parent reply other threads:[~2024-07-15 9:30 UTC|newest]
Thread overview: 127+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-08 9:23 [PATCH 0/8] clang-format: add more rules and enable on CI Karthik Nayak
2024-07-08 9:23 ` [PATCH 1/8] clang-format: indent preprocessor directives after hash Karthik Nayak
2024-07-08 10:08 ` Chris Torek
2024-07-08 16:22 ` Junio C Hamano
2024-07-08 20:33 ` Karthik Nayak
2024-07-08 16:27 ` Re* " Junio C Hamano
2024-07-08 9:23 ` [PATCH 2/8] clang-format: avoid spacing around bitfield colon Karthik Nayak
2024-07-08 9:23 ` [PATCH 3/8] clang-format: ensure files end with newlines Karthik Nayak
2024-07-08 16:32 ` Junio C Hamano
2024-07-08 9:23 ` [PATCH 4/8] clang-format: replace deprecated option with 'SpacesInParens' Karthik Nayak
2024-07-08 16:32 ` Junio C Hamano
2024-07-08 9:23 ` [PATCH 5/8] clang-format: avoid braces on simple single-statement bodies Karthik Nayak
2024-07-08 16:48 ` Junio C Hamano
2024-07-08 20:25 ` Karthik Nayak
2024-07-12 15:24 ` Phillip Wood
2024-07-13 12:30 ` Karthik Nayak
2024-07-13 13:58 ` phillip.wood123
2024-07-13 14:16 ` Karthik Nayak
2024-07-08 9:23 ` [PATCH 6/8] clang-format: formalize some of the spacing rules Karthik Nayak
2024-07-08 16:54 ` Junio C Hamano
2024-07-08 17:26 ` Karthik Nayak
2024-07-08 16:56 ` Justin Tobler
2024-07-08 17:27 ` Karthik Nayak
2024-07-08 20:53 ` Eric Sunshine
2024-07-10 13:36 ` Karthik Nayak
2024-07-08 9:23 ` [PATCH 7/8] ci: run style check on GitHub and GitLab Karthik Nayak
2024-07-08 17:15 ` Junio C Hamano
2024-07-08 21:05 ` Karthik Nayak
2024-07-08 22:52 ` Re* " Junio C Hamano
2024-07-08 23:17 ` Justin Tobler
2024-07-09 0:56 ` brian m. carlson
2024-07-08 18:10 ` Justin Tobler
2024-07-08 21:16 ` Karthik Nayak
2024-07-09 0:22 ` Justin Tobler
2024-07-09 8:44 ` Karthik Nayak
2024-07-09 14:44 ` Justin Tobler
2024-07-10 13:38 ` Karthik Nayak
2024-07-08 9:23 ` [PATCH 8/8] check-whitespace: detect if no base_commit is provided Karthik Nayak
2024-07-08 10:18 ` Chris Torek
2024-07-08 10:35 ` Georg Pfuetzenreuter
2024-07-08 10:42 ` Chris Torek
2024-07-08 17:13 ` Karthik Nayak
2024-07-08 17:19 ` Junio C Hamano
2024-07-08 17:35 ` Junio C Hamano
2024-07-10 14:06 ` Karthik Nayak
2024-07-10 16:02 ` Junio C Hamano
2024-07-11 8:27 ` Karthik Nayak
2024-07-11 14:41 ` Junio C Hamano
2024-07-08 17:58 ` Justin Tobler
2024-07-10 14:12 ` Karthik Nayak
2024-07-08 10:06 ` [PATCH 0/8] clang-format: add more rules and enable on CI Chris Torek
2024-07-11 8:30 ` [PATCH v2 " Karthik Nayak
2024-07-11 8:30 ` [PATCH v2 1/8] clang-format: indent preprocessor directives after hash Karthik Nayak
2024-07-11 8:30 ` [PATCH v2 2/8] clang-format: avoid spacing around bitfield colon Karthik Nayak
2024-07-11 8:30 ` [PATCH v2 3/8] clang-format: ensure files end with newlines Karthik Nayak
2024-07-11 8:30 ` [PATCH v2 4/8] clang-format: replace deprecated option with 'SpacesInParens' Karthik Nayak
2024-07-11 8:30 ` [PATCH v2 5/8] clang-format: avoid braces on simple single-statement bodies Karthik Nayak
2024-07-11 16:40 ` Junio C Hamano
2024-07-12 8:48 ` Karthik Nayak
2024-07-12 15:09 ` Junio C Hamano
2024-07-12 15:29 ` Phillip Wood
2024-07-11 8:30 ` [PATCH v2 6/8] clang-format: formalize some of the spacing rules Karthik Nayak
2024-07-11 8:30 ` [PATCH v2 7/8] ci: run style check on GitHub and GitLab Karthik Nayak
2024-07-11 8:30 ` [PATCH v2 8/8] check-whitespace: detect if no base_commit is provided Karthik Nayak
2024-07-11 14:48 ` Justin Tobler
2024-07-11 16:16 ` Junio C Hamano
2024-07-12 8:51 ` Karthik Nayak
2024-07-12 15:12 ` Junio C Hamano
2024-07-11 18:11 ` [PATCH v2 0/8] clang-format: add more rules and enable on CI Junio C Hamano
2024-07-13 13:45 ` [PATCH v3 " Karthik Nayak
2024-07-13 13:45 ` [PATCH v3 1/8] clang-format: indent preprocessor directives after hash Karthik Nayak
2024-07-13 13:45 ` [PATCH v3 2/8] clang-format: avoid spacing around bitfield colon Karthik Nayak
2024-07-13 13:45 ` [PATCH v3 3/8] clang-format: ensure files end with newlines Karthik Nayak
2024-07-13 13:45 ` [PATCH v3 4/8] clang-format: replace deprecated option with 'SpacesInParens' Karthik Nayak
2024-07-13 13:45 ` [PATCH v3 5/8] clang-format: formalize some of the spacing rules Karthik Nayak
2024-07-13 13:45 ` [PATCH v3 6/8] ci: run style check on GitHub and GitLab Karthik Nayak
2024-07-13 15:47 ` Junio C Hamano
2024-07-13 13:45 ` [PATCH v3 7/8] check-whitespace: detect if no base_commit is provided Karthik Nayak
2024-07-13 13:45 ` [PATCH v3 8/8] ci/style-check: add `RemoveBracesLLVM` to '.clang-format' Karthik Nayak
2024-07-13 15:37 ` Junio C Hamano
2024-07-13 16:46 ` Karthik Nayak
2024-07-13 23:18 ` Ramsay Jones
2024-07-15 8:10 ` Karthik Nayak
2024-07-15 14:46 ` Junio C Hamano
2024-07-15 16:07 ` Karthik Nayak
2024-07-15 16:36 ` Junio C Hamano
2024-07-15 19:31 ` Karthik Nayak
2024-07-15 19:45 ` Junio C Hamano
2024-07-18 8:18 ` Karthik Nayak
2024-07-18 14:05 ` Junio C Hamano
2024-07-15 9:30 ` [PATCH v4 0/8] clang-format: add more rules and enable on CI Karthik Nayak
2024-07-15 9:30 ` [PATCH v4 1/8] clang-format: indent preprocessor directives after hash Karthik Nayak
2024-07-15 9:30 ` [PATCH v4 2/8] clang-format: avoid spacing around bitfield colon Karthik Nayak
2024-07-15 9:30 ` [PATCH v4 3/8] clang-format: ensure files end with newlines Karthik Nayak
2024-07-15 9:30 ` [PATCH v4 4/8] clang-format: replace deprecated option with 'SpacesInParens' Karthik Nayak
2024-07-15 9:30 ` [PATCH v4 5/8] clang-format: formalize some of the spacing rules Karthik Nayak
2024-07-15 9:30 ` [PATCH v4 6/8] ci: run style check on GitHub and GitLab Karthik Nayak
2024-07-15 9:30 ` Karthik Nayak [this message]
2024-07-15 9:30 ` [PATCH v4 8/8] ci/style-check: add `RemoveBracesLLVM` to '.clang-format' Karthik Nayak
2024-07-15 17:01 ` Junio C Hamano
2024-07-15 19:33 ` Karthik Nayak
2024-07-18 8:15 ` [PATCH v5 0/6] : add more rules and enable on CI Karthik Nayak
2024-07-18 8:16 ` [PATCH v5 1/6] clang-format: indent preprocessor directives after hash Karthik Nayak
2024-07-18 8:16 ` [PATCH v5 2/6] clang-format: avoid spacing around bitfield colon Karthik Nayak
2024-07-18 8:16 ` [PATCH v5 3/6] clang-format: formalize some of the spacing rules Karthik Nayak
2024-07-18 8:16 ` [PATCH v5 4/6] ci: run style check on GitHub and GitLab Karthik Nayak
2024-07-18 14:56 ` Junio C Hamano
2024-07-18 16:04 ` Junio C Hamano
2024-07-18 8:16 ` [PATCH v5 5/6] check-whitespace: detect if no base_commit is provided Karthik Nayak
2024-07-18 15:00 ` Junio C Hamano
2024-07-19 8:33 ` Karthik Nayak
2024-07-19 15:03 ` Junio C Hamano
2024-07-22 7:22 ` Karthik Nayak
2024-07-18 8:16 ` [PATCH v5 6/6] ci/style-check: add `RemoveBracesLLVM` in CI job Karthik Nayak
2024-07-18 15:09 ` [PATCH v5 0/6] : add more rules and enable on CI Junio C Hamano
2024-07-23 8:21 ` [PATCH v6 0/6] clang-format: " Karthik Nayak
2024-07-23 8:21 ` [PATCH v6 1/6] clang-format: indent preprocessor directives after hash Karthik Nayak
2024-07-24 6:50 ` Patrick Steinhardt
2024-07-24 8:55 ` Karthik Nayak
2024-07-23 8:21 ` [PATCH v6 2/6] clang-format: avoid spacing around bitfield colon Karthik Nayak
2024-07-23 8:21 ` [PATCH v6 3/6] clang-format: formalize some of the spacing rules Karthik Nayak
2024-07-23 8:21 ` [PATCH v6 4/6] ci: run style check on GitHub and GitLab Karthik Nayak
2024-07-23 8:21 ` [PATCH v6 5/6] check-whitespace: detect if no base_commit is provided Karthik Nayak
2024-07-23 8:21 ` [PATCH v6 6/6] ci/style-check: add `RemoveBracesLLVM` in CI job Karthik Nayak
2025-06-19 15:16 ` Junio C Hamano
2025-06-19 20:25 ` Karthik Nayak
2025-06-20 0:02 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240715093047.49321-8-karthik.188@gmail.com \
--to=karthik.188@gmail.com \
--cc=chriscool@tuxfamily.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jltobler@gmail.com \
--cc=phillip.wood123@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).