From 3244ba989921dd26dd32be75021ed68c9cfcdda9 Mon Sep 17 00:00:00 2001 From: Jeremy Sinclair <4016293+snickler@users.noreply.github.com> Date: Wed, 16 Aug 2023 12:31:10 -0400 Subject: [PATCH] [CI] Condense NuGet Restore into MSBuild Tasks (#27028) * Remove NuGet Restore tasks and incorporate msbuild restore target * Add RestorePackagesConfig msbuild argument * Add RestorePackagesConfig argument for installer * Remove NuGet installer task * Added Nuget Restore static graph * Applied build and restore changes to release pipeline * Removed NuGet Restore Static Graph * Set NuGet Restore Graph only to main PowerToys solution * Removed typo * Fix path format issue * Added release pattern * Removed NuGet Restore Package Graph Options * Updating NuGet authenticate task. * Use restore switch in CI * Use restore switch in Release * Removed Packages Path --- .github/actions/spell-check/patterns.txt | 1 + .../ci/templates/build-powertoys-ci.yml | 2 +- .../templates/build-powertoys-installer.yml | 2 +- .../ci/templates/build-powertoys-steps.yml | 69 ++----------------- .pipelines/installer-steps.yml | 2 +- .pipelines/release.yml | 26 ++----- 6 files changed, 15 insertions(+), 87 deletions(-) diff --git a/.github/actions/spell-check/patterns.txt b/.github/actions/spell-check/patterns.txt index f08317ddab..5959fbe8fc 100644 --- a/.github/actions/spell-check/patterns.txt +++ b/.github/actions/spell-check/patterns.txt @@ -115,6 +115,7 @@ TestCase\("[^"]+" \\Registry \\registry \\reinstall +\\release \\Resize \\resource \\Resources diff --git a/.pipelines/ci/templates/build-powertoys-ci.yml b/.pipelines/ci/templates/build-powertoys-ci.yml index 6017f864af..b180fb50d0 100644 --- a/.pipelines/ci/templates/build-powertoys-ci.yml +++ b/.pipelines/ci/templates/build-powertoys-ci.yml @@ -1,7 +1,7 @@ parameters: configuration: 'Release' platform: '' - additionalBuildArguments: '-m' + additionalBuildArguments: '/p:RestorePackagesConfig=true -m' jobs: - job: Build${{ parameters.platform }}${{ parameters.configuration }} diff --git a/.pipelines/ci/templates/build-powertoys-installer.yml b/.pipelines/ci/templates/build-powertoys-installer.yml index 3335a5048c..ab99af8e54 100644 --- a/.pipelines/ci/templates/build-powertoys-installer.yml +++ b/.pipelines/ci/templates/build-powertoys-installer.yml @@ -1,7 +1,7 @@ parameters: configuration: 'Release' platform: '' - additionalBuildArguments: '-m' + additionalBuildArguments: '/p:RestorePackagesConfig=true -m' jobs: - job: Build${{ parameters.platform }}${{ parameters.configuration }} diff --git a/.pipelines/ci/templates/build-powertoys-steps.yml b/.pipelines/ci/templates/build-powertoys-steps.yml index 5b187423ad..43358f3cc0 100644 --- a/.pipelines/ci/templates/build-powertoys-steps.yml +++ b/.pipelines/ci/templates/build-powertoys-steps.yml @@ -55,21 +55,9 @@ steps: packageType: sdk version: '7.x' -- task: NuGetToolInstaller@1 - displayName: Ensure NuGet Installer - - task: VisualStudioTestPlatformInstaller@1 displayName: Ensure VSTest Platform -- task: NuGetCommand@2 - displayName: Restore NuGet packages for PowerToys.sln - inputs: - command: restore - feedsToUse: config - configPath: NuGet.config - restoreSolution: PowerToys.sln - restoreDirectory: '$(Build.SourcesDirectory)\packages' - - task: VSBuild@1 displayName: 'Build PowerToys.sln' inputs: @@ -77,18 +65,9 @@ steps: vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' - msbuildArgs: ${{ parameters.additionalBuildArguments }} + msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} maximumCpuCount: true -- task: NuGetCommand@2 - displayName: Restore NuGet packages for BugReportTool.sln - inputs: - command: restore - feedsToUse: config - configPath: NuGet.config - restoreSolution: tools\BugReportTool\BugReportTool.sln - restoreDirectory: '$(Build.SourcesDirectory)\tools\BugReportTool\packages' - - task: VSBuild@1 displayName: 'Build BugReportTool.sln' inputs: @@ -96,18 +75,9 @@ steps: vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' - msbuildArgs: ${{ parameters.additionalBuildArguments }} + msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} maximumCpuCount: true -- task: NuGetCommand@2 - displayName: Restore NuGet packages for WebcamReportTool.sln - inputs: - command: restore - feedsToUse: config - configPath: NuGet.config - restoreSolution: tools\WebcamReportTool\WebcamReportTool.sln - restoreDirectory: '$(Build.SourcesDirectory)\tools\WebcamReportTool\packages' - - task: VSBuild@1 displayName: 'Build WebcamReportTool.sln' inputs: @@ -115,18 +85,9 @@ steps: vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' - msbuildArgs: ${{ parameters.additionalBuildArguments }} + msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} maximumCpuCount: true -- task: NuGetCommand@2 - displayName: Restore NuGet packages for StylesReportTool.sln - inputs: - command: restore - feedsToUse: config - configPath: NuGet.config - restoreSolution: tools\StylesReportTool\StylesReportTool.sln - restoreDirectory: '$(Build.SourcesDirectory)\tools\StylesReportTool\packages' - - task: VSBuild@1 displayName: 'Build StylesReportTool.sln' inputs: @@ -134,18 +95,9 @@ steps: vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' - msbuildArgs: ${{ parameters.additionalBuildArguments }} + msbuildArgs: -restore ${{ parameters.additionalBuildArguments }} maximumCpuCount: true -- task: NuGetCommand@2 - displayName: Restore NuGet packages for PowerToysSetup.sln - inputs: - command: restore - feedsToUse: config - configPath: NuGet.config - restoreSolution: installer\PowerToysSetup.sln - restoreDirectory: '$(Build.SourcesDirectory)\installer\packages' - - task: PowerShell@2 displayName: Download and install WiX 3.14 development build inputs: @@ -159,7 +111,7 @@ steps: vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' - msbuildArgs: /t:PowerToysInstaller ${{ parameters.additionalBuildArguments }} + msbuildArgs: /t:PowerToysInstaller -restore ${{ parameters.additionalBuildArguments }} maximumCpuCount: true - task: VSBuild@1 @@ -180,15 +132,6 @@ steps: script: git clean -xfd -e *exe -- .\installer\ pwsh: true -- task: NuGetCommand@2 - displayName: Restore NuGet packages for PowerToysSetup.sln - inputs: - command: restore - feedsToUse: config - configPath: NuGet.config - restoreSolution: installer\PowerToysSetup.sln - restoreDirectory: '$(Build.SourcesDirectory)\installer\packages' - - task: VSBuild@1 displayName: 'Build PowerToys per-user MSI' inputs: @@ -196,7 +139,7 @@ steps: vsVersion: 17.0 platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' - msbuildArgs: /t:PowerToysInstaller ${{ parameters.additionalBuildArguments }} /p:PerUser=true + msbuildArgs: /t:PowerToysInstaller -restore ${{ parameters.additionalBuildArguments }} /p:PerUser=true maximumCpuCount: true - task: VSBuild@1 diff --git a/.pipelines/installer-steps.yml b/.pipelines/installer-steps.yml index 4c28143ef7..d8c256d86c 100644 --- a/.pipelines/installer-steps.yml +++ b/.pipelines/installer-steps.yml @@ -18,7 +18,7 @@ steps: inputs: solution: "**/installer/PowerToysSetup.sln" vsVersion: 17.0 - msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog /t:PowerToysSetupCustomActions /p:RunBuildEvents=true /p:PerUser=${{parameters.perUserArg}} + msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog /t:PowerToysSetupCustomActions /p:RunBuildEvents=true /p:PerUser=${{parameters.perUserArg}} platform: $(BuildPlatform) configuration: $(BuildConfiguration) clean: true diff --git a/.pipelines/release.yml b/.pipelines/release.yml index a104998068..7c889c2fe7 100644 --- a/.pipelines/release.yml +++ b/.pipelines/release.yml @@ -71,7 +71,7 @@ jobs: packageType: sdk version: '7.x' - - task: NuGetAuthenticate@0 + - task: NuGetAuthenticate@1 - task: NuGetToolInstaller@1 displayName: Use NuGet Installer latest @@ -82,14 +82,6 @@ jobs: # - Webcam report tool # - Installer # - Bootstrapper Installer - - task: NuGetCommand@2 - displayName: NuGet restore solutions dependencies - inputs: - command: restore - restoreSolution: '**/*.sln' - selectOrConfig: config - nugetConfigPath: .pipelines/release-nuget.config - - task: PowerShell@2 displayName: Download and install WiX 3.14 development build inputs: @@ -136,7 +128,7 @@ jobs: inputs: solution: '**\PowerToys.sln' vsVersion: 17.0 - msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog + msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog platform: $(BuildPlatform) configuration: $(BuildConfiguration) clean: true @@ -147,7 +139,7 @@ jobs: inputs: solution: '**/tools/BugReportTool/BugReportTool.sln' vsVersion: 17.0 - msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog + msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog platform: $(BuildPlatform) configuration: $(BuildConfiguration) clean: true @@ -158,7 +150,7 @@ jobs: inputs: solution: '**/tools/WebcamReportTool/WebcamReportTool.sln' vsVersion: 17.0 - msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog + msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog platform: $(BuildPlatform) configuration: $(BuildConfiguration) clean: true @@ -169,7 +161,7 @@ jobs: inputs: solution: '**/tools/StylesReportTool/StylesReportTool.sln' vsVersion: 17.0 - msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog + msbuildArgs: -restore /p:RestorePackagesConfig=true /p:RestoreConfigFile="$(Build.SourcesDirectory)\.pipelines\release-nuget.config" /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog platform: $(BuildPlatform) configuration: $(BuildConfiguration) clean: true @@ -397,14 +389,6 @@ jobs: script: git clean -xfd -e *exe -- .\installer\ pwsh: true - - task: NuGetCommand@2 - displayName: NuGet restore solutions dependencies - inputs: - command: restore - restoreSolution: 'installer/*.sln' - selectOrConfig: config - nugetConfigPath: .pipelines/release-nuget.config - - template: installer-steps.yml parameters: versionNumber: ${{ parameters.versionNumber }}