diff --git a/.gitlab/ci/common.gitlab-ci.yml b/.gitlab/ci/common.gitlab-ci.yml
index 314d53955b060a31e738451fd25d99d6d7d8c249..650a010f442b8e21912d573d7e2253c32c68c05e 100644
--- a/.gitlab/ci/common.gitlab-ci.yml
+++ b/.gitlab/ci/common.gitlab-ci.yml
@@ -41,6 +41,17 @@
     - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
     - populate_stable_image_vars
   after_script:
+    # Variables set in `before_script` aren't available in `after_script`.
+    # Hence, we need to duplicate code setting UBI_PIPELINE and FIPS_PIPELINE
+    # variables based on various conditions.
+    - if [[ "${CI_COMMIT_TAG}" == *-ubi8 || "${CI_COMMIT_REF_NAME}" == *-ubi8 ]]; then
+    -   export UBI_PIPELINE="true"
+    - elif [[ "${CI_COMMIT_TAG}" == *-fips || "${CI_COMMIT_REF_NAME}" == *-fips ]]; then
+    -   export FIPS_PIPELINE="true"
+    - fi
+    - if [ "${FIPS_PIPELINE}" = "true" ]; then
+    -   export UBI_PIPELINE="true"
+    - fi
     - source build-scripts/build.sh
     - list_artifacts
     ## cleanup all mocked container tags from import_assets
diff --git a/.gitlab/ci/fips.gitlab-ci.yml b/.gitlab/ci/fips.gitlab-ci.yml
index 50021fc7a43606bc6ebe39465ea6e6d65c6c94bb..730d269ee217f48364045f099c72e80f5ee956df 100644
--- a/.gitlab/ci/fips.gitlab-ci.yml
+++ b/.gitlab/ci/fips.gitlab-ci.yml
@@ -35,6 +35,15 @@ include:
     - export BUILD_IMAGE="${CI_REGISTRY_IMAGE}/gitlab-ubi-builder:${BUILD_IMAGE_VERSION}-ubi8"
     - docker login -u "$CI_DEPENDENCY_PROXY_USER" -p "$CI_DEPENDENCY_PROXY_PASSWORD" "$CI_DEPENDENCY_PROXY_SERVER"
     - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
+  after_script:
+    - if [[ "${CI_COMMIT_TAG}" == *-fips || "${CI_COMMIT_REF_NAME}" == *-fips ]]; then
+    -   export FIPS_PIPELINE="true"
+    - fi
+    - export UBI_PIPELINE="true"
+    - source build-scripts/build.sh
+    - list_artifacts ubi
+    ## cleanup all mocked container tags from import_assets
+    - cleanup_mock_tags
   artifacts:
     paths:
       - artifacts/
diff --git a/.gitlab/ci/ubi.gitlab-ci.yml b/.gitlab/ci/ubi.gitlab-ci.yml
index f6b62bf9c923bc55f2acee1500eff1ee685513c9..c7c3e9864191fa623135a5741bfec8e56b943c86 100644
--- a/.gitlab/ci/ubi.gitlab-ci.yml
+++ b/.gitlab/ci/ubi.gitlab-ci.yml
@@ -49,6 +49,12 @@ gitlab-ubi-builder:
     - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
     - list_artifacts ubi
   after_script:
+    # Variables set in `before_script` aren't available in `after_script`.
+    # Hence, we need to duplicate code setting UBI_PIPELINE and FIPS_PIPELINE
+    # variables based on various conditions.
+    - if [[ "${CI_COMMIT_TAG}" == *-ubi8 || "${CI_COMMIT_REF_NAME}" == *-ubi8 ]]; then
+    -   export UBI_PIPELINE="true"
+    - fi
     - source build-scripts/build.sh
     - list_artifacts ubi
     ## cleanup all mocked container tags from import_assets
diff --git a/build-scripts/build.sh b/build-scripts/build.sh
index 3ec36519acb77ead1f5843bb8af18444904b9daa..9776842dda541beb5af09af49288264075db41c0 100644
--- a/build-scripts/build.sh
+++ b/build-scripts/build.sh
@@ -437,7 +437,7 @@ mock_tags_from_assets() {
 # Clean the macked container versions tag files, so they do not pollute
 # artifacts that will be used by later jobs.
 cleanup_mock_tags() {
-  if [ "${UBI_PIPELINE}" = 'true' ]; then
+  if [ "${UBI_PIPELINE}" = 'true' ] || [ "${FIPS_PIPELINE}" = 'true' ]; then
     echo "==== Cleaning up mocked tags from UBI import_assets"
     shopt -s nullglob
     containers="artifacts/container_versions/*_tag.txt"