Until now Buddy only supported Linux workers. Building .NET applications was only possible through Mono, an open-source implementation of Microsoft's .NET framework. However, this solution, although the only one possible on this type of architecture (excluding .NET Core), was far from perfect, as the build environment was still emulated and not native.
And so it happened: last week we added support for Windows workers (Windows Data Center)! We are super excited about it as it opens Buddy for a completely new ecosystem of developers. It also adds new challenges for our team – as always we are looking forward to you helping us fine-tune the feature so that it meets the high standards of Microsoft developers.
How it works
Every build is run on a new virtual machine co-shared with other builds. The output of the build is produced to the pipeline's filesystem, and the VM is killed afterwards.
Do mind, though, that Buddy's pipelines can host both Linux and Windows actions, allowing you to compile code in different environments within one filesystem.
For example, you can create a pipeline that will build a .NET-based backend with frontend in React.js and deploy the application to the production server via SFTP:
The feature can be found in the build section of Buddy's actions:
Clicking the action will bring up its configuration details. Here you can define the commands that will be run in the context of your repository:
Optimizing Windows builds
Buddy caches dependencies and artifacts by default. The entire contents of the pipeline filesystem is uploaded to the worker before the build, and downloaded back to the filesystem once its over.
To speed up your builds, you can define what exactly is copied from the filesystem to the worker and back again. For example, you can configure the build to upload only the repository and dependencies, and restrict the downloaded files to artifacts only. This can be done in the Options tab:
Windows Worker Manifesto
Below you will find the list of software installed on the worker.
Microsoft Windows Server Datacenter 10.0.19041 N/A Build 19041 chocolatey 0.10.15 chocolatey-dotnetfx.extension 1.0.1 chocolatey-fastanswers.extension 0.0.2 chocolatey-visualstudio.extension 1.8.1 chocolatey-windowsupdate.extension 1.0.4 DotNet4.5.2 220.127.116.1140902 DotNet4.6 4.6.00081.20150925 DotNet4.6-TargetPack 4.6.00081.20150925 DotNet4.6.1 4.6.01055.20170308 dotnet4.7 4.7.2053.20190226 dotnet4.7.1 4.7.2558.20190226 dotnetfx 18.104.22.16890930 KB2919355 1.0.20160915 KB2919442 1.0.20160915 KB2999226 1.0.20181019 netfx-4.5.1-devpack 4.5.50932 netfx-4.5.2-devpack 4.5.5165101.20180721 netfx-4.6-devpack 4.6.81 netfx-4.6.1-devpack 4.6.01055.00 netfx-4.6.2 22.214.171.12490930 netfx-4.6.2-devpack 4.6.01590.20190930 netfx-4.7-devpack 4.7.2053.0 netfx-4.7.1-devpack 4.7.2558.20190225 netfx-4.7.2-devpack 126.96.36.19990225 netfx-4.8 188.8.131.5290930 netfx-4.8-devpack 184.108.40.20690930 nuget.commandline 5.8.0 visualstudio-installer 2.0.1 visualstudio2019-workload-webbuildtools 1.0.0 visualstudio2019buildtools 220.127.116.11 wsl 1.0.1 linux ubuntu 18.04.2 LTS subsystem
For now, Windows workers are available on cloud instances only. We are currently working on the on-premises version. If you'd like to help us with the tests, please drop a line to firstname.lastname@example.org or contact us via the live-chat.
We are also finishing works on iOS builds, a feature many of you have been asking. Let us know if you'd like to give them a test ride when the beta rolls out!