microsoft / react-native-windows

A framework for building native Windows apps with React.
https://microsoft.github.io/react-native-windows/
Other
16.33k stars 1.14k forks source link

Only install what we need for the CI loop #4511

Closed jonthysell closed 4 years ago

jonthysell commented 4 years ago

Right now we have to install extra components for VS 2019 that aren't already present on the VM. That takes ~15 min for each build.

However, with a little tweaking, we might be able to reduce that. For example, we don't need to install arm tools for non-arm builds, etc.

Here's what the VMs are supposed to have:

https://github.com/actions/virtual-environments/blob/master/images/win/Windows2019-Readme.md

Currently we blanket install the following on all VMs during CI:

It means fixing the passing of VSComponents down through the templates.

jonthysell commented 4 years ago

For future reference, here's what the VMs actually have as of today:

 {
   "version": "1.0",
   "components": [
     "Microsoft.VisualStudio.Component.CoreEditor",
     "Microsoft.VisualStudio.Workload.CoreEditor",
     "Microsoft.NetCore.Component.Runtime.3.1",
     "Microsoft.NetCore.Component.SDK",
     "Microsoft.VisualStudio.Component.NuGet",
     "Microsoft.Net.Component.4.6.1.TargetingPack",
     "Microsoft.VisualStudio.Component.Roslyn.Compiler",
     "Microsoft.VisualStudio.Component.Roslyn.LanguageServices",
     "Microsoft.VisualStudio.Component.FSharp",
     "Microsoft.NetCore.Component.DevelopmentTools",
     "Microsoft.VisualStudio.Component.FSharp.WebTemplates",
     "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions",
     "Microsoft.VisualStudio.Component.DockerTools",
     "Microsoft.NetCore.Component.Web",
     "Microsoft.Net.Component.4.8.SDK",
     "Microsoft.Net.Component.4.7.2.TargetingPack",
     "Microsoft.Net.ComponentGroup.DevelopmentPrerequisites",
     "Microsoft.VisualStudio.Component.TypeScript.3.8",
     "Microsoft.VisualStudio.Component.JavaScript.TypeScript",
     "Microsoft.VisualStudio.Component.JavaScript.Diagnostics",
     "Microsoft.Component.MSBuild",
     "Microsoft.VisualStudio.Component.TextTemplating",
     "Component.Microsoft.VisualStudio.RazorExtension",
     "Microsoft.VisualStudio.Component.IISExpress",
     "Microsoft.VisualStudio.Component.SQL.ADAL",
     "Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime",
     "Microsoft.VisualStudio.Component.Common.Azure.Tools",
     "Microsoft.VisualStudio.Component.SQL.CLR",
     "Microsoft.VisualStudio.Component.MSODBC.SQL",
     "Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils",
     "Microsoft.VisualStudio.Component.ManagedDesktop.Core",
     "Microsoft.Net.Component.4.5.2.TargetingPack",
     "Microsoft.Net.Component.4.5.TargetingPack",
     "Microsoft.VisualStudio.Component.SQL.SSDT",
     "Microsoft.VisualStudio.Component.SQL.DataSources",
     "Component.Microsoft.Web.LibraryManager",
     "Microsoft.VisualStudio.ComponentGroup.Web",
     "Microsoft.VisualStudio.Component.Web",
     "Microsoft.VisualStudio.Component.IntelliCode",
     "Microsoft.Net.Component.4.TargetingPack",
     "Microsoft.Net.Component.4.5.1.TargetingPack",
     "Microsoft.Net.Component.4.6.TargetingPack",
     "Microsoft.Net.ComponentGroup.TargetingPacks.Common",
     "Microsoft.Net.Core.Component.SDK.2.1",
     "Component.Microsoft.VisualStudio.Web.AzureFunctions",
     "Microsoft.VisualStudio.ComponentGroup.AzureFunctions",
     "Microsoft.VisualStudio.Component.Azure.Compute.Emulator",
     "Microsoft.VisualStudio.Component.Azure.Storage.Emulator",
     "Microsoft.VisualStudio.Component.Azure.ClientLibs",
     "Microsoft.VisualStudio.Component.Azure.AuthoringTools",
     "Microsoft.VisualStudio.Component.CloudExplorer",
     "Microsoft.VisualStudio.Component.Debugger.TimeTravel",
     "Microsoft.VisualStudio.Component.Debugger.Snapshot",
     "Microsoft.VisualStudio.ComponentGroup.Web.CloudTools",
     "Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd",
     "Microsoft.VisualStudio.Component.DiagnosticTools",
     "Microsoft.VisualStudio.Component.EntityFramework",
     "Microsoft.VisualStudio.Component.LiveUnitTesting",
     "Microsoft.VisualStudio.Component.AspNet45",
     "Microsoft.VisualStudio.Component.AppInsights.Tools",
     "Microsoft.VisualStudio.Component.WebDeploy",
     "Component.Microsoft.VisualStudio.LiveShare",
     "Microsoft.VisualStudio.Component.Wcf.Tooling",
     "Microsoft.Net.Component.4.6.2.TargetingPack",
     "Microsoft.Net.ComponentGroup.4.6.2.DeveloperTools",
     "Microsoft.Net.Component.4.7.TargetingPack",
     "Microsoft.Net.ComponentGroup.4.7.DeveloperTools",
     "Microsoft.Net.Component.4.7.1.TargetingPack",
     "Microsoft.Net.ComponentGroup.4.7.1.DeveloperTools",
     "Microsoft.VisualStudio.Component.ClassDesigner",
     "Microsoft.VisualStudio.Component.GraphDocument",
     "Microsoft.VisualStudio.Component.CodeMap",
     "Microsoft.VisualStudio.Component.TestTools.WebLoadTest",
     "Microsoft.VisualStudio.Workload.NetWeb",
     "Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites",
     "Microsoft.VisualStudio.Component.Azure.Waverton.BuildTools",
     "Microsoft.VisualStudio.Component.Azure.Waverton",
     "Microsoft.Component.Azure.DataLake.Tools",
     "Microsoft.VisualStudio.Component.Azure.Kubernetes.Tools",
     "Microsoft.VisualStudio.Component.Azure.ResourceManager.Tools",
     "Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools",
     "Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices",
     "Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools",
     "Microsoft.VisualStudio.Component.Azure.Powershell",
     "Microsoft.VisualStudio.Component.Azure.Storage.AzCopy",
     "Microsoft.VisualStudio.Workload.Azure",
     "Microsoft.Component.PythonTools",
     "Microsoft.Component.PythonTools.Miniconda",
     "Microsoft.Component.PythonTools.Web",
     "Microsoft.VisualStudio.Component.VC.CoreIde",
     "Microsoft.VisualStudio.Component.Windows10SDK",
     "Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
     "Microsoft.VisualStudio.Component.Graphics.Tools",
     "Microsoft.VisualStudio.Component.VC.DiagnosticTools",
     "Microsoft.VisualStudio.Component.Windows10SDK.18362",
     "Microsoft.VisualStudio.Workload.Python",
     "Microsoft.VisualStudio.Component.Node.Tools",
     "Microsoft.VisualStudio.Workload.Node",
     "Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites",
     "Microsoft.ComponentGroup.Blend",
     "Microsoft.VisualStudio.Component.Debugger.JustInTime",
     "Microsoft.VisualStudio.Component.FSharp.Desktop",
     "Component.Dotfuscator",
     "Microsoft.VisualStudio.Component.PortableLibrary",
     "Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging",
     "Microsoft.VisualStudio.Workload.ManagedDesktop",
     "Microsoft.VisualStudio.Component.VC.Redist.14.Latest",
     "Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native",
     "Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core",
     "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake",
     "Microsoft.VisualStudio.Component.VC.CMake.Project",
     "Microsoft.VisualStudio.Component.VC.ATL",
     "Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest",
     "Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest",
     "Microsoft.VisualStudio.Component.VC.ATLMFC",
     "Microsoft.VisualStudio.Component.VC.CLI.Support",
     "Microsoft.VisualStudio.Component.VC.ASAN",
     "Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset",
     "Microsoft.VisualStudio.Component.VC.Llvm.Clang",
     "Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang",
     "Microsoft.VisualStudio.Component.Windows10SDK.17763",
     "Microsoft.VisualStudio.Component.Windows10SDK.17134",
     "Microsoft.VisualStudio.Component.Windows10SDK.16299",
     "Microsoft.VisualStudio.Component.VC.v141.x86.x64",
     "Microsoft.Component.VC.Runtime.UCRTSDK",
     "Microsoft.VisualStudio.Component.VC.140",
     "Microsoft.VisualStudio.Workload.NativeDesktop",
     "Microsoft.Component.NetFX.Native",
     "Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard",
     "Microsoft.VisualStudio.Component.Graphics",
     "Microsoft.VisualStudio.ComponentGroup.UWP.Xamarin",
     "Microsoft.VisualStudio.ComponentGroup.UWP.Support",
     "Microsoft.VisualStudio.Component.VC.Tools.ARM64",
     "Microsoft.VisualStudio.Component.UWP.VC.ARM64",
     "Microsoft.VisualStudio.Component.VC.Tools.ARM",
     "Microsoft.VisualStudio.Component.VC.v141.ARM",
     "Microsoft.VisualStudio.Component.VC.v141.ARM64",
     "Microsoft.VisualStudio.Workload.Universal",
     "Component.OpenJDK",
     "Microsoft.VisualStudio.Component.MonoDebugger",
     "Microsoft.VisualStudio.Component.Merq",
     "Component.Xamarin.RemotedSimulator",
     "Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine",
     "Component.Xamarin",
     "Component.Android.SDK28",
     "Microsoft.VisualStudio.Workload.NetCrossPlat",
     "Component.Android.SDK25.Private",
     "Component.Android.NDK.R16B",
     "Component.Ant",
     "Component.MDD.Android",
     "Microsoft.VisualStudio.Workload.NativeMobile",
     "Microsoft.Net.Component.3.5.DeveloperTools",
     "Microsoft.VisualStudio.Component.Unity",
     "Component.UnityEngine.x64",
     "Component.UnityEngine.x86",
     "Microsoft.VisualStudio.Workload.ManagedGame",
     "Microsoft.VisualStudio.Component.NuGet.BuildTools",
     "Component.Unreal",
     "Component.Unreal.Android",
     "Microsoft.VisualStudio.Workload.NativeGame",
     "Microsoft.VisualStudio.Workload.Data",
     "Microsoft.VisualStudio.Workload.DataScience",
     "Microsoft.VisualStudio.Component.VSSDK",
     "Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites",
     "Microsoft.VisualStudio.Component.DslTools",
     "Microsoft.VisualStudio.Workload.VisualStudioExtension",
     "Microsoft.VisualStudio.Component.Workflow",
     "Microsoft.VisualStudio.Component.Sharepoint.Tools",
     "Microsoft.VisualStudio.Component.TeamOffice",
     "Microsoft.VisualStudio.Workload.Office",
     "Component.MDD.Linux",
     "Component.Linux.CMake",
     "Microsoft.VisualStudio.Workload.NativeCrossPlat",
     "Microsoft.VisualStudio.Workload.NetCoreTools",
     "Microsoft.VisualStudio.Component.LinqToSql",
     "Microsoft.VisualStudio.Component.TestTools.CodedUITest",
     "Microsoft.VisualStudio.Component.VC.ATL.ARM",
     "Microsoft.VisualStudio.Component.VC.ATL.ARM64",
     "Microsoft.VisualStudio.Component.VC.ATL.Spectre",
     "Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre",
     "Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre",
     "Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre",
     "Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre",
     "Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre",
     "Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre",
     "Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre",
     "Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre",
     "Microsoft.VisualStudio.Component.VC.MFC.ARM",
     "Microsoft.VisualStudio.Component.VC.MFC.ARM64",
     "Microsoft.VisualStudio.Component.VC.Redist.MSM",
     "Microsoft.VisualStudio.Component.WinXP",
     "Microsoft.VisualStudio.Component.VC.v141.ARM.Spectre",
     "Microsoft.VisualStudio.Component.VC.v141.ARM64.Spectre",
     "Microsoft.VisualStudio.Component.VC.v141.x86.x64.Spectre",
     "Microsoft.VisualStudio.Component.VC.v141.ATL.ARM.Spectre",
     "Microsoft.VisualStudio.Component.VC.v141.ATL.ARM64.Spectre",
     "Microsoft.VisualStudio.Component.VC.v141.ATL.Spectre",
     "Microsoft.VisualStudio.Component.VC.v141.MFC.ARM.Spectre",
     "Microsoft.VisualStudio.Component.VC.v141.MFC.ARM64.Spectre",
     "Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre",
     "Microsoft.Net.Component.4.7.2.SDK"
   ]
 }