Introduce pkg retry logic in win installer task

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
This commit is contained in:
Jason T. Greene
2023-01-10 14:42:59 -06:00
parent 7c95a5df92
commit 2bf94b764a
2 changed files with 25 additions and 7 deletions

View File

@ -1,6 +1,25 @@
# Update service is required for dotnet 3.5 (dep of wix)
Set-Service -Name wuauserv -StartupType "Manual"
choco install -y wixtoolset mingw golang archiver
if ($LASTEXITCODE -ne 0) {
Exit 1
function retryInstall {
param([Parameter(ValueFromRemainingArguments)] [string[]] $pkgs)
foreach ($pkg in $pkgs) {
for ($retries = 0; ; $retries++) {
if ($retries -gt 5) {
throw "Could not install package $pkg"
}
if ($pkg -match '(.[^\@]+)@(.+)') {
$pkg = @("--version", $Matches.2, $Matches.1)
}
choco install -y $pkg
if ($LASTEXITCODE -eq 0) {
break
}
Write-Output "Error installing, waiting before retry..."
Start-Sleep -Seconds 6
}
}
}
retryInstall wixtoolset mingw@11.2 golang archiver

View File

@ -1,7 +1,7 @@
# Powershell doesn't exit after
function CheckExit {
if ($LASTEXITCODE -ne 0) {
Exit $LASTEXITCODE
throw "Exit code = $LASTEXITCODE"
}
}
function DownloadFile {
@ -50,11 +50,10 @@ $ret = Start-Process -Wait -PassThru ".\podman-${ENV:WIN_INST_VER}-dev-setup.exe
if ($ret.ExitCode -ne 0) {
Write-Host "Install failed, dumping log"
Get-Content inst.log
Exit $ret.ExitCode
throw "Exit code is $($ret.ExitCode)"
}
if (! ((Test-Path -Path "C:\Program Files\RedHat\Podman\podman.exe") -and `
(Test-Path -Path "C:\Program Files\RedHat\Podman\win-sshproxy.exe"))) {
Write-Host "Expected podman.exe and win-sshproxy.exe, one or both not present after install"
Exit 1
throw "Expected podman.exe and win-sshproxy.exe, one or both not present after install"
}
Write-Host "Installer verification successful!"