From 0d564b66b04d96b606ca3b7c7f342e89f80a04e5 Mon Sep 17 00:00:00 2001
From: gregoire kubler <gregoire.kubler@proton.me>
Date: Fri, 22 Nov 2024 13:24:24 +0100
Subject: [PATCH] fix : added datetime typing to date sorting for release jobs
 to ensure date was not treated as a string

---
 .gitlab/ci/download/select_jobs.gitlab-ci.yml | 47 ++++++++++---------
 1 file changed, 24 insertions(+), 23 deletions(-)

diff --git a/.gitlab/ci/download/select_jobs.gitlab-ci.yml b/.gitlab/ci/download/select_jobs.gitlab-ci.yml
index dfda27b..8a75bc4 100644
--- a/.gitlab/ci/download/select_jobs.gitlab-ci.yml
+++ b/.gitlab/ci/download/select_jobs.gitlab-ci.yml
@@ -316,7 +316,6 @@
         $DEFAULT_BRANCH="dev"
         $BRANCH_TO_PULL=$DEFAULT_BRANCH # default branch to pull
         Write-Host "Choosing a branch to pull dependending if we are in a Non draft merge request or not."
-        Write-Host "CI_MERGE_REQUEST_TITLE = $CI_MERGE_REQUEST_TITLE"
         Write-Host "CI_COMMIT_TAG = $CI_COMMIT_TAG"
         Write-Host "CI_MERGE_REQUEST_TITLE = $CI_MERGE_REQUEST_TITLE"
 
@@ -340,33 +339,35 @@
                 Write-Host "Branch $CI_MERGE_REQUEST_TARGET_BRANCH_NAME not found on repo $DEP_NAME."
                 Write-Host "Pulling from default branch."
             }
+
         ######################################
         # CASE WHERE A COMMIT TAG IS CREATED
         } elseif ( "$CI_COMMIT_TAG" ) {
-            Write-Host "Rretrieving the creation_date of the commit the tag has been created from $DEP_API_URL/repository/tags/$CI_COMMIT_TAG"
-            $REPO_CURR_TAG_DATE=$($(Invoke-RestMethod -Uri "$API_URL/projects/$CI_PROJECT_ID/repository/tags/$CI_COMMIT_TAG" -Method Get).commit.created_at)
-            Write-Host "REPO_CURR_TAG_DATE = $REPO_CURR_TAG_DATE"
-            Write-Host "Looking for latest release in $DEP_NAME before $CI_COMMIT_TAG was released on project $CI_PROJECT_NAME."
-            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 commit.created_at -Descending)
-            $DEP_TAGS | Select-Object name, @{Name="commit_creation_date"; Expression={$_.commit.created_at}} | Out-String
-            Write-Host "Looking for latest release in $DEP_NAME before $CI_COMMIT_TAG was released on project $CI_PROJECT_NAME."
-            Write-Host "Retrieving repo tags from $DEP_API_URL/repository/tags?per_page=100"
-            $DEP_TAGS_BEFORE_DATE=$($DEP_TAGS | Where-Object { $_.commit.created_at -le "$REPO_CURR_TAG_DATE"})
-            Write-Host "Found $($DEP_TAGS_BEFORE_DATE.Count) tags for $DEP_NAME pre-dating release $CI_COMMIT_TAG."
-            $DEP_TAGS_BEFORE_DATE | Select-Object name | Out-String
+          Write-Host "Retrieving the creation_date of the commit the tag has been created from $API_URL/projects/$CI_PROJECT_ID/repository/tags/$CI_COMMIT_TAG"
+          $REPO_CURR_TAG_DATE = [datetime]$($(Invoke-RestMethod -Uri "$API_URL/projects/$CI_PROJECT_ID/repository/tags/$CI_COMMIT_TAG" -Method Get).commit.created_at)
+          Write-Host "REPO_CURR_TAG_DATE = $REPO_CURR_TAG_DATE"
+          Write-Host "Looking for latest release in $DEP_NAME before $CI_COMMIT_TAG was released on project $CI_PROJECT_NAME."
+          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)
+          $DEP_TAGS | Select-Object name, @{Name="commit_creation_date"; Expression={[datetime]$_.commit.created_at}} | Out-String
+          Write-Host "Looking for latest release in $DEP_NAME before $CI_COMMIT_TAG was released on project $CI_PROJECT_NAME."
+          Write-Host "Retrieving repo tags from $DEP_API_URL/repository/tags?per_page=100"
+          $DEP_TAGS_BEFORE_DATE = $DEP_TAGS | Where-Object { [datetime]$_.commit.created_at -le [datetime]$REPO_CURR_TAG_DATE }
+          Write-Host "Found $($DEP_TAGS_BEFORE_DATE.Count) tags for $DEP_NAME pre-dating release $CI_COMMIT_TAG."
+          $DEP_TAGS_BEFORE_DATE | Select-Object name | Out-String
 
-            if ( $($DEP_TAGS_BEFORE_DATE.Count) -ne 0) {
-                $BRANCH_TO_PULL=$DEP_TAGS_BEFORE_DATE[0].name
+          if ( $($DEP_TAGS_BEFORE_DATE.Count) -ne 0) {
+              $BRANCH_TO_PULL=$DEP_TAGS_BEFORE_DATE[0].name
               Write-Host "Found release : $BRANCH_TO_PULL. Using it as BRANCH_TO_PULL."    
-            }
-            else {
-                Write-Host "Found no release predating $CI_PROJECT_NAME $CI_COMMIT_TAG's date : $CI_COMMIT_TAG."
-                Write-Host "Retrieving latest repo tag."
-                BRANCH_TO_PULL=$DEP_TAGS[0].name
-                Write-Host "\$BRANCH_TO_PULL = $BRANCH_TO_PULL"
-            }
+          }
+          else {
+              Write-Host "Found no release predating $CI_PROJECT_NAME $CI_COMMIT_TAG's date : $CI_COMMIT_TAG."
+              Write-Host "Retrieving latest repo tag."
+              BRANCH_TO_PULL=$DEP_TAGS[0].name
+              Write-Host "\$BRANCH_TO_PULL = $BRANCH_TO_PULL"
+          }
+
         ###########################################
         # CASE CASUAL COMMIT or Draft MR PIPELINE
         } else {
-- 
GitLab