From db49abcc2978cba4bc5a7988e11734ce2d85b34b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9my=20Coutable?= <remy@rymai.me>
Date: Tue, 30 Jul 2024 17:07:47 +0200
Subject: [PATCH] ci: Bump Git version to 2.45 in CI images
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Rémy Coutable <remy@rymai.me>
---
 .gitlab-ci.yml                             |  4 +--
 .gitlab/ci/frontend.gitlab-ci.yml          |  2 +-
 .gitlab/ci/includes/as-if-jh.gitlab-ci.yml |  1 +
 .gitlab/ci/qa.gitlab-ci.yml                | 14 +++++++---
 .gitlab/ci/rails.gitlab-ci.yml             |  2 +-
 .gitlab/ci/review.gitlab-ci.yml            | 31 ++++++++++++++--------
 .gitlab/ci/test-on-cng/main.gitlab-ci.yml  |  2 +-
 .gitlab/ci/test-on-gdk/main.gitlab-ci.yml  |  2 +-
 .gitlab/ci/version.yml                     | 17 +++++++++---
 .gitlab/ci/workhorse.gitlab-ci.yml         |  4 +--
 qa/Dockerfile                              | 13 ++++++---
 scripts/build_qa_image                     |  9 +++++--
 12 files changed, 68 insertions(+), 33 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e6397c9e92a1b..6a05caa79d749 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -160,7 +160,7 @@ workflow:
 
 variables:
   PG_VERSION: "14"
-  DEFAULT_CI_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}-node-${NODE_VERSION}-postgresql-${PG_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-yarn-1.22-graphicsmagick-1.3.36"
+  DEFAULT_CI_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}-node-${NODE_VERSION}-postgresql-${PG_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-${GIT_VERSION}-lfs-${LFS_VERSION}-chrome-${CHROME_VERSION}-yarn-${YARN_VERSION}-graphicsmagick-${GRAPHICSMAGICK_VERSION}"
   DEFAULT_JOB_TAG: "gitlab-org"
   DEFAULT_RSPEC_PREDICTIVE_JOB_TAGS: "${DEFAULT_JOB_TAG}" # Separated by commas, overridden in JiHu
   # We set $GITLAB_DEPENDENCY_PROXY to another variable (since it's set at the group level and has higher precedence than .gitlab-ci.yml)
@@ -219,7 +219,7 @@ variables:
   DOCS_REVIEW_APPS_DOMAIN: "docs.gitlab-review.app"
   DOCS_GITLAB_REPO_SUFFIX: "ee"
 
-  REVIEW_APPS_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}:gcloud-383-kubectl-1.28-helm-3.9"
+  REVIEW_APPS_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}:gcloud-${GCLOUD_VERSION}-kubectl-${KUBECTL_VERSION}-helm-${HELM_VERSION}"
   REVIEW_APPS_DOMAIN: "gitlab-review.app"
   REVIEW_APPS_GCP_PROJECT: "gitlab-review-apps"
   REVIEW_APPS_GCP_REGION: "us-central1"
diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml
index 5c0fb0b4b4aaa..980da48a317e1 100644
--- a/.gitlab/ci/frontend.gitlab-ci.yml
+++ b/.gitlab/ci/frontend.gitlab-ci.yml
@@ -11,7 +11,7 @@
     - .default-retry
     - .default-before_script
     - .assets-compile-cache
-  image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-node-${NODE_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.33-lfs-2.9-yarn-1.22-graphicsmagick-1.3.36
+  image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-node-${NODE_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-${GIT_VERSION}-lfs-${LFS_VERSION}-yarn-${YARN_VERSION}-graphicsmagick-${GRAPHICSMAGICK_VERSION}
   variables:
     SETUP_DB: "false"
     WEBPACK_VENDOR_DLL: "true"
diff --git a/.gitlab/ci/includes/as-if-jh.gitlab-ci.yml b/.gitlab/ci/includes/as-if-jh.gitlab-ci.yml
index 3b91ab3748f0d..ea8e0c98c63c3 100644
--- a/.gitlab/ci/includes/as-if-jh.gitlab-ci.yml
+++ b/.gitlab/ci/includes/as-if-jh.gitlab-ci.yml
@@ -94,6 +94,7 @@ sync-as-if-jh-branch:
       - RUST_VERSION
       - PG_VERSION
       - RUBYGEMS_VERSION
+      - GIT_VERSION
       - CHROME_VERSION
       - NODE_ENV
   variables:
diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml
index bb11ece96ae28..69cc509a05fad 100644
--- a/.gitlab/ci/qa.gitlab-ci.yml
+++ b/.gitlab/ci/qa.gitlab-ci.yml
@@ -44,13 +44,19 @@
     QA_EXPORT_TEST_METRICS: "true" # Export test metrics directly to influxdb by default
   inherit:
     variables:
+      - BUILD_OS
       - CHROME_VERSION
-      - RUBY_VERSION_DEFAULT
-      - RUBY_VERSION_NEXT
-      - RUBY_VERSION
       - DOCKER_VERSION
-      - BUILD_OS
+      - GCLOUD_VERSION
+      - GIT_VERSION
+      - GO_VERSION
+      - HELM_VERSION
+      - KUBECTL_VERSION
+      - LFS_VERSION
       - OS_VERSION
+      - RUBY_VERSION_DEFAULT
+      - RUBY_VERSION_NEXT
+      - RUBYGEMS_VERSION
       - REGISTRY_GROUP
       - REGISTRY_HOST
       - OMNIBUS_GITLAB_CACHE_UPDATE
diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml
index 3ab614cbf5147..35cdbaa940c3f 100644
--- a/.gitlab/ci/rails.gitlab-ci.yml
+++ b/.gitlab/ci/rails.gitlab-ci.yml
@@ -53,7 +53,7 @@ setup-test-env:
 setup-test-env-fips:
   extends:
     - setup-test-env
-  image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-exiftool-12.60
+  image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-${GIT_VERSION}-exiftool-${EXIFTOOL_VERSION}
   variables:
     BUILD_OS: "ubi"
     OS_VERSION: ${UBI_VERSION}
diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml
index 3c9fbbdd1c144..c6be32bd779d1 100644
--- a/.gitlab/ci/review.gitlab-ci.yml
+++ b/.gitlab/ci/review.gitlab-ci.yml
@@ -86,19 +86,28 @@ start-review-app-pipeline:
   # https://gitlab.com/gitlab-org/gitlab/-/issues/387183
   inherit:
     variables:
-      - REGISTRY_GROUP
-      - REGISTRY_HOST
-      - REVIEW_APPS_DOMAIN
-      - REVIEW_APPS_GCP_PROJECT
-      - REVIEW_APPS_GCP_REGION
-      - REVIEW_APPS_IMAGE
-      - RUBY_VERSION_DEFAULT
-      - RUBY_VERSION_NEXT
-      - RUBY_VERSION
       - BUILD_OS
-      - OS_VERSION
-      - DOCKER_VERSION
       - CHROME_VERSION
+      - DOCKER_VERSION
+      - EXIFTOOL_VERSION
+      - GCLOUD_VERSION
+      - GIT_VERSION
+      - GO_VERSION
+      - GRAPHICSMAGICK_VERSION
+      - HELM_VERSION
+      - KIND_VERSION
+      - KUBECTL_VERSION
+      - LFS_VERSION
+      - NODE_VERSION
+      - OS_VERSION
+      - RUBY_VERSION_DEFAULT
+      - RUBY_VERSION_NEXT
+      - RUBYGEMS_VERSION
+      - RUST_VERSION
+      - UBI_VERSION
+      - YARN_VERSION
+      - REGISTRY_GROUP
+      - REGISTRY_HOST
   # These variables are set in the pipeline schedules.
   # They need to be explicitly passed on to the child pipeline.
   # https://docs.gitlab.com/ee/ci/pipelines/multi_project_pipelines.html#pass-cicd-variables-to-a-downstream-pipeline-by-using-the-variables-keyword
diff --git a/.gitlab/ci/test-on-cng/main.gitlab-ci.yml b/.gitlab/ci/test-on-cng/main.gitlab-ci.yml
index 5a43ed7c18f41..10e0ea9994749 100644
--- a/.gitlab/ci/test-on-cng/main.gitlab-ci.yml
+++ b/.gitlab/ci/test-on-cng/main.gitlab-ci.yml
@@ -11,7 +11,7 @@ workflow:
     - when: always
 
 .cng-test:
-  image: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}:git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-kubectl-1.23-helm-3.14-kind-0.20"
+  image: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}:git-${GIT_VERSION}-lfs-${LFS_VERSION}-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-kubectl-${KUBECTL_VERSION}-helm-${HELM_VERSION}-kind-${KIND_VERSION}"
   stage: test
   extends:
     - .qa-cache
diff --git a/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml b/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml
index 6020ce1918b8a..4a1965ff50aa8 100644
--- a/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml
+++ b/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml
@@ -56,7 +56,7 @@ include:
     - mv $CI_BUILDS_DIR/*.log $CI_PROJECT_DIR/
 
 .gdk-qa-base:
-  image: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}:git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-gcloud-383-kubectl-1.23"
+  image: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}:git-${GIT_VERSION}-lfs-${LFS_VERSION}-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-gcloud-${GCLOUD_VERSION}-kubectl-${KUBECTL_VERSION}-helm-${HELM_VERSION}"
   extends:
     - .qa-cache
     - .docker-in-docker
diff --git a/.gitlab/ci/version.yml b/.gitlab/ci/version.yml
index ec66a808f03ab..ebfd6474b2f43 100644
--- a/.gitlab/ci/version.yml
+++ b/.gitlab/ci/version.yml
@@ -1,12 +1,21 @@
 variables:
   BUILD_OS: "debian"
-  OS_VERSION: "bookworm"
-  UBI_VERSION: "8.6"
   CHROME_VERSION: "123"
   DOCKER_VERSION: "24.0.5"
-  RUBYGEMS_VERSION: "3.4"
+  EXIFTOOL_VERSION: "12.60"
+  GCLOUD_VERSION: "413"
+  GIT_VERSION: "2.45"
   GO_VERSION: "1.22"
+  GRAPHICSMAGICK_VERSION: "1.3.36"
+  HELM_VERSION: "3.14"
+  KIND_VERSION: "0.20"
+  KUBECTL_VERSION: "1.28"
+  LFS_VERSION: "2.9"
   NODE_VERSION: "20.12"
-  RUST_VERSION: "1.73"
+  OS_VERSION: "bookworm"
   RUBY_VERSION_DEFAULT: "3.1.5"
   RUBY_VERSION_NEXT: "3.2.4"
+  RUBYGEMS_VERSION: "3.4"
+  RUST_VERSION: "1.73"
+  UBI_VERSION: "8.6"
+  YARN_VERSION: "1.22"
diff --git a/.gitlab/ci/workhorse.gitlab-ci.yml b/.gitlab/ci/workhorse.gitlab-ci.yml
index 5b798425d8e6f..e259b9e092d9a 100644
--- a/.gitlab/ci/workhorse.gitlab-ci.yml
+++ b/.gitlab/ci/workhorse.gitlab-ci.yml
@@ -15,7 +15,7 @@ workhorse:verify:
   extends:
     - .workhorse:rules:workhorse
     - .gitaly-with-transactions
-  image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-exiftool-12.60
+  image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-${GIT_VERSION}-exiftool-${EXIFTOOL_VERSION}
   services:
     - name: redis:${REDIS_VERSION}-alpine
   variables:
@@ -68,7 +68,7 @@ workhorse:test fips:
     matrix:
       - GO_VERSION: ["1.21", "1.22"]
         REDIS_VERSION: ["7.0", "6.2"]
-  image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-exiftool-12.60
+  image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-${GIT_VERSION}-exiftool-${EXIFTOOL_VERSION}
   variables:
     FIPS_MODE: 1
     BUILD_OS: "ubi"
diff --git a/qa/Dockerfile b/qa/Dockerfile
index 1db95ad1f330d..b83677f7de729 100644
--- a/qa/Dockerfile
+++ b/qa/Dockerfile
@@ -1,11 +1,16 @@
-ARG DOCKER_VERSION=24.0.5
-ARG CHROME_VERSION=123
-ARG RUBY_VERSION=3.2.4
 ARG BUILD_OS=debian
+ARG CHROME_VERSION=123
+ARG DOCKER_VERSION=24.0.5
+ARG GCLOUD_VERSION=413
+ARG GIT_VERSION=2.45
+ARG HELM_VERSION=3.14
+ARG KUBECTL_VERSION=1.28
+ARG LFS_VERSION=2.9
 ARG OS_VERSION=bookworm
 ARG QA_BUILD_TARGET=ee
+ARG RUBY_VERSION=3.2.4
 
-FROM registry.gitlab.com/gitlab-org/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}:git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-gcloud-383-kubectl-1.23 AS foss
+FROM registry.gitlab.com/gitlab-org/gitlab-build-images/${BUILD_OS}-${OS_VERSION}-ruby-${RUBY_VERSION}:git-${GIT_VERSION}-lfs-${LFS_VERSION}-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}-gcloud-${GCLOUD_VERSION}-kubectl-${KUBECTL_VERSION}-helm-${HELM_VERSION} AS foss
 LABEL maintainer="GitLab Quality Department <quality@gitlab.com>"
 
 ENV DEBIAN_FRONTEND="noninteractive"
diff --git a/scripts/build_qa_image b/scripts/build_qa_image
index cd465ec33e6af..9558bd45f1f18 100755
--- a/scripts/build_qa_image
+++ b/scripts/build_qa_image
@@ -84,12 +84,17 @@ docker buildx build \
   --cache-from="$QA_IMAGE_BRANCH" \
   --cache-from="$QA_IMAGE_MASTER" \
   --platform=${ARCH:-amd64} \
+  --build-arg=BUILD_OS="${BUILD_OS}" \
   --build-arg=CHROME_VERSION="${CHROME_VERSION}" \
   --build-arg=DOCKER_VERSION="${DOCKER_VERSION}" \
-  --build-arg=RUBY_VERSION="${RUBY_VERSION}" \
-  --build-arg=BUILD_OS="${BUILD_OS}" \
+  --build-arg=GCLOUD_VERSION="${GCLOUD_VERSION}" \
+  --build-arg=GIT_VERSION="${GIT_VERSION}" \
+  --build-arg=HELM_VERSION="${HELM_VERSION}" \
+  --build-arg=KUBECTL_VERSION="${KUBECTL_VERSION}" \
+  --build-arg=LFS_VERSION="${LFS_VERSION}" \
   --build-arg=OS_VERSION="${OS_VERSION}" \
   --build-arg=QA_BUILD_TARGET="${QA_BUILD_TARGET}" \
+  --build-arg=RUBY_VERSION="${RUBY_VERSION}" \
   --file="${CI_PROJECT_DIR}/qa/Dockerfile" \
   --push \
   --provenance=false \
-- 
GitLab