diff --git a/.gitlab/ci/download/select_jobs.gitlab-ci.yml b/.gitlab/ci/download/select_jobs.gitlab-ci.yml index e2681eec36395337aa6ab022aa6f6a72d512d011..93d44d40c549df5481a2f5f5bf1fdb3f77b3256e 100644 --- a/.gitlab/ci/download/select_jobs.gitlab-ci.yml +++ b/.gitlab/ci/download/select_jobs.gitlab-ci.yml @@ -343,29 +343,27 @@ ###################################### # CASE WHERE A COMMIT TAG IS CREATED } elseif ( "$CI_COMMIT_TAG" ) { - 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." + $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) - $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 - Write-Host "Found release : $BRANCH_TO_PULL. Using it as BRANCH_TO_PULL." + 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) } - 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" + 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." } ###########################################