From 867af40d2aa70c03fa6c8192c2250585b0197645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Tue, 14 Jun 2022 18:11:48 +0200 Subject: [PATCH] Add restore with retry in Nuke build (#841) * Update build.ps1 * Update build.ps1 --- build.ps1 | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/build.ps1 b/build.ps1 index 612e05aaa0..e07475b324 100755 --- a/build.ps1 +++ b/build.ps1 @@ -28,9 +28,18 @@ $env:DOTNET_MULTILEVEL_LOOKUP = 0 # EXECUTION ########################################################################### -function ExecSafe([scriptblock] $cmd) { - & $cmd - if ($LASTEXITCODE) { exit $LASTEXITCODE } +function ExecSafe([scriptblock] $cmd, [int]$maxRetries = 0) { + $tryCount = 0 + while ($true) { + $tryCount++ + & $cmd + if ($global:LASTEXITCODE -eq 0) { + break + } + if ($tryCount -gt $maxRetries) { + exit $global:LASTEXITCODE + } + } } # If dotnet CLI is installed globally and it matches requested version, use for execution @@ -65,5 +74,6 @@ else { Write-Output "Microsoft (R) .NET Core SDK version $(& $env:DOTNET_EXE --version)" -ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet } +ExecSafe { & $env:DOTNET_EXE restore $BuildProjectFile -nologo -clp:NoSummary --verbosity quiet } -maxRetries 2 +ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet --no-restore } ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments }