mirror of
https://github.com/actions/versions-package-tools.git
synced 2025-12-10 19:50:24 +00:00
Change structure
This commit is contained in:
@@ -12,6 +12,8 @@ param (
|
|||||||
[UInt32] $RetryCount = 3
|
[UInt32] $RetryCount = 3
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Import-Module (Join-Path $PSScriptRoot "helpers.psm1")
|
||||||
|
|
||||||
function Get-VersionsByUrl {
|
function Get-VersionsByUrl {
|
||||||
param (
|
param (
|
||||||
[Parameter(Mandatory)] [string] $ToolPackagesUrl,
|
[Parameter(Mandatory)] [string] $ToolPackagesUrl,
|
||||||
@@ -23,74 +25,6 @@ function Get-VersionsByUrl {
|
|||||||
return $packages.version
|
return $packages.version
|
||||||
}
|
}
|
||||||
|
|
||||||
function Format-Versions {
|
|
||||||
param (
|
|
||||||
[Parameter(Mandatory)] [string[]] $Versions
|
|
||||||
)
|
|
||||||
|
|
||||||
[Version[]] $formattedVersions = @()
|
|
||||||
|
|
||||||
foreach($version in $Versions) {
|
|
||||||
$substredVersion = $null
|
|
||||||
|
|
||||||
# We cut a string from index of first digit because initially it has invalid format (v14.4.0 or go1.14.4)
|
|
||||||
if ($version -match '(?<number>\d)') {
|
|
||||||
$firstDigitIndex = $version.indexof($Matches.number)
|
|
||||||
$substredVersion = $version.substring($firstDigitIndex)
|
|
||||||
} else {
|
|
||||||
Write-Host "Invalid version format - $version"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# We filter versions to exclude unstable (for example: "go1.15beta1")
|
|
||||||
# Valid version format: x.x or x.x.x
|
|
||||||
if ($substredVersion -notmatch '^\d+\.+\d+\.*\d*$') {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($substredVersion.Split(".").Length -lt 3) {
|
|
||||||
$formattedVersions += "$substredVersion.0"
|
|
||||||
} else {
|
|
||||||
$formattedVersions += $substredVersion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $formattedVersions
|
|
||||||
}
|
|
||||||
|
|
||||||
function Filter-Versions {
|
|
||||||
param (
|
|
||||||
[Parameter(Mandatory)] [string[]] $Versions,
|
|
||||||
[Parameter(Mandatory)] [string] $VersionFilter,
|
|
||||||
[Parameter(Mandatory)] [bool] $IncludeVersions
|
|
||||||
)
|
|
||||||
|
|
||||||
$versionFilters = $VersionFilter.Split(',')
|
|
||||||
[Version[]] $filteredVersions = @()
|
|
||||||
|
|
||||||
foreach($filter in $versionFilters) {
|
|
||||||
if ($IncludeVersions) {
|
|
||||||
$filteredVersions += $Versions | Where-Object { $_ -like $filter }
|
|
||||||
} else {
|
|
||||||
$filteredVersions += $Versions | Where-Object { $_ -notlike $filter }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $filteredVersions
|
|
||||||
}
|
|
||||||
|
|
||||||
function Get-VersionsToBuild {
|
|
||||||
param (
|
|
||||||
[Parameter(Mandatory)] [string[]] $VersionsFromManifest,
|
|
||||||
[Parameter(Mandatory)] [string[]] $VersionsFromDist
|
|
||||||
)
|
|
||||||
|
|
||||||
[System.Collections.ArrayList]$versionsToBuid = $VersionsFromDist
|
|
||||||
$VersionsFromManifest | ForEach-Object { $versionsToBuid.Remove($_) }
|
|
||||||
|
|
||||||
return $versionsToBuid
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host "Get the packages list from $DistURL"
|
Write-Host "Get the packages list from $DistURL"
|
||||||
$versionsFromDist = Get-VersionsByUrl -ToolPackagesUrl $DistURL `
|
$versionsFromDist = Get-VersionsByUrl -ToolPackagesUrl $DistURL `
|
||||||
-RetryIntervalSec $RetryIntervalSec `
|
-RetryIntervalSec $RetryIntervalSec `
|
||||||
67
get-new-tool-versions/helpers.psm1
Normal file
67
get-new-tool-versions/helpers.psm1
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
function Format-Versions {
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory)] [string[]] $Versions
|
||||||
|
)
|
||||||
|
|
||||||
|
[Version[]] $formattedVersions = @()
|
||||||
|
|
||||||
|
foreach($version in $Versions) {
|
||||||
|
$substredVersion = $null
|
||||||
|
|
||||||
|
# We cut a string from index of first digit because initially it has invalid format (v14.4.0 or go1.14.4)
|
||||||
|
if ($version -match '(?<number>\d)') {
|
||||||
|
$firstDigitIndex = $version.indexof($Matches.number)
|
||||||
|
$substredVersion = $version.substring($firstDigitIndex)
|
||||||
|
} else {
|
||||||
|
Write-Host "Invalid version format - $version"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# We filter versions to exclude unstable (for example: "go1.15beta1")
|
||||||
|
# Valid version format: x.x or x.x.x
|
||||||
|
if ($substredVersion -notmatch '^\d+\.+\d+\.*\d*$') {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($substredVersion.Split(".").Length -lt 3) {
|
||||||
|
$formattedVersions += "$substredVersion.0"
|
||||||
|
} else {
|
||||||
|
$formattedVersions += $substredVersion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $formattedVersions
|
||||||
|
}
|
||||||
|
|
||||||
|
function Filter-Versions {
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory)] [string[]] $Versions,
|
||||||
|
[Parameter(Mandatory)] [string] $VersionFilter,
|
||||||
|
[Parameter(Mandatory)] [bool] $IncludeVersions
|
||||||
|
)
|
||||||
|
|
||||||
|
$versionFilters = $VersionFilter.Split(',')
|
||||||
|
[Version[]] $filteredVersions = @()
|
||||||
|
|
||||||
|
foreach($filter in $versionFilters) {
|
||||||
|
if ($IncludeVersions) {
|
||||||
|
$filteredVersions += $Versions | Where-Object { $_ -like $filter }
|
||||||
|
} else {
|
||||||
|
$filteredVersions += $Versions | Where-Object { $_ -notlike $filter }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $filteredVersions
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-VersionsToBuild {
|
||||||
|
param (
|
||||||
|
[Parameter(Mandatory)] [string[]] $VersionsFromManifest,
|
||||||
|
[Parameter(Mandatory)] [string[]] $VersionsFromDist
|
||||||
|
)
|
||||||
|
|
||||||
|
[System.Collections.ArrayList]$versionsToBuid = $VersionsFromDist
|
||||||
|
$VersionsFromManifest | ForEach-Object { $versionsToBuid.Remove($_) }
|
||||||
|
|
||||||
|
return $versionsToBuid
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user