From 1031016ad3f0d228ad676dd66eaa97e76febf9b6 Mon Sep 17 00:00:00 2001
From: Rachid Yahiaoui <rachid.yahiaoui@inra.fr>
Date: Fri, 22 Nov 2024 23:32:39 +0100
Subject: [PATCH 1/3] refactor( CI ) : use CI_COMMIT_REF_SLUG for branch names
 normalization

---
 .gitlab-ci.yml | 33 +++++++++++++++++----------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8cc6ab7fa..2c14f9e4a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,11 +20,9 @@ stages:
   - build_env
   - trigger
 
-before_script:
+.before_script_template: &before_script
   - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
   - echo   "Commit Short id = $CI_COMMIT_SHORT_SHA"
-  - BranchOrTag=$( echo $CI_COMMIT_REF_NAME | sed 's/\//_/g') # REPLACE '/' by '_'
-  - echo " >> Branch_or_Tag_Name == $BranchOrTag"
   
 development:
   stage: build_env
@@ -34,9 +32,9 @@ development:
     - stable  # Use stable runner
     - docker  # Use docker runner
   script:
-    - Branch=$( echo $CI_COMMIT_REF_NAME | sed 's/\//_/g') # REPLACE '/' by '_'
-    - IMAGE_NAME="$OPENADOM_DOCK_REG:$Branch"
-    - IMAGE_NAME_WITH_COMMIT_ID="$OPENADOM_DOCK_REG:$Branch-$CI_COMMIT_SHORT_SHA"
+    # $CI_COMMIT_REF_SLUG : Clean special characters and convert to lowercase with hyphens
+    - IMAGE_NAME="$OPENADOM_DOCK_REG:$CI_COMMIT_REF_SLUG"
+    - IMAGE_NAME_WITH_COMMIT_ID="$IMAGE_NAME-$CI_COMMIT_SHORT_SHA"
     - echo "Docker Image Name         = $IMAGE_NAME "
     - echo "Docker Image Name With ID = $IMAGE_NAME_WITH_COMMIT_ID"
     - docker build -f docker/Dockerfile -t $IMAGE_NAME .
@@ -45,9 +43,9 @@ development:
     - docker push $IMAGE_NAME_WITH_COMMIT_ID
   rules:
     # Trigger on 'develop' branch automatically, disable for 'main' and tags, manual for others
-    - if: '$CI_COMMIT_REF_NAME == "develop"'
+    - if: '$CI_COMMIT_REF_SLUG == "develop"'
       when: on_success
-    - if: '$CI_COMMIT_REF_NAME == "main" || $CI_COMMIT_TAG'
+    - if: '$CI_COMMIT_REF_SLUG == "main" || $CI_COMMIT_TAG'
       when: never
     - when: manual
 
@@ -59,8 +57,9 @@ preprod:
     - stable  # Use stable runner
     - docker  # Use docker runner
   script:
-    - IMAGE_NAME="$OPENADOM_DOCK_REG:$CI_COMMIT_REF_NAME"
-    - IMAGE_NAME_WITH_COMMIT_ID="$OPENADOM_DOCK_REG:$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA"
+    # $CI_COMMIT_REF_SLUG : Clean special characters and convert to lowercase with hyphens
+    - IMAGE_NAME="$OPENADOM_DOCK_REG:$CI_COMMIT_REF_SLUG"
+    - IMAGE_NAME_WITH_COMMIT_ID="$IMAGE_NAME-$CI_COMMIT_SHORT_SHA"
     - echo "Docker Image Name         = $IMAGE_NAME "
     - echo "Docker Image Name With ID = $IMAGE_NAME_WITH_COMMIT_ID"
     - docker build -f docker/Dockerfile -t $IMAGE_NAME .
@@ -69,7 +68,7 @@ preprod:
     - docker push $IMAGE_NAME_WITH_COMMIT_ID
   rules:
     # Automatically trigger for 'main' branch
-    - if: '$CI_COMMIT_REF_NAME == "main"'
+    - if: '$CI_COMMIT_REF_SLUG == "main"'
       when: on_success
     - when: never 
 
@@ -86,6 +85,8 @@ production:
   tags:
     - stable  # Use stable runner
     - docker  # Use docker runner
+  before_script:
+    *before_script
   script:
     - echo "Validating tag format for $CI_COMMIT_TAG"
     # Check if a tag is provided
@@ -115,19 +116,19 @@ production:
 deployment:
   stage: trigger
   rules:
-    - if: '$CI_COMMIT_REF_NAME == "develop"'  # Development Env
+    - if: '$CI_COMMIT_REF_SLUG == "develop"'  # Development Env
       variables:
         TRIGGERED_BY_PARENT: 'true'
         ENV: 'development'
-        OA_FRONTEND_VERSION: '$CI_COMMIT_REF_NAME' # develop branch
+        OA_FRONTEND_VERSION: '$CI_COMMIT_REF_SLUG' # develop branch
         INIT_DB_USER: true
         REMOVE_VOLUMES: true
       when: on_success
-    - if: '$CI_COMMIT_REF_NAME == "main"'  # Preprod Env
+    - if: '$CI_COMMIT_REF_SLUG == "main"'  # Preprod Env
       variables:
         TRIGGERED_BY_PARENT: 'true'
         ENV: 'preprod'
-        OA_FRONTEND_VERSION: '$CI_COMMIT_REF_NAME' # main branch
+        OA_FRONTEND_VERSION: '$CI_COMMIT_REF_SLUG' # main branch
         INIT_DB_USER: true
         REMOVE_VOLUMES: true 
       when: on_success
@@ -145,7 +146,7 @@ deployment:
       variables:
         TRIGGERED_BY_PARENT: 'true'
         ENV: "development"
-        OA_FRONTEND_VERSION: '$(echo $CI_COMMIT_REF_NAME | sed "s/\//_/g")' # REPLACE '/' by '_'
+        OA_FRONTEND_VERSION: '$CI_COMMIT_REF_SLUG'
         INIT_DB_USER: true
         REMOVE_VOLUMES: true
   trigger:
-- 
GitLab


From 9588c8999764091fe10a8325a1bc184db6a91ce1 Mon Sep 17 00:00:00 2001
From: Rachid Yahiaoui <rachid.yahiaoui@inra.fr>
Date: Fri, 22 Nov 2024 23:53:16 +0100
Subject: [PATCH 2/3] add detailed logs for stages

---
 .gitlab-ci.yml | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2c14f9e4a..5a5fc8838 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -31,15 +31,20 @@ development:
   tags:
     - stable  # Use stable runner
     - docker  # Use docker runner
+  before_script:
+    *before_script
   script:
     # $CI_COMMIT_REF_SLUG : Clean special characters and convert to lowercase with hyphens
     - IMAGE_NAME="$OPENADOM_DOCK_REG:$CI_COMMIT_REF_SLUG"
     - IMAGE_NAME_WITH_COMMIT_ID="$IMAGE_NAME-$CI_COMMIT_SHORT_SHA"
     - echo "Docker Image Name         = $IMAGE_NAME "
     - echo "Docker Image Name With ID = $IMAGE_NAME_WITH_COMMIT_ID"
+    - echo "Building Docker image     = $IMAGE_NAME"
     - docker build -f docker/Dockerfile -t $IMAGE_NAME .
+    - echo  "Pushing Docker image to registry = $IMAGE_NAME"
     - docker push $IMAGE_NAME 
     - docker tag  $IMAGE_NAME $IMAGE_NAME_WITH_COMMIT_ID
+    - echo  "Pushing tagged Docker image to registry = $IMAGE_NAME_WITH_COMMIT_ID"
     - docker push $IMAGE_NAME_WITH_COMMIT_ID
   rules:
     # Trigger on 'develop' branch automatically, disable for 'main' and tags, manual for others
@@ -47,7 +52,7 @@ development:
       when: on_success
     - if: '$CI_COMMIT_REF_SLUG == "main" || $CI_COMMIT_TAG'
       when: never
-    - when: manual
+    - when:before_script manual
 
 preprod:
   stage: build_env
@@ -56,15 +61,20 @@ preprod:
   tags:
     - stable  # Use stable runner
     - docker  # Use docker runner
+  before_script:
+    *before_script
   script:
     # $CI_COMMIT_REF_SLUG : Clean special characters and convert to lowercase with hyphens
     - IMAGE_NAME="$OPENADOM_DOCK_REG:$CI_COMMIT_REF_SLUG"
     - IMAGE_NAME_WITH_COMMIT_ID="$IMAGE_NAME-$CI_COMMIT_SHORT_SHA"
     - echo "Docker Image Name         = $IMAGE_NAME "
     - echo "Docker Image Name With ID = $IMAGE_NAME_WITH_COMMIT_ID"
+    - echo "Building Docker image     = $IMAGE_NAME"
     - docker build -f docker/Dockerfile -t $IMAGE_NAME .
+    - echo  "Pushing Docker image to registry = $IMAGE_NAME"
     - docker push $IMAGE_NAME 
     - docker tag  $IMAGE_NAME $IMAGE_NAME_WITH_COMMIT_ID
+    - echo  "Pushing tagged Docker image to registry = $IMAGE_NAME_WITH_COMMIT_ID"
     - docker push $IMAGE_NAME_WITH_COMMIT_ID
   rules:
     # Automatically trigger for 'main' branch
@@ -95,9 +105,9 @@ production:
         # Validate tag format with grep
         if echo "$CI_COMMIT_TAG" | grep -qE "^[0-9]+(\.[0-9]+){0,2}$" && ! echo "$CI_COMMIT_TAG" | grep -q "\.$"; then
           echo  "Tag format is valid = $CI_COMMIT_TAG"
-          echo  "Building Docker image..."
+          echo  "Building Docker image : $OPENADOM_DOCK_REG:$CI_COMMIT_TAG"
           docker build -f docker/Dockerfile -t $OPENADOM_DOCK_REG:$CI_COMMIT_TAG .
-          echo  "Pushing Docker image to registry..."
+          echo  "Pushing Docker image to registry : $OPENADOM_DOCK_REG:$CI_COMMIT_TAG"
           docker push $OPENADOM_DOCK_REG:$CI_COMMIT_TAG
         else
           echo "Invalid tag format = $CI_COMMIT_TAG"
-- 
GitLab


From c4ea208ffaafc2537e44c81c7294690b56b788d6 Mon Sep 17 00:00:00 2001
From: Rachid Yahiaoui <rachid.yahiaoui@inra.fr>
Date: Fri, 22 Nov 2024 23:56:11 +0100
Subject: [PATCH 3/3] Fix a typo

---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5a5fc8838..0b5a9c746 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -52,7 +52,7 @@ development:
       when: on_success
     - if: '$CI_COMMIT_REF_SLUG == "main" || $CI_COMMIT_TAG'
       when: never
-    - when:before_script manual
+    - when: manual
 
 preprod:
   stage: build_env
-- 
GitLab