Skip to content
Snippets Groups Projects
Commit 1e720c98 authored by Grégoire Kubler's avatar Grégoire Kubler
Browse files

feat : updated way to parse versions when retrieving artefacts from commits tags

previously retrieved latest tag chronologically, now parses tags to retrieve latest corresponding tag depending on version values
parent 75a276b3
No related branches found
No related tags found
No related merge requests found
......@@ -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."
}
###########################################
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment