-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Don't overwrite binary logs #66559
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Don't overwrite binary logs #66559
Changes from all commits
07f21b7
43b4571
9a6689e
59a537a
0fe1e9f
8966289
b6887e9
7991567
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -34,6 +34,7 @@ param ( | |
| [switch]$bootstrap, | ||
| [string]$bootstrapConfiguration = "Release", | ||
| [switch][Alias('bl')]$binaryLog, | ||
| [string]$binaryLogName = "", | ||
| [switch]$buildServerLog, | ||
| [switch]$ci, | ||
| [switch]$collectDumps, | ||
|
|
@@ -79,6 +80,7 @@ function Print-Usage() { | |
| Write-Host " -verbosity <value> Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]" | ||
| Write-Host " -deployExtensions Deploy built vsixes (short: -d)" | ||
| Write-Host " -binaryLog Create MSBuild binary log (short: -bl)" | ||
| Write-Host " -binaryLogName Name of the binary log (default Build.binlog)" | ||
| Write-Host " -buildServerLog Create Roslyn build server log" | ||
| Write-Host "" | ||
| Write-Host "Actions:" | ||
|
|
@@ -166,13 +168,21 @@ function Process-Arguments() { | |
| $script:applyOptimizationData = $false | ||
| } | ||
|
|
||
| if ($binaryLogName -ne "") { | ||
| $script:binaryLog = $true | ||
| } | ||
|
|
||
| if ($ci) { | ||
| $script:binaryLog = $true | ||
| if ($bootstrap) { | ||
| $script:buildServerLog = $true | ||
| } | ||
| } | ||
|
|
||
| if ($binaryLog -and ($binaryLogName -eq "")) { | ||
| $script:binaryLogName = "Build.binlog" | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm scared.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Well because you asked ... It's because when powershell reads a variable it will check function scope, then script scope. But if you write a variable it will write it in the function scope, even if one exists at script scope. So you need to be very explicit that you're writing a script scoped variable here.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should the
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And the one on line 228?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The uses on 182 are reads. Those will fall back to script scope. Line 228 is creating a new variable Why don't we always use |
||
| } | ||
|
|
||
| $anyUnit = $testDesktop -or $testCoreClr | ||
| if ($anyUnit -and $testVsi) { | ||
| Write-Host "Cannot combine unit and VSI testing" | ||
|
|
@@ -213,7 +223,14 @@ function BuildSolution() { | |
|
|
||
| Write-Host "$($solution):" | ||
|
|
||
| $bl = if ($binaryLog) { "/bl:" + (Join-Path $LogDir "Build.binlog") } else { "" } | ||
| $bl = "" | ||
| if ($binaryLog) { | ||
| $binaryLogPath = Join-Path $LogDir $binaryLogName | ||
| $bl = "/bl:" + $binaryLogPath | ||
| if ($ci -and (Test-Path $binaryLogPath)) { | ||
| Write-LogIssue -Type "warning" -Message "Overwriting binary log file $($binaryLogPath)" | ||
| } | ||
| } | ||
|
|
||
| if ($buildServerLog) { | ||
| ${env:ROSLYNCOMMANDLINELOGFILE} = Join-Path $LogDir "Build.Server.log" | ||
|
|
@@ -240,6 +257,11 @@ function BuildSolution() { | |
| $generateDocumentationFile = if ($skipDocumentation) { "/p:GenerateDocumentationFile=false" } else { "" } | ||
| $roslynUseHardLinks = if ($ci) { "/p:ROSLYNUSEHARDLINKS=true" } else { "" } | ||
|
|
||
| # Temporarily disable RestoreUseStaticGraphEvaluation to work around this NuGet issue | ||
| # in our CI builds | ||
| # https://github.com/NuGet/Home/issues/12373 | ||
| $restoreUseStaticGraphEvaluation = if ($ci) { $false } else { $true } | ||
|
|
||
| try { | ||
| MSBuild $toolsetBuildProj ` | ||
| $bl ` | ||
|
|
@@ -259,7 +281,7 @@ function BuildSolution() { | |
| /p:TreatWarningsAsErrors=$warnAsError ` | ||
| /p:EnableNgenOptimization=$applyOptimizationData ` | ||
| /p:IbcOptimizationDataDir=$ibcDir ` | ||
| /p:RestoreUseStaticGraphEvaluation=true ` | ||
| /p:RestoreUseStaticGraphEvaluation=$restoreUseStaticGraphEvaluation ` | ||
| /p:VisualStudioIbcDrop=$ibcDropName ` | ||
| /p:VisualStudioDropAccessToken=$officialVisualStudioDropAccessToken ` | ||
| $suppressExtensionDeployment ` | ||
|
|
@@ -734,7 +756,7 @@ try { | |
| catch | ||
| { | ||
| if ($ci) { | ||
| echo "##vso[task.logissue type=error](NETCORE_ENGINEERING_TELEMETRY=Build) Build failed" | ||
| Write-LogIssue -Type "error" -Message "(NETCORE_ENGINEERING_TELEMETRY=Build) Build failed" | ||
| } | ||
| throw $_ | ||
| } | ||
|
|
@@ -752,7 +774,7 @@ try { | |
| catch | ||
| { | ||
| if ($ci) { | ||
| echo "##vso[task.logissue type=error](NETCORE_ENGINEERING_TELEMETRY=Test) Tests failed" | ||
| Write-LogIssue -Type "error" -Message "(NETCORE_ENGINEERING_TELEMETRY=Test) Tests failed" | ||
| } | ||
| throw $_ | ||
| } | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Initially I required specifying both options so
-binaryLog -binaryLogName "Build.binlog"but that just looked too verbose to me. Decided it was concise to allow-binaryLogNameto imply-binaryLog