From 737907848d4a64954989970d78e2d40d8d3621ed Mon Sep 17 00:00:00 2001
From: Andrej Shadura <andrew.shadura@collabora.co.uk>
Date: Wed, 17 May 2023 09:43:43 +0200
Subject: [PATCH] Simplify image builds, tag each pipeline run separately

To make it easier to reproduce a setup or roll back to a previous
state, tag each pipeline run with a unique tag of its own in the
addition to a per-branch tag.

Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
---
 .gitlab-ci.yml | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e876b78..28a3544 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -41,8 +41,8 @@ codestyle:
 docker:
   stage: docker
   variables:
-    FULL_IMAGE_TAG: $CI_REGISTRY_IMAGE/obs-proxy:$CI_COMMIT_REF_SLUG
-    MANIFEST_NAME: obs-proxy
+    IMAGE_TAG: $CI_REGISTRY_IMAGE/obs-proxy:$CI_COMMIT_REF_SLUG
+    IMAGE_BUILD_TAG: $CI_REGISTRY_IMAGE/obs-proxy:$CI_COMMIT_SHORT_SHA-P$CI_PIPELINE_ID
     DEBIAN_FRONTEND: noninteractive
     BUILDAH_ISOLATION: chroot
   image:
@@ -54,12 +54,9 @@ docker:
     - update-binfmts --enable qemu-aarch64
   script:
     - buildah login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
-    - buildah manifest create ${MANIFEST_NAME}
-    - >
-      buildah bud --tag "${FULL_IMAGE_TAG}"
-      --manifest ${MANIFEST_NAME}
-      --arch arm64
-    - >
-      buildah bud --tag "${FULL_IMAGE_TAG}"
-      --manifest ${MANIFEST_NAME}
-    - buildah manifest push --format=v2s2 --all ${MANIFEST_NAME} docker://${FULL_IMAGE_TAG}
+    - buildah build --manifest ${IMAGE_BUILD_TAG} --platform linux/amd64,linux/arm64
+    - buildah manifest push --format=v2s2 --all ${IMAGE_BUILD_TAG} docker://${IMAGE_BUILD_TAG}
+    - echo "Pushed image ${IMAGE_BUILD_TAG}"
+    - buildah tag ${IMAGE_BUILD_TAG} ${IMAGE_TAG}
+    - buildah manifest push --format=v2s2 --all ${IMAGE_TAG} docker://${IMAGE_TAG}
+    - echo "Pushed image ${IMAGE_TAG}"
-- 
GitLab