Feature spotlight: Windows builds

November 27, 2020

Feature spotlight: Windows builds

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.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
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-devpack 4.6.01590.20190930
netfx-4.7-devpack 4.7.2053.0
netfx-4.7.1-devpack 4.7.2558.20190225
nuget.commandline 5.8.0
visualstudio-installer 2.0.1
visualstudio2019-workload-webbuildtools 1.0.0
wsl 1.0.1
linux ubuntu 18.04.2 LTS subsystem

What's next

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 support@buddy.works 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!


Alexander Kus

Alexander Kus

Customer Success Manager

A story-teller and conversation-lover, Alexander decided to invest his skills to help his friends at Buddy transform the cold language of patch notes into exciting narratives. Also: an avid gamer, hip-hop DJ, Liverpool FC fan, absentminded husband, and the father of two.