diff --git a/.gitlab/ci/build-images.gitlab-ci.yml b/.gitlab/ci/build-images.gitlab-ci.yml index 1b041c9af38bb8a39daba9e80a8bf1d9f3d9f19e..3c7056a92c1c899ca39a41e7d89cf9742143f874 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 0000000000000000000000000000000000000000..f4ecb8ed6b6f35d6842d229b3d720f0988df601e --- /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}