From f17e105e04bb0391ceab7c2b90379ff674b1f59d Mon Sep 17 00:00:00 2001
From: "Balasankar \"Balu\" C" <balasankar@gitlab.com>
Date: Fri, 23 Sep 2022 07:55:32 +0530
Subject: [PATCH] Fix QA image name in FOSS pipelines

Signed-off-by: Balasankar "Balu" C <balasankar@gitlab.com>
---
 .gitlab/ci/build-images.gitlab-ci.yml | 22 +-----------------
 scripts/build_qa_image                | 32 +++++++++++++++++++++++++++
 2 files changed, 33 insertions(+), 21 deletions(-)
 create mode 100755 scripts/build_qa_image

diff --git a/.gitlab/ci/build-images.gitlab-ci.yml b/.gitlab/ci/build-images.gitlab-ci.yml
index 1b041c9af38bb..3c7056a92c1c8 100644
--- a/.gitlab/ci/build-images.gitlab-ci.yml
+++ b/.gitlab/ci/build-images.gitlab-ci.yml
@@ -15,27 +15,7 @@ build-qa-image:
   stage: build-images
   needs: []
   script:
-    # Tag with commit SHA by default
-    - export QA_IMAGE="${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_SHA}"
-    # For branches, tag with slugified branch name. For tags, use the tag directly
-    - export QA_IMAGE_BRANCH="${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_TAG:-$CI_COMMIT_REF_SLUG}"
-    # Auto-deploy tag format uses first 12 letters of commit SHA. Tag with that
-    # reference also
-    - export QA_IMAGE_FOR_AUTO_DEPLOY="${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_SHA:0:11}"
-    - echo $QA_IMAGE
-    - echo $QA_IMAGE_BRANCH
-    - echo $QA_IMAGE_FOR_AUTO_DEPLOY
-    - |
-      /kaniko/executor \
-        --context=${CI_PROJECT_DIR} \
-        --dockerfile=${CI_PROJECT_DIR}/qa/Dockerfile \
-        --destination=${QA_IMAGE} \
-        --destination=${QA_IMAGE_BRANCH} \
-        --destination=${QA_IMAGE_FOR_AUTO_DEPLOY} \
-        --build-arg=CHROME_VERSION=${CHROME_VERSION} \
-        --build-arg=DOCKER_VERSION=${DOCKER_VERSION} \
-        --build-arg=QA_BUILD_TARGET=${QA_BUILD_TARGET:-qa} \
-        --cache=true
+    - ./scripts/build_qa_image
 
 # This image is used by:
 # - The `CNG` pipelines (via the `review-build-cng` job): https://gitlab.com/gitlab-org/build/CNG/-/blob/cfc67136d711e1c8c409bf8e57427a644393da2f/.gitlab-ci.yml#L335
diff --git a/scripts/build_qa_image b/scripts/build_qa_image
new file mode 100755
index 0000000000000..f4ecb8ed6b6f3
--- /dev/null
+++ b/scripts/build_qa_image
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+QA_IMAGE_NAME="gitlab-ee-qa"
+
+if [ "${CI_PROJECT_NAME}" == "gitlabhq" ] || [ "${CI_PROJECT_NAME}" == "gitlab-foss" ]; then
+  QA_IMAGE_NAME="gitlab-ce-qa"
+fi
+
+# Tag with commit SHA by default
+QA_IMAGE="${CI_REGISTRY}/${CI_PROJECT_PATH}/${QA_IMAGE_NAME}:${CI_COMMIT_SHA}"
+# For branches, tag with slugified branch name. For tags, use the tag directly
+QA_IMAGE_BRANCH="${CI_REGISTRY}/${CI_PROJECT_PATH}/${QA_IMAGE_NAME}:${CI_COMMIT_TAG:-$CI_COMMIT_REF_SLUG}"
+
+DESTINATIONS="--destination=${QA_IMAGE} --destination=${QA_IMAGE_BRANCH}"
+
+# Auto-deploy tag format uses first 12 letters of commit SHA. Tag with that
+# reference also for EE images.
+if [ "${QA_IMAGE_NAME}" == "gitlab-ee-qa" ]; then
+  QA_IMAGE_FOR_AUTO_DEPLOY="${CI_REGISTRY}/${CI_PROJECT_PATH}/${QA_IMAGE_NAME}:${CI_COMMIT_SHA:0:11}"
+  DESTINATIONS="${DESTINATIONS} --destination=$QA_IMAGE_FOR_AUTO_DEPLOY"
+fi
+
+echo "Building QA image for destinations: ${DESTINATIONS}"
+
+/kaniko/executor \
+  --context="${CI_PROJECT_DIR}" \
+  --dockerfile="${CI_PROJECT_DIR}/qa/Dockerfile" \
+  --build-arg=CHROME_VERSION="${CHROME_VERSION}" \
+  --build-arg=DOCKER_VERSION="${DOCKER_VERSION}" \
+  --build-arg=QA_BUILD_TARGET="${QA_BUILD_TARGET:-qa}" \
+  --cache=true \
+  ${DESTINATIONS}
-- 
GitLab