[PATCH v1 2/3] drm/ci: check-patch: unshallow repository before fetching

From: Vignesh Raman
Date: Fri Mar 28 2025 - 07:03:53 EST


Ensure the repository is not shallow before fetching branches in
check-patch job. This prevents issues where git merge-base fails
due to incomplete history. Set the timeout of check-patch job to 1h.

Signed-off-by: Vignesh Raman <vignesh.raman@xxxxxxxxxxxxx>
---
drivers/gpu/drm/ci/check-patch.py | 16 ++++++++++++----
drivers/gpu/drm/ci/static-checks.yml | 1 +
2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/ci/check-patch.py b/drivers/gpu/drm/ci/check-patch.py
index a5f399a20e25..b206f12feb64 100755
--- a/drivers/gpu/drm/ci/check-patch.py
+++ b/drivers/gpu/drm/ci/check-patch.py
@@ -18,12 +18,20 @@ repourl = "https://gitlab.freedesktop.org/%s.git"; % os.environ["CI_MERGE_REQUEST
# GitLab CI environment does not give us any direct info about the
# base for the user's branch. We thus need to figure out a common
# ancestor between the user's branch and current git master.
-os.environ["GIT_DEPTH"] = "1000"
subprocess.call(["git", "remote", "remove", "check-patch"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
subprocess.check_call(["git", "remote", "add", "check-patch", repourl])
-subprocess.check_call(["git", "fetch", "check-patch", os.environ["CI_MERGE_REQUEST_TARGET_BRANCH_NAME"]],
- stdout=subprocess.DEVNULL,
- stderr=subprocess.DEVNULL)
+
+# Check if the repository is shallow
+shallow = subprocess.run(["git", "rev-parse", "--is-shallow-repository"],
+ stdout=subprocess.PIPE, universal_newlines=True).stdout.strip()
+
+if shallow == "true":
+ print("Repository is shallow, unshallow git history")
+ subprocess.check_call(["git", "fetch", "--unshallow", "check-patch", os.environ["CI_MERGE_REQUEST_TARGET_BRANCH_NAME"]],
+ stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
+else:
+ subprocess.check_call(["git", "fetch", "check-patch", os.environ["CI_MERGE_REQUEST_TARGET_BRANCH_NAME"]],
+ stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)

ancestor = subprocess.check_output(["git", "merge-base",
"check-patch/%s" % os.environ["CI_MERGE_REQUEST_TARGET_BRANCH_NAME"], "HEAD"],
diff --git a/drivers/gpu/drm/ci/static-checks.yml b/drivers/gpu/drm/ci/static-checks.yml
index 13ffa827b7fa..734d6055fa65 100644
--- a/drivers/gpu/drm/ci/static-checks.yml
+++ b/drivers/gpu/drm/ci/static-checks.yml
@@ -1,4 +1,5 @@
check-patch:
+ timeout: "1h"
extends:
- .build
- .use-debian/x86_64_build
--
2.47.2