From ab6e4210862155602f55f3ac399fb3ee43833b82 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gr=C3=A9goire?= <gregoire.kubler@proton.me>
Date: Wed, 4 Dec 2024 15:33:26 +0100
Subject: [PATCH] fix: reworked tag artefact retrieval process

Previously worked on supposition that all version were synched
(i.e. all aidge modules were on 0.3.xx at the same time).
This is not the case. This led to issue like this releas pipeline
https://gitlab.eclipse.org/eclipse/aidge/aidge_quantization/-/pipelines?page=1&scope=all&ref=v0.2.0
where version retrieved for core & backend cpu were 0.2.xx instead of 0.3.xx
---
 .gitlab/ci/download/select_jobs.gitlab-ci.yml | 51 +++----------------
 1 file changed, 8 insertions(+), 43 deletions(-)

diff --git a/.gitlab/ci/download/select_jobs.gitlab-ci.yml b/.gitlab/ci/download/select_jobs.gitlab-ci.yml
index 3c6f278..88816d1 100644
--- a/.gitlab/ci/download/select_jobs.gitlab-ci.yml
+++ b/.gitlab/ci/download/select_jobs.gitlab-ci.yml
@@ -89,9 +89,6 @@
         # CASE WHERE A COMMIT TAG IS CREATED
         elif [[ ! -z "$CI_COMMIT_TAG" ]]; then
           # retrieving data from current project
-          TAG_MAJOR=$(echo "$CI_COMMIT_TAG" | awk -F'[v.]' '{print $2}')
-          TAG_MINOR=$(echo "$CI_COMMIT_TAG" | awk -F'[v.]' '{print $3}')
-          TAG_FIX=$(echo "$CI_COMMIT_TAG" | awk -F'[v.]' '{print $4}')
           echo "Retrieving tags of $DEP_NAME via url $DEP_API_URL/repository/tags?per_page=100."
           DEP_TAGS=$(jq --slurp '
               .[]
@@ -103,29 +100,9 @@
             echo "No tag found for $DEP_NAME at url $DEP_API_URL/repository/tags?per_page=100"
             echo "Leaving early."
             exit 1
-          fi
-
-          echo "Looking for latest fix release corresponding to minor  release : v$TAG_MAJOR.$TAG_MINOR.*"
-          SELECTED_DEPS_TAGS=$(jq --arg major "$TAG_MAJOR" \
-                                  --arg minor "$TAG_MINOR" \
-                                  'map(select(.name | startswith("v\($major).\($minor).")))' <<< "$DEP_TAGS")
-          if [[ $(jq length <<< $SELECTED_DEPS_TAGS) == 0 ]]; then
-            echo "No release v$TAG_MAJOR.$TAG_MINOR.* found. Looking for latest minor release v$TAG_MAJOR.*.* in $DEP_NAME."
-            SELECTED_DEPS_TAGS=$(jq --arg major "$TAG_MAJOR" \
-                                    --arg minor "$TAG_MINOR" \
-                                    'map(select(.name | startswith("v\($major).\($minor).")))' <<< "$DEP_TAGS")
-          fi
-          if [[ $(jq length <<< $SELECTED_DEPS_TAGS) == 0 ]]; then
-            echo "No release v$TAG_MAJOR.$TAG_MINOR.* found. Looking for latest minor release v$TAG_MAJOR.*.* in $DEP_NAME."
-            SELECTED_DEPS_TAGS=$(jq --arg major "$TAG_MAJOR" \
-                                  'map(select(.name | startswith("v\($major).")))' <<< "$DEP_TAGS")
-          fi 
-          if [[ $(jq length <<< $SELECTED_DEPS_TAGS) > 0 ]]; then
-            BRANCH_TO_PULL=$(jq -r '.[0].name' <<<"$SELECTED_DEPS_TAGS")
-            echo "Found a release with corresponding $BRANCH_TO_PULL"
           else
-            echo "No release v$TAG_MAJOR.*.* found. Simply retrieving latest release v*.*.* in $DEP_NAME."
             BRANCH_TO_PULL=$(jq -r '.[0].name' <<<"$DEP_TAGS")
+            echo "Retrieving latest release tag : $BRANCH_TO_PULL in $DEP_NAME."
           fi
           echo "Found release : $BRANCH_TO_PULL. Using it as \$BRANCH_TO_PULL."
 
@@ -362,29 +339,17 @@
         ######################################
         # CASE WHERE A COMMIT TAG IS CREATED
         } elseif ( "$CI_COMMIT_TAG" ) {
-          $TAG_TUPLE=$($CI_COMMIT_TAG -replace "v","").Split(".")
           Write-Host "Retrieving repo tags from $DEP_API_URL/repository/tags?per_page=100"
           $DEP_TAGS = $($(Invoke-RestMethod -Uri "$DEP_API_URL/repository/tags?per_page=100" -Method Get) | 
               Sort-Object -Property {[datetime]$_.commit.created_at} -Descending)
-
-          Write-Host "Looking for latest fix release the corressponds to $CI_PROJECT_NAME minor: v$($TAG_TUPLE[0]).$($TAG_TUPLE[1]).*"
-          $SELECTED_TAGS = $DEP_TAGS | Where-Object { $_.name -like "v$($TAG_TUPLE[0]).$($TAG_TUPLE[1]).*" }
-          $SELECTED_TAGS = @($SELECTED_TAGS)
-          $SELECTED_TAGS | Out-String
-          if ( $SELECTED_TAGS.Count -eq 0 ) {
-              Write-Host "No fix release found, looking for latest minor corresponding to $CI_PROJECT_NAME major : v$($TAG_TUPLE[0]).*.*"
-              $SELECTED_TAGS = $DEP_TAGS | Where-Object { $_.name -like "v$($TAG_TUPLE[0]).*" }
-              $SELECTED_TAGS = @($SELECTED_TAGS)
-          }
-          if ( $SELECTED_TAGS.Count -gt 0 ) {
-              $BRANCH_TO_PULL=$SELECTED_TAGS[0].name
-              Write-Host "Found following release, $BRANCH_TO_PULL. Using it as BRANCH_TO_PULL."
-          } else {
-              Write-Host "Found no corresponding release corresponding to a major. Looking for latest available release : v*.*.* ."
-              $BRANCH_TO_PULL=$DEP_TAGS[0].name
-              Write-Host "Found following release, $BRANCH_TO_PULL. Using it as BRANCH_TO_PULL."
+          if ( $DEP_TAGS.Count -eq 0 ) {
+            Write-Host "No tag found for $DEP_NAME at url $DEP_API_URL/repository/tags?per_page=100"
+            Write-Host "Leaving early."
+            exit 1
+           } else {
+            $BRANCH_TO_PULL=$DEP_TAGS[0].name
+            Write-Host "Retrieving latest available release : v$BRANCH_TO_PULL."
           }
-
         ###########################################
         # CASE CASUAL COMMIT or Draft MR PIPELINE
         } else {
-- 
GitLab