Do not exit cleanly after failed `msbuild` in `build.ps1`'s `finally` block

- part of aspnet/AspNetCore-Internal#2665
- should surface errors we're currently hiding

Also increase PowerShell logging to help debug build and test hangs

nit: Run `finally` block after catching an exception
This commit is contained in:
Doug Bunting 2019-06-16 21:51:48 -07:00
parent 495f52920c
commit 5ce20ebdde
1 changed files with 11 additions and 2 deletions

View File

@ -324,6 +324,7 @@ if ($tmpBinaryLog) {
# Capture MSBuild crash logs # Capture MSBuild crash logs
$env:MSBUILDDEBUGPATH = $LogDir $env:MSBUILDDEBUGPATH = $LogDir
$local:exit_code = $null
try { try {
# Import custom tools configuration, if present in the repo. # Import custom tools configuration, if present in the repo.
# Note: Import in global scope so that the script set top-level variables without qualification. # Note: Import in global scope so that the script set top-level variables without qualification.
@ -342,6 +343,10 @@ try {
$restore = $tmpRestore $restore = $tmpRestore
if ($ci) {
$global:VerbosePreference = 'Continue'
}
if (-not $NoBuildRepoTasks) { if (-not $NoBuildRepoTasks) {
MSBuild $toolsetBuildProj ` MSBuild $toolsetBuildProj `
/p:RepoRoot=$RepoRoot ` /p:RepoRoot=$RepoRoot `
@ -359,9 +364,13 @@ try {
catch { catch {
Write-Host $_.ScriptStackTrace Write-Host $_.ScriptStackTrace
Write-PipelineTaskError -Message $_ Write-PipelineTaskError -Message $_
ExitWithExitCode 1 $exit_code = 1
} }
finally { finally {
if (! $exit_code) {
$exit_code = $LASTEXITCODE
}
# tools.ps1 corrupts global state, so reset these values so they don't carry between invocations of build.ps1 # tools.ps1 corrupts global state, so reset these values so they don't carry between invocations of build.ps1
rm variable:global:_BuildTool -ea Ignore rm variable:global:_BuildTool -ea Ignore
rm variable:global:_DotNetInstallDir -ea Ignore rm variable:global:_DotNetInstallDir -ea Ignore
@ -378,4 +387,4 @@ finally {
} }
} }
ExitWithExitCode 0 ExitWithExitCode $exit_code