Opt-into MSBuild -graph param for pipelines (#32137)

This adds the `-graph` MSBuld parameter in the pipelines. This parameter causes MSBuild to evaluate the dependency graph and build "bottom up" instead of "top down". This can lead to better machine utilization since all dependencies are known up front and can start immediately, as opposed to being discovered just-in-time as a project needs them.

In practice for this repo I did not see a huge impact, but it may be helping a little so why not.
This commit is contained in:
David Federman 2024-04-01 10:30:38 -07:00 committed by GitHub
parent bb5fd4970a
commit 818d3e3035
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 8 deletions

View File

@ -100,7 +100,7 @@ steps:
${{ if eq(parameters.enableCaching, true) }}: ${{ if eq(parameters.enableCaching, true) }}:
msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} -graph -reportfileaccesses -p:MSBuildCacheEnabled=true -p:MSBuildCacheLogDirectory=$(Build.ArtifactStagingDirectory)\logs\MSBuildCache -bl:$(Build.ArtifactStagingDirectory)\logs\PowerToys.binlog -ds:false msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} -graph -reportfileaccesses -p:MSBuildCacheEnabled=true -p:MSBuildCacheLogDirectory=$(Build.ArtifactStagingDirectory)\logs\MSBuildCache -bl:$(Build.ArtifactStagingDirectory)\logs\PowerToys.binlog -ds:false
${{ else }}: ${{ else }}:
msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} -bl:$(Build.ArtifactStagingDirectory)\logs\PowerToys.binlog -ds:false msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} -graph -bl:$(Build.ArtifactStagingDirectory)\logs\PowerToys.binlog -ds:false
msbuildArchitecture: x64 msbuildArchitecture: x64
maximumCpuCount: true maximumCpuCount: true
${{ if eq(parameters.enableCaching, true) }}: ${{ if eq(parameters.enableCaching, true) }}:
@ -114,7 +114,7 @@ steps:
vsVersion: 17.0 vsVersion: 17.0
platform: '$(BuildPlatform)' platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)' configuration: '$(BuildConfiguration)'
msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} -bl:$(Build.ArtifactStagingDirectory)\logs\BugReportTool.binlog -ds:false msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} -graph -bl:$(Build.ArtifactStagingDirectory)\logs\BugReportTool.binlog -ds:false
msbuildArchitecture: x64 msbuildArchitecture: x64
maximumCpuCount: true maximumCpuCount: true
@ -125,7 +125,7 @@ steps:
vsVersion: 17.0 vsVersion: 17.0
platform: '$(BuildPlatform)' platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)' configuration: '$(BuildConfiguration)'
msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} -bl:$(Build.ArtifactStagingDirectory)\logs\WebcamReportTool.binlog -ds:false msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} -graph -bl:$(Build.ArtifactStagingDirectory)\logs\WebcamReportTool.binlog -ds:false
msbuildArchitecture: x64 msbuildArchitecture: x64
maximumCpuCount: true maximumCpuCount: true
@ -136,7 +136,7 @@ steps:
vsVersion: 17.0 vsVersion: 17.0
platform: '$(BuildPlatform)' platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)' configuration: '$(BuildConfiguration)'
msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} -bl:$(Build.ArtifactStagingDirectory)\logs\StylesReportTool.binlog -ds:false msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} -graph -bl:$(Build.ArtifactStagingDirectory)\logs\StylesReportTool.binlog -ds:false
msbuildArchitecture: x64 msbuildArchitecture: x64
maximumCpuCount: true maximumCpuCount: true

View File

@ -156,7 +156,7 @@ extends:
inputs: inputs:
solution: '**\PowerToys.sln' solution: '**\PowerToys.sln'
vsVersion: 17.0 vsVersion: 17.0
msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog msbuildArgs: -restore -graph /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
clean: true clean: true
@ -167,7 +167,7 @@ extends:
inputs: inputs:
solution: '**/tools/BugReportTool/BugReportTool.sln' solution: '**/tools/BugReportTool/BugReportTool.sln'
vsVersion: 17.0 vsVersion: 17.0
msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog msbuildArgs: -restore -graph /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
clean: true clean: true
@ -178,7 +178,7 @@ extends:
inputs: inputs:
solution: '**/tools/WebcamReportTool/WebcamReportTool.sln' solution: '**/tools/WebcamReportTool/WebcamReportTool.sln'
vsVersion: 17.0 vsVersion: 17.0
msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog msbuildArgs: -restore -graph /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
clean: true clean: true
@ -189,7 +189,7 @@ extends:
inputs: inputs:
solution: '**/tools/StylesReportTool/StylesReportTool.sln' solution: '**/tools/StylesReportTool/StylesReportTool.sln'
vsVersion: 17.0 vsVersion: 17.0
msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog msbuildArgs: -restore -graph /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform) platform: $(BuildPlatform)
configuration: $(BuildConfiguration) configuration: $(BuildConfiguration)
clean: true clean: true
@ -202,6 +202,7 @@ extends:
vsVersion: 17.0 vsVersion: 17.0
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/graph
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
@ -218,6 +219,7 @@ extends:
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/graph
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
@ -234,6 +236,7 @@ extends:
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/graph
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
@ -250,6 +253,7 @@ extends:
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/graph
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
@ -266,6 +270,7 @@ extends:
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/graph
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
@ -282,6 +287,7 @@ extends:
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/graph
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)
@ -298,6 +304,7 @@ extends:
# The arguments should be the same as the ones for Settings; make sure they are. # The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >- msbuildArgs: >-
/target:Publish /target:Publish
/graph
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never /p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false /p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory) /p:PowerToysRoot=$(Build.SourcesDirectory)