[macOS] Add retry for toolcache assets (#1798)

* Add retry for toolset manifest downloading

* Add common helper

* Minor fix

* Fix helper module path

* Fix helper module path
This commit is contained in:
Vladimir Safonkin
2020-10-19 13:28:53 +03:00
committed by GitHub
parent eb478e9f2b
commit c5e468893d
2 changed files with 16 additions and 5 deletions

View File

@@ -24,7 +24,7 @@ function Get-EnvironmentVariable($variable) {
}
# Returns the object with information about current OS
# It can be used for OS-specific tests
# It can be used for OS-specific tests
function Get-OSVersion {
$osVersion = [Environment]::OSVersion
return [PSCustomObject]@{
@@ -36,7 +36,7 @@ function Get-OSVersion {
IsBigSur = $osVersion.Version.Major -eq 20
IsLessThanCatalina = $osVersion.Version.Major -lt 19
IsLessThanBigSur = $osVersion.Version.Major -lt 20
IsHigherThanMojave = $osVersion.Version.Major -gt 18
IsHigherThanMojave = $osVersion.Version.Major -gt 18
}
}
@@ -63,7 +63,7 @@ function Get-ToolsetValue {
$jsonNode = Get-Content -Raw $toolsetPath | ConvertFrom-Json
$pathParts = $KeyPath.Split(".")
# try to walk through all arguments consequentially to resolve specific json node
# try to walk through all arguments consequentially to resolve specific json node
$pathParts | ForEach-Object {
$jsonNode = $jsonNode.$_
}
@@ -73,4 +73,13 @@ function Get-ToolsetValue {
function Get-ToolcachePackages {
$toolcachePath = Join-Path $env:HOME "image-generation" "toolcache.json"
return Get-Content -Raw $toolcachePath | ConvertFrom-Json
}
}
function Invoke-RestMethodWithRetry {
param (
[Parameter()]
[string]
$Url
)
Invoke-RestMethod $Url -MaximumRetryCount 10 -RetryIntervalSec 30
}

View File

@@ -4,6 +4,8 @@
## Desc: Install toolset
################################################################################
Import-Module "~/image-generation/helpers/Common.Helpers.psm1"
Function Get-ToolcacheFromToolset {
$toolsetPath = Join-Path $env:HOME "image-generation" "toolset.json"
$toolsetJson = Get-Content -Raw $toolsetPath | ConvertFrom-Json
@@ -38,7 +40,7 @@ $tools = Get-ToolcacheFromToolset | Where-Object {$ToolsToInstall -contains $_.
foreach ($tool in $tools) {
# Get versions manifest for current tool
$assets = Invoke-RestMethod $tool.url
$assets = Invoke-RestMethodWithRetry -Url $tool.url
# Get github release asset for each version
foreach ($version in $tool.versions) {