CI: Build docker image also on tag push

Change-Id: Ifeaf8d52a41a18ccd4192fc0378206e8c85a26e2
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b145807..c808099 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -37,7 +37,7 @@
     - pushes
     - merge_requests
 
-# Build Docker image stage - available on all branches but only runs manually
+# Build Docker image stage - runs automatically for tags and is manually triggerable otherwise
 build-docker:
   stage: build
   image: docker:24.0.5
@@ -46,18 +46,30 @@
   before_script:
     - apk add --no-cache xz
   script:
-    - export IMAGE_TAG=${CI_COMMIT_TAG:-latest}
-    - export ARTIFACT_NAME=kalamar-plugin-export-${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA}.tar.xz
-    - docker build -t $DOCKER_IMAGE_NAME:$IMAGE_TAG .
-    - docker build -t $DOCKER_IMAGE_NAME:latest .
-    - docker save $DOCKER_IMAGE_NAME:$IMAGE_TAG | xz -c > $ARTIFACT_NAME
-    - ls -lh $ARTIFACT_NAME
+    - |
+      if [ -n "$CI_COMMIT_TAG" ]; then
+        export BUILD_SUFFIX="$CI_COMMIT_TAG"
+        export VERSIONED_IMAGE_NAME="$DOCKER_IMAGE_NAME-$BUILD_SUFFIX"
+        export ARTIFACT_NAME="kalamar-plugin-export-$BUILD_SUFFIX.tar.xz"
+        docker build -t "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" -t "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" -t "$DOCKER_IMAGE_NAME:latest" .
+        docker save "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" "$DOCKER_IMAGE_NAME:latest" | xz -c > "$ARTIFACT_NAME"
+      else
+        export BUILD_SUFFIX="$CI_COMMIT_SHORT_SHA"
+        export VERSIONED_IMAGE_NAME="$DOCKER_IMAGE_NAME-$BUILD_SUFFIX"
+        export ARTIFACT_NAME="kalamar-plugin-export-$BUILD_SUFFIX.tar.xz"
+        docker build -t "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" -t "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" .
+        docker save "$DOCKER_IMAGE_NAME:$BUILD_SUFFIX" "$VERSIONED_IMAGE_NAME:$BUILD_SUFFIX" | xz -c > "$ARTIFACT_NAME"
+      fi
+    - ls -lh "$ARTIFACT_NAME"
   artifacts:
-    name: "$ARTIFACT_NAME"
+    name: "kalamar-plugin-export-$BUILD_SUFFIX.tar.xz"
     paths:
       - "*.tar.xz"
     expire_in: 30 days
-  when: manual
+  rules:
+    - if: "$CI_COMMIT_TAG"
+      when: on_success
+    - when: manual
   allow_failure: false
 
 # Security scan stage (optional)