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