mirror of
https://github.com/actions/runner-images.git
synced 2025-12-20 06:35:47 +00:00
[Windows] Use function to get selenium asset url (#8448)
This commit is contained in:
committed by
GitHub
parent
23ff0d7468
commit
ddebd05257
@@ -617,6 +617,7 @@ function Get-GitHubPackageDownloadUrl {
|
|||||||
[string]$Version,
|
[string]$Version,
|
||||||
[string]$UrlFilter,
|
[string]$UrlFilter,
|
||||||
[boolean]$IsPrerelease = $false,
|
[boolean]$IsPrerelease = $false,
|
||||||
|
[boolean]$LatestReleaseOnly = $true,
|
||||||
[int]$SearchInCount = 100
|
[int]$SearchInCount = 100
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -626,20 +627,35 @@ function Get-GitHubPackageDownloadUrl {
|
|||||||
|
|
||||||
$json = Invoke-RestMethod -Uri "https://api.github.com/repos/${RepoOwner}/${RepoName}/releases?per_page=${SearchInCount}"
|
$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
|
$tags = $json.Where{ $_.prerelease -eq $IsPrerelease -and $_.assets }.tag_name
|
||||||
$versionToDownload = $tags |
|
$availableVersions = $tags |
|
||||||
Select-String -Pattern "\d+.\d+.\d+" |
|
Select-String -Pattern "\d+.\d+.\d+" |
|
||||||
ForEach-Object { $_.Matches.Value } |
|
ForEach-Object { $_.Matches.Value } |
|
||||||
Where-Object { $_ -like "$Version.*" -or $_ -eq $Version } |
|
Where-Object { $_ -like "$Version.*" -or $_ -eq $Version } |
|
||||||
Sort-Object { [version]$_ } |
|
Sort-Object -Descending { [version]$_ }
|
||||||
Select-Object -Last 1
|
|
||||||
|
|
||||||
if (-not $versionToDownload) {
|
if (-not $availableVersions) {
|
||||||
Write-Host "Failed to get a tag name from ${RepoOwner}/${RepoName} releases"
|
throw "Failed to get available versions from ${RepoOwner}/${RepoName} releases"
|
||||||
exit 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$UrlFilter = $UrlFilter -replace "{BinaryName}",$BinaryName -replace "{Version}",$versionToDownload
|
if ($LatestReleaseOnly) {
|
||||||
$downloadUrl = $json.assets.browser_download_url -like $UrlFilter
|
$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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (-not $downloadUrl) {
|
||||||
|
throw "Failed to get download url for ${RepoOwner}/${RepoName} ${BinaryName}"
|
||||||
|
}
|
||||||
|
|
||||||
return $downloadUrl
|
return $downloadUrl
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,22 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
## File: Install-SeleniumWebDrivers.ps1
|
## File: Install-IEWebDriver.ps1
|
||||||
## Desc: Install Selenium Web Drivers
|
## Desc: Install IE Web Driver
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
$seleniumMajorVersion = (Get-ToolsetContent).selenium.version
|
||||||
$json = Invoke-RestMethod -Uri "https://api.github.com/repos/SeleniumHQ/selenium/releases?per_page=100"
|
$ieDriverUrl = Get-GitHubPackageDownloadUrl `
|
||||||
$ieDriverUrl = $json.Where{-not $_.prerelease}.assets.browser_download_url | Where-Object { $_ -like "*IEDriverServer_x64_*.zip" } | Select-Object -First 1
|
-RepoOwner "SeleniumHQ" `
|
||||||
|
-RepoName "selenium" `
|
||||||
|
-BinaryName "IEDriverServer_x64" `
|
||||||
|
-Version $seleniumMajorVersion `
|
||||||
|
-UrlFilter "*{BinaryName}_{Version}.zip" `
|
||||||
|
-LatestReleaseOnly $false
|
||||||
|
|
||||||
# Download IE selenium driver
|
# Download IE selenium driver
|
||||||
try {
|
try {
|
||||||
Write-Host "Selenium IEDriverServer download and install..."
|
Write-Host "Selenium IEDriverServer download and install..."
|
||||||
$driverZipFile = Start-DownloadWithRetry -Url $ieDriverUrl -Name "SeleniumWebDrivers.zip"
|
$driverZipFile = Start-DownloadWithRetry -Url $ieDriverUrl -Name "SeleniumWebDrivers.zip"
|
||||||
}
|
} catch {
|
||||||
catch {
|
|
||||||
Write-Error "[!] Failed to download $ieDriverUrl"
|
Write-Error "[!] Failed to download $ieDriverUrl"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,13 @@ New-Item -ItemType directory -Path $seleniumDirectory
|
|||||||
$seleniumMajorVersion = (Get-ToolsetContent).selenium.version
|
$seleniumMajorVersion = (Get-ToolsetContent).selenium.version
|
||||||
$seleniumBinaryName = (Get-ToolsetContent).selenium.binary_name
|
$seleniumBinaryName = (Get-ToolsetContent).selenium.binary_name
|
||||||
$seleniumFileName = "$seleniumBinaryName.jar"
|
$seleniumFileName = "$seleniumBinaryName.jar"
|
||||||
$json = Invoke-RestMethod -Uri "https://api.github.com/repos/SeleniumHQ/selenium/releases?per_page=100"
|
|
||||||
$seleniumDownloadUrl = $json.Where{-not $_.prerelease}.assets.browser_download_url | Where-Object { $_ -like "*${seleniumBinaryName}-${seleniumMajorVersion}.*jar" } | Select-Object -First 1
|
$seleniumDownloadUrl = Get-GitHubPackageDownloadUrl `
|
||||||
|
-RepoOwner "SeleniumHQ" `
|
||||||
|
-RepoName "selenium" `
|
||||||
|
-BinaryName "$seleniumBinaryName" `
|
||||||
|
-Version $seleniumMajorVersion `
|
||||||
|
-UrlFilter "*{BinaryName}-{Version}.jar"
|
||||||
|
|
||||||
Start-DownloadWithRetry -Url $seleniumDownloadUrl -Name $seleniumFileName -DownloadPath $seleniumDirectory
|
Start-DownloadWithRetry -Url $seleniumDownloadUrl -Name $seleniumFileName -DownloadPath $seleniumDirectory
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user