CircleCI has recently announced Windows support, expanding its current set of supported execution environments that already support Linux, Docker, and macOS. CircleCI Windows support enables users to run their CI/CD pipeline on a Windows virtual machine.
At this moment, CircleCI supports Windows Server 2019 with dependencies such as .NET support, Visual Studio, Windows SDK, Docker for Windows, cross-platform workspaces, and caches.
According to Rob Zuber, chief technology officer at CircleCI:
For the last few years, we have received an influx of interest from customers to build projects on Windows. We are excited to engage with the Microsoft ecosystem and help those using Windows, Azure, .NET, and other technologies from the Microsoft stack deliver software faster. As we improve our Windows solution we are also looking forward to furthering innovation in the Microsoft ecosystem.
Let's see the CircleCI platform diagram for Windows:
Some of the key benefits of CircleCI Windows support include:
- Windows jobs are VM-based and provide complete build isolation.
- It is used a clean environment that is created just in time and destroyed once the job finishes running for each new job. This ensures build reproducibility and the security of code, data, and secrets CI environment.
- The Windows environment on CircleCI also includes support for Docker Engine - Enterprise for Docker-based Windows workflows.
- All the CircleCI features like caches, Workspaces, approval jobs and Contexts, with the same level of support and UI, are available for Windows jobs.
Let's see a configuration snippet of a .circleci/config.yml
file that use three shells (powerShell, bash, and command) to run job steps on Windows:
version: 2.1
orbs:
win: circleci/windows@1.0.0
jobs:
build:
executor:
name: win/vs2019
shell: bash.exe
steps:
- checkout
- run: ls -lah
- run:
command: ping circleci.com
shell: cmd.exe
- run:
command: echo 'This is powershell'
shell: powershell.exe
The Windows image comes with some pre-installed software, such as Windows Server 2019 Core Datacenter Edition, Visual Studio 2019 Community Edition, Shells, .NET Framework 4.8, .NET Core, Git 2.22.0, Git LFS 2.7.2, Windows 10 SDK, Docker Engine - Enterprise version 18.09.7, NuGet CLI 5.2.0.6090, Chocolatey v0.10.15, Azure Service Fabric, OpenJDK 12.0.2, node.js v12.8.0, Ruby 2.6.3, Go 1.12.7, nano 2.5.3,vim 8.0.604, and jq 1.5.
More details about CircleCI Windows support can be found on the documentation page.