Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Allow searching required asset in all releases
  • Loading branch information
vpolikarpov-akvelon committed Oct 6, 2023
commit d6e9ed067740bea4195f4e056e0a7c0aea0f7ffc
42 changes: 29 additions & 13 deletions images/win/scripts/ImageHelpers/InstallHelpers.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -617,6 +617,7 @@ function Get-GitHubPackageDownloadUrl {
[string]$Version,
[string]$UrlFilter,
[boolean]$IsPrerelease = $false,
[boolean]$LatestReleaseOnly = $true,
[int]$SearchInCount = 100
)

Expand All @@ -626,20 +627,35 @@ function Get-GitHubPackageDownloadUrl {

$json = Invoke-RestMethod -Uri "https://api.github.com/repos/${RepoOwner}/${RepoName}/releases?per_page=${SearchInCount}"
$tags = $json.Where{ $_.prerelease -eq $IsPrerelease -and $_.assets }.tag_name
$versionToDownload = $tags |
Select-String -Pattern "\d+.\d+.\d+" |
ForEach-Object { $_.Matches.Value } |
Where-Object { $_ -like "$Version.*" -or $_ -eq $Version } |
Sort-Object { [version]$_ } |
Select-Object -Last 1

if (-not $versionToDownload) {
Write-Host "Failed to get a tag name from ${RepoOwner}/${RepoName} releases"
exit 1
$availableVersions = $tags |
Select-String -Pattern "\d+.\d+.\d+" |
ForEach-Object { $_.Matches.Value } |
Where-Object { $_ -like "$Version.*" -or $_ -eq $Version } |
Sort-Object -Descending { [version]$_ }

if (-not $availableVersions) {
throw "Failed to get available versions from ${RepoOwner}/${RepoName} releases"
}

if ($LatestReleaseOnly) {
$latestVersion = $availableVersions | Select-Object -First 1
$urlFilterReplaced = $UrlFilter -replace "{BinaryName}", $BinaryName -replace "{Version}", $latestVersion
$downloadUrl = $json.assets.browser_download_url -like $urlFilterReplaced
} else {
foreach ($version in $availableVersions) {
$urlFilterReplaced = $UrlFilter -replace "{BinaryName}", $BinaryName -replace "{Version}", $version
$downloadUrl = $json.assets.browser_download_url -like $urlFilterReplaced

if ($downloadUrl) {
Write-Host "Found download url for ${RepoOwner}/${RepoName} ${BinaryName} ${version}"
break
}
}
}

$UrlFilter = $UrlFilter -replace "{BinaryName}",$BinaryName -replace "{Version}",$versionToDownload
$downloadUrl = $json.assets.browser_download_url -like $UrlFilter
if (-not $downloadUrl) {
throw "Failed to get download url for ${RepoOwner}/${RepoName} ${BinaryName}"
}

return $downloadUrl
}
Expand Down Expand Up @@ -720,4 +736,4 @@ function Test-FileSignature {
}

Write-Output "Signature for $FilePath is valid"
}
}
7 changes: 4 additions & 3 deletions images/win/scripts/Installers/Install-IEWebDriver.ps1
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
################################################################################
## File: Install-SeleniumWebDrivers.ps1
## Desc: Install Selenium Web Drivers
## File: Install-IEWebDriver.ps1
## Desc: Install IE Web Driver
################################################################################

$seleniumMajorVersion = (Get-ToolsetContent).selenium.version
Expand All @@ -9,7 +9,8 @@ $ieDriverUrl = Get-GitHubPackageDownloadUrl `
-RepoName "selenium" `
-BinaryName "IEDriverServer_x64" `
-Version $seleniumMajorVersion `
-UrlFilter "*{BinaryName}_{Version}.zip"
-UrlFilter "*{BinaryName}_{Version}.zip" `
-LatestReleaseOnly $false

# Download IE selenium driver
try {
Expand Down