From 2af9f153a9ccdd3a9d67f114a939c5f5923e2999 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niccol=C3=B2=20Betto?= <niccolo.betto@skywarder.eu>
Date: Thu, 5 Dec 2024 23:13:26 +0000
Subject: [PATCH] Introduce versioned CI build based on tags

---
 .gitlab-ci.yml | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b03195f..e540e63 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,17 +2,29 @@ variables:
   GIT_SUBMODULE_STRATEGY: recursive
 
 stages:
-  - docker
+  - build
 
-docker:
-  stage: docker
+build:
+  stage: build
   image: docker
+  
   tags:
     - docker
+  
+  rules:
+    # If triggered by a push to the default branch...
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+      variables:
+        VERSION: "latest"         # ...push to latest...
+      changes:
+        - Dockerfile              # ...only if Dockerfile changed
+
+    # If triggered by tag creation...
+    - if: $CI_COMMIT_TAG
+      variables:
+        VERSION: $CI_COMMIT_TAG   # ...push to tag name
+  
   script:
     - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
-    - docker build -t $CI_REGISTRY_IMAGE:latest .
-    - docker push $CI_REGISTRY_IMAGE:latest
-  rules:
-    - changes:
-        - Dockerfile
+    - docker build -t $CI_REGISTRY_IMAGE:$VERSION .
+    - docker push $CI_REGISTRY_IMAGE:$VERSION
-- 
GitLab