Preinstall common tools on machine
Overview
When using the windows shared Runner there are a lot of common tools that most projects require for example nodejs, .net core and such. This means that for every Job the user has to download the dependencies, which will lead to an increase in the Job time before it actually starts running the User script.
Other services already provide preinstall dependencies on their Windows machines:
For Linux, we don't really do this since we expose docker images to the user so they can just use a Docker image with the dependencies pre-installed, but since for the Windows shared executer we only provide a raw VM we have to provide these dependencies ourselves.
Proposal
Base OS: Windows Server 2019 Datacenter Edition With Container - Core
Have the following software installed:
- Chocolatey v0.10.15
- Visual Studio 2019 Build Tools 16.2.3.0 -
visualstudio2019buildtools
(Reboot required at some point)- chocolatey-visualstudio.extension 1.8.1
- KB 2919355
- KB 2919442
- KB 2999226
- chocolatey-windowsupdate.extension 1.0.4
- .NET Framework 4.8.0 (dotnetfx)
- chocolatey-dotnetfx.extension 1.0.0
- visualstudio-installer 2.0.1
- C++ build tools
- .Net desktop build tools
- Universal Windows Platform build tools (Windows 10 SDK (10.0.18362.0))
- .Net Core SDK 2.2.401 -
dotnetfx
- vcredist2015
- vcredist140
- KB3033929
- KB3035131
- KB2533623
- .NET Core build tools workload for VS 2019 Build Tools 1.0.0 -
visualstudio2019-workload-netcorebuildtools
- ASP.NET and web development workload for Visual Studio 2019 1.0.0
visualstudio2019-workload-netweb
- .NET Core SDK 4.7.2 devpack
- .NET Core SDK 4.6.1 devpack
- .NET Core SDK 4.6.1
- .NET Core SDK 4.5.2 devpack
- .NET Core SDK 4.5.2
- wget 1.20.3.20190531
wget
- curl 7.65.3 -
curl
- ruby 2.6.3.1 -
ruby
- go 1.12.9 -
golang
- node.js 12.9.1 -
nodejs
- nodejs.install 12.9.1
- OpenJDK 12.0.2 -
openjdk
- NuGet 5.2.0 -
nuget.commandline
- 7zip v19.0 -
7zip
- 7zip.install 19.0
WSL - Not sure if we need this for initial iteration
- Windows Subsystem for Linux 1.0.1 -
wsl
- chocolatey-fastanswers.extension 0.0.2
- May have to
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
as well, then reboot?
- Ubuntu 18.04
curl.exe -L -o ubuntu-1804.appx https://aka.ms/wsl-ubuntu-1804
Add-AppxPackage .\ubuntu-1804.appx