Build environment

Every build runs on a fresh virtual machine which is not shared with other builds and the state of which is not preserved between consequent builds. After the build is finished its virtual machine is decommissioned.

Build clouds

AppVeyor runs builds on two build clouds:

  • Hyper-V
  • Google Compute Engine (GCE)

Hyper-V

Hyper-V cloud is a primary build cloud hosted in RackSpace’s San Antonio, TX data center. It is a pool of pre-heated virtual machines, so, generally, builds start faster on Hyper-V cloud.

Google Compute Engine

Google Compute Engine (GCE) cloud is a secondary build cloud running in Google Cloud “Central US” zone. Builds are routed to GCE cloud when they use a custom build worker image not available on Hyper-V cloud. GCE cloud is also used as a failover solution for Hyper-V cloud.

It usually takes a build around 3-4 minutes to start on GCE environment as this is the time required to provision and boot up build virtual machine.

Private build cloud

There might be build scenarios that cannot be covered by AppVeyor build workers. For example, some proprietary software should be pre-installed to support your builds or you need more powerful build VMs or private network access.

AppVeyor allows running builds on your own cloud:

  • Hyper-V server (on-premise or hosted)
  • Docker server (on-premise or hosted)
  • Azure virtual machines
  • Amazon Web Services (AWS)
  • Google Compute Engine (GCE)

In this scenario AppVeyor service provides UI, orchestration, artifacts storage and NuGet feeds while AppVeyor build agents run on your virtual machines. Private build clouds are available to customers with Premium plan and can be enabled upon request. Please let us know if you are interested.

Build VM configurations

Build cloud / configurationCPUMemory
Hyper-V2 cores4 GB
GCE2 cores7.5 GB

IP addresses

IP addresses assigned to build workers:

74.205.54.20
104.197.110.30
104.197.145.181
146.148.85.29
67.225.139.254

IP address of AppVeyor workers (when deploying from “Environments”):

138.91.141.243

Build worker images

Build worker image is a template used to provision a virtual machine for your build. Physical implementation of the template depends on the build cloud platform and can be a master VHD for Hyper-V and Azure, snapshot or image for GCE or AWS.

AppVeyor provides these “standard” build worker images:

  • Visual Studio 2013
  • Visual Studio 2015
  • Visual Studio 2017

Below you can find the list of pre-installed software for each image.

Choosing image for your builds

If the build configuration does not specify build worker image then Visual Studio 2015 image is used.

You can select a different image on AppVeyor UI (“Environment” tab of project settings) or in appveyor.yml:

image: Visual Studio 2017

Please note that appveyor.yml has precedance over UI settings, so when appveyor.yml exists the image should be specified in YAML, not on UI.

Using multiple images for the same build

image is first class dimension for build matrix, therefore the following YAML configuration will work (and will create 4 build jobs):

image:
- Visual Studio 2015
- Visual Studio 2017
environment:
  matrix:
    - MY_VAR: value1
    - MY_VAR: value2

Also for some combinations it makes sense to use APPVEYOR_BUILD_WORKER_IMAGE “tweak” environment variable, so this configuration will also work (and will create 2 build jobs):

environment:
  matrix:
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      MY_VAR: value1
    - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      MY_VAR: value2

Image updates

AppVeyor team regularly (once in 2-3 weeks) updates build worker images by installing new or updating existing software.

The history of build worker image updates can be found here.

Before rolling out an image update we perform its extensive testing. However, not all usage scenarios can be covered by our automated tests and sometimes even a smallest change in the image can break someone’s build. If that happened - no worries - you’re covered! We provide an access to “last good” versions of build worker images from previous update:

  • Previous Visual Studio 2013
  • Previous Visual Studio 2015
  • Previous Visual Studio 2017

You can use those images to unblock your builds while we are working together with you to understand the root cause and do a fix by the next image update.

Pre-installed software

Software installed / Build worker imageVisual Studio 2013Visual Studio 2015Visual Studio 2017
Operating system
Windows Server 2012 R2
Windows Server 2016
Docker
  • Docker 17.06.1-ee-2 for Windows Containers with base images:
    • microsoft/windowsservercore (image id: be84290c2315)
      • tag: microsoft/windowsservercore:10.0.14393.1593
      • digest: microsoft/windowsservercore@sha256:c281f2c09c9446f1896806933013a350f19db8f5a009e633ebd9701c470de35b
    • microsoft/nanoserver (id: 28dad12ef0bc)
      • tag: microsoft/nanoserver:10.0.14393.1593
      • digest: microsoft/nanoserver@sha256:0ac4b5bb8e23c5145fdae8b6a19e8b2456816d7b23b208a45e2471468cbae743
docker-compose 1.11.2
Version control systems
Git 2.14.1 (x64) (with git config --global core.autocrlf input)
Git Large File Storage (LFS) 2.2.1
Mercurial 4.1.1 (x86)
Subversion 1.8.17 (x86)
Visual Studio 2008
Visual C++ 2008 Express
Visual Studio 2010
Visual C# 2010 Express
Visual Basic 2010 Express
Visual C++ 2010 Express
Visual Web Developer 2010 Express
Visual Studio 2010 Service Pack 1
Visual Studio 2012
Visual Studio Express 2012 for Windows Desktop
Visual Studio 2012 Update 5
SQL Server Data tools for Visual Studio 2012
Visual Studio 2013
Visual Studio Community 2013 with Update 5
Visual Studio 2013 SDK
Python Tools for Visual Studio 2013
Node.js Tools for Visual Studio 2013
WDK 8
Visual F# 3.1.2
Microsoft Visual Studio Installer Projects Extension (`.vdproj` support)
SQL Server Data tools for Visual Studio 2013
Microsoft SQL Server Data Tools - Business Intelligence for Visual Studio 2013
Office Developer Tools for Visual Studio 2013
Code Contracts for .NET 1.9.10714.2
Visual Studio 2015
Visual Studio Community 2015 with Update 3
Universal Windows App Dev Tools for Visual Studio 2015
Python Tools for Visual Studio 2015
Node.js Tools 1.2 for Visual Studio 2015
Visual F# Tools 4.0 RTM
WDK 10.0.14393
SQL Server Data Tools (SSDT) 17.0 (14.0.61704.140) for Visual Studio 2015
Data-Tier Application Framework (17.1 DacFx)
Azure Service Fabric SDK 2.7
Microsoft .NET Portable Library Reference Assemblies 4.6
Microsoft Visual Studio Installer Projects Extension (`.vdproj` support)
SQL Server Data tools for Visual Studio 2015
Office Developer Tools for Visual Studio 2015
Code Contracts for .NET 1.9.10714.2
Visual Studio 2017 version 15.3.3
Visual Studio Community 2017
Windows SDKs
Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1
Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1
Microsoft Windows SDK for Windows 7 and .NET Framework 4
Windows SDK for Windows 8
Windows SDK for Windows 8.1
Windows Driver Kit Version 7.1.0 (to support ATL)
Windows Driver Kit 10
Windows 10 SDK 10.0.10586
Windows 10 SDK 10.0.14393
Windows 10 SDK 10.0.26624
Microsoft Expression Blend Software Development Kit (SDK) for .NET 4
Microsoft Expression Blend Software Development Kit (SDK) for Silverlight 4
Windows Phone SDK 8.0
Windows PowerShell 2.0 SDK
DirectX SDK (C:\Program Files (x86)\Microsoft DirectX SDK)
Misc SDKs
AWS SDK for .NET with AWS Tools for Windows 3.3.69
AWS CLI 1.11.68
WiX Toolset 3.11.0.1701
TypeScript
TypeScript 1.4 for Visual Studio 2013
TypeScript 1.5 for Visual Studio 2013
TypeScript 1.6 for Visual Studio 2013
TypeScript 1.7 for Visual Studio 2013
TypeScript 1.8 for Visual Studio 2013
TypeScript 2.4.1 for Visual Studio 2015
TypeScript 2.1.5 for Visual Studio 2017
Azure
Azure SDK 2.3
Azure SDK 2.4
Azure SDK 2.5.1
Azure SDK 2.6
Azure SDK 2.7.1
Azure SDK 2.8.1
Azure SDK 2.9.5
Azure SDK 2.9.6
Azure SDK 3.0
Microsoft Azure Storage Emulator 5.2
Microsoft Azure PowerShell 4.1.0
Microsoft Azure CLI 0.9.10
DocumentDB Emulator 1.13.58.2
Xamarin
Xamarin v4.3.0
.NET Framework
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5.1, 4.5.2
.NET Framework 4.6.0, 4.6.1, 4.6.2
.NET Framework 4.7.0
.NET Core 1.0.0 runtime
.NET Core 1.0.1 runtime
.NET Core 1.0.3 runtime
.NET Core 1.0.4 runtime
.NET Core 1.1.0 runtime
.NET Core 1.1.1 runtime
.NET Core 1.1.2 runtime
.NET Core 2.0.0 runtime
.NET Core SDK 1.0.0-preview2-003121
.NET Core SDK 1.0.0-preview2-003131
.NET Core SDK 1.0.0-preview2-003156
.NET Core SDK 1.0.0-preview2-1-003177
.NET Core SDK 1.0.0
.NET Core SDK 1.0.1
.NET Core SDK 1.0.2
.NET Core SDK 1.0.3
.NET Core SDK 1.0.4
.NET Core SDK 2.0.0
.NET Core 1.0.4 & 1.1.1 - Windows Server Hosting
Silverlight
Silverlight 5 x64 Developer Runtime
Microsoft SilverLight 5 SDK
Microsoft SilverLight 4 SDK
Boost
  • Boost 1.64.0 (C:\Libraries\boost_1_64_0 - Visual Studio 2017 image only)
  • Boost 1.63.0 (C:\Libraries\boost_1_63_0)
  • Boost 1.62.0 (C:\Libraries\boost_1_62_0)
  • Boost 1.60.0 (C:\Libraries\boost_1_60_0)
  • Boost 1.59.0 (C:\Libraries\boost_1_59_0)
  • Boost 1.58.0 (C:\Libraries\boost_1_58_0)
  • Boost 1.56.0 (C:\Libraries\boost)
Node.js

4.x is default Node.js installed on build workers.

  • Node.js 8.0.0 - 8.4.0 (x86 and x64) - use Stable alias for latest 8.x release
  • Node.js 7.0.0 - 7.10.1 (x86 and x64)
  • Node.js 6.0.0 - 6.11.2 (x86 and x64) - use LTS alias for latest 6.x release
  • Node.js 4.0.0 - 4.8.4 (x86 and x64) - default on build workers
  • Node.js 5.0.0 - 5.12.0 (x86 and x64)
  • Node.js 0.10.26 - 0.10.48 (x86 and x64)
  • Node.js 0.11.12 - 0.11.16 (x86 and x64)
  • Node.js 0.12.0 - 0.12.18 (x86 and x64)
  • Node.js 0.8.25 - 0.8.28 (x86 and x64)
  • io.js 1.0.0 - 3.3.0 (x86 and x64)
  • Node.js 0.6.21 (x86 and x64)
Go (Golang)
  • Go 1.9.0 x64 (C:\go - default in PATH)
  • Go 1.9.0 x86 (C:\go-x86)
  • Go 1.9.0 x64 (C:\go19)
  • Go 1.9.0 x86 (C:\go19-x86)
  • Go 1.8.3 x64 (C:\go18)
  • Go 1.8.3 x86 (C:\go18-x86)
  • Go 1.7.6 x64 (C:\go17)
  • Go 1.7.6 x86 (C:\go17-x86)
  • Go 1.6.4 x64 (C:\go16)
  • Go 1.6.4 x86 (C:\go16-x86)
  • Go 1.5.4 x64 (C:\go15)
  • Go 1.5.4 x86 (C:\go15-x86)
  • Go 1.4.3 x64 (C:\go14)
  • Go 1.4.3 x86 (C:\go14-x86)
Java SE Development Kit (JDK)
  • JDK 1.6 Update 45 (x64) (C:\Program Files\Java\jdk1.6.0\bin - default in PATH)
  • JDK 1.6 Update 45 (x86) (C:\Program Files (x86)\Java\jdk1.6.0\bin)
  • JDK 1.7 Update 79 (x64) (C:\Program Files\Java\jdk1.7.0\bin - default in PATH)
  • JDK 1.7 Update 79 (x86) (C:\Program Files (x86)\Java\jdk1.7.0\bin)
  • JDK 1.8 Update 121 (x64) (C:\Program Files\Java\jdk1.8.0)
  • JDK 1.8 Update 121 (x86) (C:\Program Files (x86)\Java\jdk1.8.0)
Maven 3.3.9
Mono
Mono 4.0.2 SR2
Ruby (with DevKit)
  • Ruby 1.9.3-p551 (C:\Ruby193\bin - default in PATH)
  • Ruby 2.0.0-p648 x86 (C:\Ruby200\bin)
  • Ruby 2.0.0-p648 x64 (C:\Ruby200-x64\bin)
  • Ruby 2.1.9 x86 (C:\Ruby21\bin)
  • Ruby 2.1.9 x64 (C:\Ruby21-x64\bin)
  • Ruby 2.2.6 x86 (C:\Ruby22\bin)
  • Ruby 2.2.6 x64 (C:\Ruby22-x64\bin)
  • Ruby 2.3.3 x86 (C:\Ruby23\bin)
  • Ruby 2.3.3 x64 (C:\Ruby23-x64\bin)
  • Ruby 2.4.1-1 x86 (C:\Ruby24\bin)
  • Ruby 2.4.1-1 x64 (C:\Ruby24-x64\bin)
Python
  • Python 2.6.6 x86 (C:\Python26)
  • Python 2.6.6 x64 (C:\Python26-x64)
  • Python 2.7.13 x86 (C:\Python27 - default in PATH)
  • Python 2.7.13 x64 (C:\Python27-x64)
  • Python 3.3.5 x86 (C:\Python33)
  • Python 3.3.5 x64 (C:\Python33-x64)
  • Python 3.4.4 x86 (C:\Python34)
  • Python 3.4.4 x64 (C:\Python34-x64)
  • Python 3.5.3 x86 (C:\Python35)
  • Python 3.5.3 x64 (C:\Python35-x64)
  • Python 3.6.1 x86 (C:\Python36)
  • Python 3.6.1 x64 (C:\Python36-x64)
Visual C++ Compiler for Python 2.7
Miniconda
  • Miniconda2 4.3.11 (Python 2.7.13) - C:\Miniconda
  • Miniconda2 4.3.11 x64 (Python 2.7.13): C:\Miniconda-x64
  • Miniconda3 3.16.0 (Python 3.4.3): C:\Miniconda3
  • Miniconda3 3.16.0 x64 (Python 3.4.3): C:\Miniconda3-x64
  • Miniconda3 4.2.12 (Python 3.5.2): C:\Miniconda35
  • Miniconda3 4.2.12 x64 (Python 3.5.2): C:\Miniconda35-x64
  • Miniconda3 4.3.11 (Python 3.6.0): C:\Miniconda36
  • Miniconda3 4.3.11 x64 (Python 3.6.0): C:\Miniconda36-x64
Perl
Perl 5.20.1.2000 x86 (C:\Perl in PATH)
Erlang
Erlang OTP runtime 19.3 x64 installed into C:\Program Files\erl8.3
LLVM
LLVM 4.0.0 x64 (C:\Program Files\LLVM\bin in PATH)
LLVM 4.0.0 Compiler Infrastructure libraries (C:\Libraries\llvm-4.0.0)
MinGW, MSYS, Cygwin
  • MinGW 32-bit 5.3.0 (core components and compilers - C:\MinGW)
    • MinGW root directory: C:\MinGW
    • MinGW bin directory: C:\MinGW\bin
    • MSYS root directory: C:\MinGW\msys\1.0
  • MinGW-w64
    • 5.3.0: C:\mingw-w64\i686-5.3.0-posix-dwarf-rt_v4-rev0
    • 6.3.0 i686: C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1
    • 6.3.0 x86_64: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1
Cygwin (C:\cygwin)
Cygwin 64 (C:\cygwin64)
MSYS2 (C:\msys64)
Qt
  • Qt 5.9.1: C:\Qt\5.9.1 (C:\Qt\5.9 mapped to C:\Qt\5.9.1 for backward compatibility)
    • MinGW 5.3.0 32 bit: C:\Qt\5.9.1\mingw53_32
    • msvc2017 64-bit: C:\Qt\5.9.1\msvc2017_64 (VS 2017 image only)
    • msvc2015 64-bit: C:\Qt\5.9.1\msvc2015_64
    • msvc2015 32-bit: C:\Qt\5.9.1\msvc2015
    • msvc2013 64-bit: C:\Qt\5.9.1\msvc2013_64
  • Qt 5.8.0: C:\Qt\5.8
    • MinGW 5.3.0 32 bit: C:\Qt\5.8\mingw53_32
    • msvc2015 64-bit: C:\Qt\5.8\msvc2015_64
    • msvc2015 32-bit: C:\Qt\5.8\msvc2015
    • msvc2013 64-bit: C:\Qt\5.8\msvc2013_64
    • msvc2013 32-bit: C:\Qt\5.8\msvc2013
  • Qt 5.7.1: C:\Qt\5.7
    • MinGW 5.3.0 32 bit: C:\Qt\5.7\mingw53_32
    • msvc2015 64-bit: C:\Qt\5.7\msvc2015_64
    • msvc2015 32-bit: C:\Qt\5.7\msvc2015
    • msvc2013 64-bit: C:\Qt\5.7\msvc2013_64
    • msvc2013 32-bit: C:\Qt\5.7\msvc2013
  • Qt 5.6.2: C:\Qt\5.6
    • MinGW 4.9.2 32 bit: C:\Qt\5.6\mingw49_32
    • msvc2015 64-bit: C:\Qt\5.6\msvc2015_64
    • msvc2015 32-bit: C:\Qt\5.6\msvc2015
    • msvc2013 64-bit: C:\Qt\5.6\msvc2013_64
    • msvc2013 32-bit: C:\Qt\5.6\msvc2013
  • Qt 5.5: C:\Qt\5.5
    • MinGW 4.9.2 32 bit: C:\Qt\5.5\mingw492_32
    • msvc2013 64-bit: C:\Qt\5.5\msvc2013_64
    • msvc2013 32-bit: C:\Qt\5.5\msvc2013
  • Qt 5.4: C:\Qt\5.4
    • MinGW 4.9.1 (32 bit) OpenGL: C:\Qt\5.4\mingw491_32
    • msvc2013 64-bit OpenGL: C:\Qt\5.4\msvc2013_64_opengl
    • msvc2013 32-bit OpenGL: C:\Qt\5.4\msvc2013_opengl
  • Qt 5.3: C:\Qt\5.3
    • MinGW 4.8.2 (32 bit): C:\Qt\5.3\mingw482_32
    • msvc2013 64-bit OpenGL: C:\Qt\5.3\msvc2013_64_opengl
    • msvc2013 32-bit OpenGL: C:\Qt\5.3\msvc2013_opengl
  • Tools
    • MinGW 5.3.0: C:\Qt\Tools\mingw530_32
    • MinGW 4.8.2: C:\Qt\Tools\mingw482_32
    • MinGW 4.9.1: C:\Qt\Tools\mingw491_32
    • MinGW 4.9.2: C:\Qt\Tools\mingw492_32
Qt Installer Framework 2.0.3
Tools
curl 7.55.1
7-Zip 16.04
Microsoft Web Platform Installer 5.0
CMake 3.9.1
NuGet 2.8.6
NuGet 4.1.0
Chocolatey v0.10.7
GitVersion 3.6.2
FxCop 10.0
OpenSSL 1.0.2L (32-bit) (C:\OpenSSL-Win32\bin)
OpenSSL 1.0.2L (64-bit) (C:\OpenSSL-Win64\bin)
NSIS 3.02.1 (C:\Program Files (x86)\NSIS)
InnoSetup 5.5.9 (C:\Program Files (x86)\Inno Setup 5)
Coverity Scan 2017.07
Yarn 0.24.6
vcpkg
Test runners
NUnit 2.6.4 in C:\Tools\NUnit\bin
NUnit 3.4.1 in C:\Tools\NUnit3
xUnit 1.9.2 in C:\Tools\xUnit
xUnit 2.0.0 RTM in C:\Tools\xUnit20
Machine.Specifications (MSpec)
Web browsers
Internet Explorer 11
Firefox 55.0.2
Chrome 60.0
Selenium testing
Chrome Web Driver 2.31
Internet Explorer Web Driver 3.5.0
Firefox Web Driver (geckodriver) 0.18.0
Databases
SQL Server 2008 R2 SP2 Express Edition with Advanced Services (x64)
SQL Server 2012 SP1 Express with Advanced Services
SQL Server 2014 Express with Advanced Services
SQL Server 2016 Developer with SP1
PostgreSQL 9.3 x64
PostgreSQL 9.4 x64
PostgreSQL 9.5 x64
PostgreSQL 9.6 x64
PostgreSQL ODBC drivers
MySQL 5.7
MySQL ODBC drivers
MongoDB 3.2.5
Services
Internet Information Services (IIS) 8.5
Internet Information Services (IIS) 10
MSMQ
Did you know that you can edit this page on GitHub and send us a Pull Request?