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