Enable custom build environment

Currently custom build environment feature is not generally available. It is being enabled for specific accounts per request. Please send an email to team@appveyor.com if you decide to try this feature.

Prepare host machine

Minimum requirements:

Windows Server 2012 R2 (Windows 8.1) or higher

.NET Framework 4.5.2

Hyper-V role installed

Enough free memory and disk space to run guest VMs

Internet connectivity

Currently we require outbound Internet connectivity at TCP (not HTTP) level (behind router or NAT). We are working on proxy support, please watch this issue

Create Virtual Switch

If Hyper-V host already has Virtual Switch of type External, which uses Hyper-V Server NIC with access to the Internet, and it is OK to use it for build VMs, please go to Create Master VM step

In Hyper-V manager navigate to Virtual Switch Manager on right top panel

Prepare master VHD

Shutdown Master VM

Open Virtual Hard Disks folder (it can be found in Hyper-V settings, usually C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks) and copy it to the folder AppVeyor will read it from, for example C:\VHDs

Alternatively original .vhdx file of Master VM can be used by AppVeyor. This is OK if Master VM is stopped and only one Hyper-V server if used. In case of many Hyper-V servers, Master VM .vhdx should be copied across all Hyper-V servers

Setting up custom cloud and images in AppVeyor

Login to AppVeyor portal

Navigate to your account name on the top right and select Build environment option from drop-down menu

CPU cores: number of virtual CPU cores per VM. We do not have specific requirements, but do not advice overcommit too much. For example, if host machine has 4 logical CPU cores and you will run 2 builds in parallel, it makes sense to assign 2 cores per machine.

RAM, MB: amount of Virtual machine RAM. Please use amount of free memory on Hyper-V Server and number of parallel builds to calculate.

Virtual machines location: folder where virtual machines will be created

Use DHCP checkbox. If subnet connected with Virtual Network switch NIC has DHCP server in it (most common case), leave this checkbox as is. Otherwise uncheck it and set how IP addresses will be assigned

Images

IMAGE NAME: Image name as you want to see it in AppVeyor UI and YAML, for example VS2013 with WMF3