ci: fix static checks merge base resolution
This change fetches the full history of the base branch and the change
under test, to avoid problems with unreachable commits.
Signed-off-by: Chris Kay <chris.kay@arm.com>
Change-Id: I7ed38a65678552fff5b0f5efabf6bafc06ea86ee
diff --git a/script/static-checks/common.sh b/script/static-checks/common.sh
deleted file mode 100644
index a2793b7..0000000
--- a/script/static-checks/common.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#
-# Copyright (c) 2024 Arm Limited. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-function get_merge_base() {
- git fetch --unshallow origin ${GERRIT_BRANCH#refs/heads/}
- git merge-base HEAD FETCH_HEAD | head -1
-}
diff --git a/script/static-checks/static-checks-banned-apis.sh b/script/static-checks/static-checks-banned-apis.sh
index 424bbcb..ba10537 100755
--- a/script/static-checks/static-checks-banned-apis.sh
+++ b/script/static-checks/static-checks-banned-apis.sh
@@ -7,10 +7,6 @@
# static-checks-banned-apis.sh <path-to-root-folder> [patch]
-this_dir="$(readlink -f "$(dirname "$0")")"
-. $this_dir/common.sh
-
-
LOG_FILE=$(mktemp -t banned-api-check.XXXX)
if [[ "$2" == "patch" ]]; then
@@ -43,5 +39,3 @@
rm -f "$LOG_FILE"
exit "$EXIT_VALUE"
-
-
diff --git a/script/static-checks/static-checks-check-copyright.sh b/script/static-checks/static-checks-check-copyright.sh
index 522bbe8..d80199a 100755
--- a/script/static-checks/static-checks-check-copyright.sh
+++ b/script/static-checks/static-checks-check-copyright.sh
@@ -7,10 +7,6 @@
# test-package-check-copyright.sh DIRECTORY
-this_dir="$(readlink -f "$(dirname "$0")")"
-. $this_dir/common.sh
-
-
DIRECTORY="$1"
TEST_CASE="Copyright headers of files modified by this patch"
diff --git a/script/static-checks/static-checks-coding-style-line-endings.sh b/script/static-checks/static-checks-coding-style-line-endings.sh
index 8dddace..41bb7c9 100755
--- a/script/static-checks/static-checks-coding-style-line-endings.sh
+++ b/script/static-checks/static-checks-coding-style-line-endings.sh
@@ -5,10 +5,6 @@
# SPDX-License-Identifier: BSD-3-Clause
#
-this_dir="$(readlink -f "$(dirname "$0")")"
-. $this_dir/common.sh
-
-
TEST_CASE="Line endings are valid"
EXIT_VALUE=0
diff --git a/script/static-checks/static-checks-coding-style.sh b/script/static-checks/static-checks-coding-style.sh
index 9ff51cf..018b926 100755
--- a/script/static-checks/static-checks-coding-style.sh
+++ b/script/static-checks/static-checks-coding-style.sh
@@ -9,10 +9,6 @@
# against the Linux coding style using the checkpatch.pl script from
# the Linux kernel source tree.
-this_dir="$(readlink -f "$(dirname "$0")")"
-. $this_dir/common.sh
-
-
TEST_CASE="Coding style on current patch"
echo "# Check coding style on the last patch"
diff --git a/script/static-checks/static-checks-cpu-erratum-order.sh b/script/static-checks/static-checks-cpu-erratum-order.sh
index 8631c48..e6e32c5 100755
--- a/script/static-checks/static-checks-cpu-erratum-order.sh
+++ b/script/static-checks/static-checks-cpu-erratum-order.sh
@@ -5,9 +5,6 @@
# SPDX-License-Identifier: BSD-3-Clause
#
-this_dir="$(readlink -f "$(dirname "$0")")"
-. $this_dir/common.sh
-
LOG_FILE=$(mktemp -t cpu_workaround_order_check_log.XXXX)
if [[ "$2" == "patch" ]]; then
diff --git a/script/static-checks/static-checks-detect-newly-added-files.sh b/script/static-checks/static-checks-detect-newly-added-files.sh
index 008a147..154e308 100755
--- a/script/static-checks/static-checks-detect-newly-added-files.sh
+++ b/script/static-checks/static-checks-detect-newly-added-files.sh
@@ -11,10 +11,6 @@
# It runs on every TF-A patch and detects the new files and updates
# the patch contibutor to include them for Coverity Scan analysis.
-this_dir="$(readlink -f "$(dirname "$0")")"
-. $this_dir/common.sh
-
-
LOG_FILE=$(mktemp -t files-detection-check.XXXX)
TFA_PATCH_NEWFILES_LIST=$(mktemp -t tfa-patch-newfiles-list.XXXX)
EXIT_VALUE=0
diff --git a/script/static-checks/static-checks-include-order.sh b/script/static-checks/static-checks-include-order.sh
index 21fcb72..67c8e4e 100755
--- a/script/static-checks/static-checks-include-order.sh
+++ b/script/static-checks/static-checks-include-order.sh
@@ -7,10 +7,6 @@
# unittest-include-order.sh <path-to-root-folder> [patch]
-this_dir="$(readlink -f "$(dirname "$0")")"
-. $this_dir/common.sh
-
-
LOG_FILE=$(mktemp -t include-order-check.XXXX)
if [[ "$2" == "patch" ]]; then
diff --git a/script/static-checks/static-checks.sh b/script/static-checks/static-checks.sh
index 05747f4..fd022a3 100755
--- a/script/static-checks/static-checks.sh
+++ b/script/static-checks/static-checks.sh
@@ -15,34 +15,12 @@
export CI_ROOT=$(pwd)
cd -
-. $CI_ROOT/script/static-checks/common.sh
+git fetch --unshallow --update-shallow origin
+git fetch --unshallow --update-shallow origin ${GERRIT_BRANCH} ${GERRIT_REFSPEC}
-merge_base=$(get_merge_base)
-if [[ -z "$merge_base" ]]; then
- echo "Failed to find merge base, fetching entire change history"
-
- # Set GERRIT_REFSPEC if not already defined
- if [[ -z "$GERRIT_REFSPEC" ]]; then
- if [[ "$TF_GERRIT_PROJECT" == *tf-a-tests ]]; then
- GERRIT_REFSPEC="$TFTF_GERRIT_REFSPEC"
- else
- GERRIT_REFSPEC="$TF_GERRIT_REFSPEC"
- fi
- fi
-
- git fetch --unshallow
- git fetch origin "$GERRIT_REFSPEC"
- git checkout FETCH_HEAD
-
- merge_base=$(get_merge_base)
-
- if [[ -z "$merge_base" ]]; then
- echo "Failed to determine merge base after fetching. Exiting." >&2
- exit 1
- fi
-fi
-
-export merge_base
+export merge_base=$(git merge-base \
+ $(head -n1 .git/FETCH_HEAD | cut -f1) \
+ $(tail -n1 .git/FETCH_HEAD | cut -f1))
export LOG_TEST_FILENAME=$(pwd)/static-checks.log