diff options
| author | Jakob Lichtenberg (170957) <[email protected]> | 2024-06-28 11:43:03 -0700 |
|---|---|---|
| committer | Jakob Lichtenberg (170957) <[email protected]> | 2024-06-28 11:43:03 -0700 |
| commit | 341564fbc34d7521d03da4e91a0d4c2be9656410 (patch) | |
| tree | eb73dfda8e7c2cd3450c7d1cc8a73beafb914b0e /Build-Sample.ps1 | |
| parent | 57d4b2b5143a99d6e3a39100d183e26cac51da5b (diff) | |
| parent | b3af8c8f9bd508f54075da2f2516b31d05cd52c8 (diff) | |
Merge branch 'main' into user/jakobl/add_templatesuser/jakobl/add_templates
Diffstat (limited to 'Build-Sample.ps1')
| -rw-r--r-- | Build-Sample.ps1 | 70 |
1 files changed, 58 insertions, 12 deletions
diff --git a/Build-Sample.ps1 b/Build-Sample.ps1 index 0ef9d051..8c614bd2 100644 --- a/Build-Sample.ps1 +++ b/Build-Sample.ps1 @@ -134,23 +134,60 @@ foreach ($line in Get-Content -Path $solutionFile) if (-not $configurationIsSupported) { Write-Verbose "[$SampleName] `u{23E9} Skipped. Configuration $Configuration|$Platform not supported." - exit 2 + exit 3 } -$errorLogFilePath = "$LogFilesDirectory\$SampleName.$Configuration.$Platform.err" -$warnLogFilePath = "$LogFilesDirectory\$SampleName.$Configuration.$Platform.wrn" -$OutLogFilePath = "$LogFilesDirectory\$SampleName.$Configuration.$Platform.out" - Write-Verbose "Building Sample: $SampleName; Configuration: $Configuration; Platform: $Platform {" -msbuild $solutionFile -clp:Verbosity=m -t:rebuild -property:Configuration=$Configuration -property:Platform=$Platform -p:TargetVersion=Windows10 -p:InfVerif_AdditionalOptions="$InfVerif_AdditionalOptions" -warnaserror -flp1:errorsonly`;logfile=$errorLogFilePath -flp2:WarningsOnly`;logfile=$warnLogFilePath -noLogo > $OutLogFilePath -if ($env:WDS_WipeOutputs -ne $null) -{ - Write-Verbose ("WipeOutputs: "+$Directory+" "+(((Get-Volume ($DriveLetter=(Get-Item ".").PSDrive.Name)).SizeRemaining/1GB))) - Get-ChildItem -path $Directory -Recurse -Include x64|Remove-Item -Recurse - Get-ChildItem -path $Directory -Recurse -Include arm64|Remove-Item -Recurse + +$myexit=0 + +# +# Let us build up to three times (0th, 1st, and 2nd attempt). +# If we succeed at first, then it is a success. +# If we fail at first, but succeed at either of next two attempts, then it is a sporadic failure. +# If we even at third attempt fail, then it is a true failure. +# +for ($i=0; $i -le 2; $i++) { + $errorLogFilePath = "$LogFilesDirectory\$SampleName.$Configuration.$Platform.$i.err" + $warnLogFilePath = "$LogFilesDirectory\$SampleName.$Configuration.$Platform.$i.wrn" + $OutLogFilePath = "$LogFilesDirectory\$SampleName.$Configuration.$Platform.$i.out" + + msbuild $solutionFile -clp:Verbosity=m -t:rebuild -property:Configuration=$Configuration -property:Platform=$Platform -p:TargetVersion=Windows10 -p:InfVerif_AdditionalOptions="$InfVerif_AdditionalOptions" -warnaserror -flp1:errorsonly`;logfile=$errorLogFilePath -flp2:WarningsOnly`;logfile=$warnLogFilePath -noLogo > $OutLogFilePath + if ($env:WDS_WipeOutputs -ne $null) + { + Write-Verbose ("WipeOutputs: "+$Directory+" "+(((Get-Volume ($DriveLetter=(Get-Item ".").PSDrive.Name)).SizeRemaining/1GB))) + Get-ChildItem -path $Directory -Recurse -Include x64|Remove-Item -Recurse + Get-ChildItem -path $Directory -Recurse -Include arm64|Remove-Item -Recurse + } + if ($LASTEXITCODE -eq 0) + { + # We succeeded building. + # If at first attempt, then $myexit=0 + # If at later attempt, then $myexit=2 + if ($i -eq 0) + { + $myexit=0 + } + else + { + $myexit=2 + } + break; + } + else + { + # We failed building. + # Let us sleep for a bit. + # Then let the while loop do its thing and re-run. + sleep 1 + if ($Verbose) + { + Write-Warning "`u{274C} Build failed. Retrying to see if sporadic..." + } + } } -if ($LASTEXITCODE -ne 0) +if ($myexit -eq 1) { if ($Verbose) { @@ -159,4 +196,13 @@ if ($LASTEXITCODE -ne 0) exit 1 } +if ($myexit -eq 2) +{ + if ($Verbose) + { + Write-Warning "`u{274C} Build sporadically failed. Log available at $errorLogFilePath" + } + exit 2 +} + Write-Verbose "Building Sample: $SampleName; Configuration: $Configuration; Platform: $Platform }" |
