From 1911eb11fe0c63c88305311debee1760fa74d13e Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Tue, 20 Feb 2024 17:30:09 +0000
Subject: [PATCH] Issue #3419182 by longwave: Test-only job fails with
 "couldn't find remote ref refs/heads/11.x" when 11.x branch does not exist in
 fork

---
 .gitlab-ci/scripts/test-only.sh | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/.gitlab-ci/scripts/test-only.sh b/.gitlab-ci/scripts/test-only.sh
index f54b8b05d77c..20f271daa255 100755
--- a/.gitlab-ci/scripts/test-only.sh
+++ b/.gitlab-ci/scripts/test-only.sh
@@ -1,29 +1,28 @@
 #!/bin/bash
 
-export TARGET_BRANCH=${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}${CI_COMMIT_BRANCH}
-git fetch -vn --depth=50 origin "+refs/heads/$TARGET_BRANCH:refs/heads/$TARGET_BRANCH"
+BASELINE=${CI_MERGE_REQUEST_TARGET_BRANCH_SHA:-$CI_MERGE_REQUEST_DIFF_BASE_SHA}
 
-echo "ℹ️ Changes from ${TARGET_BRANCH}"
-git diff ${CI_MERGE_REQUEST_DIFF_BASE_SHA} --name-only
+echo "ℹ️ Changes from ${BASELINE}"
+git diff ${BASELINE} --name-only
 echo "If this list contains more files than what you changed, then you need to rebase your branch."
 
 echo "1️⃣ Reverting non test changes"
-if [[ $(git diff ${CI_MERGE_REQUEST_DIFF_BASE_SHA} --diff-filter=DM --name-only|grep -Ev "*/tests/*"|grep -v .gitlab-ci|grep -v scripts/run-tests.sh) ]]; then
-git diff ${CI_MERGE_REQUEST_DIFF_BASE_SHA} --diff-filter=DM --name-only|grep -Ev "*/tests/*"|grep -v .gitlab-ci|grep -v scripts/run-tests.sh|while read file;do
+if [[ $(git diff ${BASELINE} --diff-filter=DM --name-only|grep -Ev "*/tests/*"|grep -v .gitlab-ci|grep -v scripts/run-tests.sh) ]]; then
+git diff ${BASELINE} --diff-filter=DM --name-only|grep -Ev "*/tests/*"|grep -v .gitlab-ci|grep -v scripts/run-tests.sh|while read file;do
   echo "↩️ Reverting $file";
-  git checkout refs/heads/${TARGET_BRANCH} -- $file;
+  git checkout ${BASELINE} -- $file;
 done
 fi
-if [[ $(git diff ${CI_MERGE_REQUEST_DIFF_BASE_SHA} --diff-filter=A --name-only|grep -Ev "*/tests/*"|grep -v .gitlab-ci|grep -v scripts/run-tests.sh) ]]; then
-git diff ${CI_MERGE_REQUEST_DIFF_BASE_SHA} --diff-filter=A --name-only|grep -Ev "*/tests/*"|grep -v .gitlab-ci|grep -v scripts/run-tests.sh|while read file;do
+if [[ $(git diff ${BASELINE} --diff-filter=A --name-only|grep -Ev "*/tests/*"|grep -v .gitlab-ci|grep -v scripts/run-tests.sh) ]]; then
+git diff ${BASELINE} --diff-filter=A --name-only|grep -Ev "*/tests/*"|grep -v .gitlab-ci|grep -v scripts/run-tests.sh|while read file;do
   echo "🗑️️ Deleting $file";
   git rm $file;
 done
 fi
 
 echo "2️⃣ Running test changes for this branch"
-if [[ $(git diff ${CI_MERGE_REQUEST_DIFF_BASE_SHA} --name-only|grep -E "Test.php$") ]]; then
-for test in `git diff ${CI_MERGE_REQUEST_DIFF_BASE_SHA} --name-only|grep -E "Test.php$"`; do
+if [[ $(git diff ${BASELINE} --name-only|grep -E "Test.php$") ]]; then
+for test in `git diff ${BASELINE} --name-only|grep -E "Test.php$"`; do
   sudo SIMPLETEST_BASE_URL="$SIMPLETEST_BASE_URL" SIMPLETEST_DB="$SIMPLETEST_DB" MINK_DRIVER_ARGS_WEBDRIVER="$MINK_DRIVER_ARGS_WEBDRIVER" -u www-data ./vendor/bin/phpunit -c core $test --log-junit=./sites/default/files/simpletest/phpunit-`echo $test|sed 's/\//_/g' `.xml;
 done;
 fi
-- 
GitLab