[windows] Add Windows Server 2025 with Visual Studio 2026 (#13635)

This commit is contained in:
Shamil Mubarakshin
2026-02-06 10:59:14 +01:00
committed by GitHub
parent c218bde724
commit 71f0157880
17 changed files with 1155 additions and 29 deletions
+1
View File
@@ -46,6 +46,7 @@ body:
- label: macOS 26 Arm64
- label: Windows Server 2022
- label: Windows Server 2025
- label: Windows Server 2025 with Visual Studio 2026
- type: textarea
attributes:
label: Mitigation ways
+1
View File
@@ -29,6 +29,7 @@ body:
- label: macOS 26 Arm64
- label: Windows Server 2022
- label: Windows Server 2025
- label: Windows Server 2025 with Visual Studio 2026
- type: textarea
attributes:
label: Image version and build link
+1
View File
@@ -67,6 +67,7 @@ body:
- label: macOS 26 Arm64
- label: Windows Server 2022
- label: Windows Server 2025
- label: Windows Server 2025 with Visual Studio 2026
- type: textarea
attributes:
label: Can this tool be installed during the build?
+20
View File
@@ -0,0 +1,20 @@
name: Trigger Windows25 with VS 2026 CI
run-name: Windows2025 with VS 2026 - ${{ github.event.pull_request.title }}
on:
pull_request_target:
types: labeled
paths:
- 'images/windows/**'
defaults:
run:
shell: pwsh
jobs:
Windows_2025_vs_2026:
if: github.event.label.name == 'CI windows-all' || github.event.label.name == 'CI windows-2025-vs2026'
uses: ./.github/workflows/trigger-ubuntu-win-build.yml
with:
image_type: 'windows2025-vs2026'
secrets: inherit
+2
View File
@@ -28,6 +28,7 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
| macOS 15 Arm64<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fmacos-15-arm64.json) | arm64 | `macos-latest`, `macos-15`, or `macos-15-xlarge` | [macOS-15-arm64] |
| macOS 14<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fmacos-14.json) | x64 | `macos-14-large`| [macOS-14] |
| macOS 14 Arm64<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fmacos-14-arm64.json) | arm64 | `macos-14` or `macos-14-xlarge`| [macOS-14-arm64] |
| Windows Server 2025 with Visual Studio 2026 ![beta](https://img.shields.io/badge/beta-yellow) | x64 | `windows-2025-vs2026` | [windows-2025-vs2026] |
| Windows Server 2025<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fwin25.json) | x64 | `windows-latest` or `windows-2025` | [windows-2025] |
| Windows Server 2022<br>![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fhosted-runners-images-bot%2F79267492faab096d04cdd25ce7014cec%2Fraw%2Fwin22.json) | x64 | `windows-2022` | [windows-2022] |
@@ -41,6 +42,7 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
[ubuntu-22.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md
[ubuntu-slim]: https://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md
[windows-2025]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md
[windows-2025-vs2026]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-VS2026-Readme.md
[windows-2022]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md
[macOS-14]: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md
[macOS-14-arm64]: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md
+12 -7
View File
@@ -1,10 +1,11 @@
$ErrorActionPreference = 'Stop'
enum ImageType {
Windows2022 = 1
Windows2025 = 2
Ubuntu2204 = 3
Ubuntu2404 = 4
Windows2022 = 1
Windows2025 = 2
Windows2025_vs2026 = 3
Ubuntu2204 = 4
Ubuntu2404 = 5
}
Function Get-PackerTemplate {
@@ -25,6 +26,10 @@ Function Get-PackerTemplate {
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "build.windows-2025.pkr.hcl"
$imageOS = "win25"
}
([ImageType]::Windows2025_vs2026) {
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "build.windows-2025-vs2026.pkr.hcl"
$imageOS = "win25-vs2026"
}
([ImageType]::Ubuntu2204) {
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "build.ubuntu-22_04.pkr.hcl"
$imageOS = "ubuntu22"
@@ -83,7 +88,7 @@ Function GenerateResourcesAndImage {
.PARAMETER ResourceGroupName
The name of the resource group to store the resulting artifact. Resource group must already exist.
.PARAMETER ImageType
The type of image to generate. Valid values are: Windows2022, Windows2025, Ubuntu2204, Ubuntu2404.
The type of image to generate. Valid values are: Windows2022, Windows2025, Windows2025_vs2026, Ubuntu2204, Ubuntu2404.
.PARAMETER ManagedImageName
The name of the managed image to create. The default is "Runner-Image-{{ImageType}}".
.PARAMETER AzureLocation
@@ -210,7 +215,7 @@ Function GenerateResourcesAndImage {
Write-Host "Validating packer template..."
& $PackerBinary validate `
"-only=$($PackerTemplate.BuildName)*" `
"-only=$($PackerTemplate.BuildName).*" `
"-var=client_id=fake" `
"-var=client_secret=fake" `
"-var=subscription_id=$($SubscriptionId)" `
@@ -280,7 +285,7 @@ Function GenerateResourcesAndImage {
Write-Debug "Tenant id: $TenantId."
& $PackerBinary build -on-error="$($OnError)" `
-only "$($PackerTemplate.BuildName)*" `
-only "$($PackerTemplate.BuildName).*" `
-var "client_id=$($ServicePrincipalAppId)" `
-var "client_secret=$($ServicePrincipalPassword)" `
-var "subscription_id=$($SubscriptionId)" `
+490
View File
@@ -0,0 +1,490 @@
| Announcements |
|-|
| [[Windows/Ubuntu] Docker Server and Client will be updated to version 29.1.*, Docker Compose will be updated to version 2.40.3 on February 9th, 2026](https://github.com/actions/runner-images/issues/13474) |
***
# Windows Server 2025
- OS Version: 10.0.26100 Build 32230
- Image Version: 20260203.4.1
## Windows features
- Windows Subsystem for Linux (WSLv1): Enabled
- Windows Subsystem for Linux (Default, WSLv2): 2.6.3.0
## Installed Software
### Language and Runtime
- Bash 5.2.37(1)-release
- Go 1.24.12
- Julia 1.12.0
- Kotlin 2.3.0
- LLVM 20.1.8
- Node 22.22.0
- Perl 5.42.0
- PHP 8.5.2
- Python 3.12.10
- Ruby 3.3.10
### Package Management
- Chocolatey 2.6.0
- Composer 2.9.5
- Helm 4.1.0
- Miniconda 25.11.1 (pre-installed on the image but not added to PATH)
- NPM 10.9.4
- NuGet 7.0.1.1
- pip 26.0 (python 3.12)
- Pipx 1.8.0
- RubyGems 3.5.22
- Vcpkg (build from commit cc73782a88)
- Yarn 1.22.22
#### Environment variables
| Name | Value |
| ----------------------- | ------------ |
| VCPKG_INSTALLATION_ROOT | C:\vcpkg |
| CONDA | C:\Miniconda |
### Project Management
- Ant 1.10.15
- Gradle 9.3
- Maven 3.9.12
- sbt 1.12.1
### Tools
- 7zip 25.01
- aria2 1.37.0
- azcopy 10.31.1
- Bazel 9.0.0
- Bazelisk 1.28.1
- Bicep 0.40.2
- Cabal 3.16.1.0
- CMake 4.2.3
- CodeQL Action Bundle 2.24.0
- Docker 27.5.1
- Docker Compose v2 2.32.2
- Docker-wincred 0.9.5
- ghc 9.14.1
- Git 2.53.0.windows.1
- Git LFS 3.7.1
- ImageMagick 7.1.2-13
- InnoSetup 6.7.0
- jq 1.8.1
- Kind 0.31.0
- Kubectl 1.35.0
- gcc 15.2.0
- gdb 16.3
- GNU Binutils 2.45
- Newman 6.2.2
- OpenSSL 3.6.1
- Packer 1.14.2
- Pulumi 3.218.0
- R 4.5.2
- Service Fabric SDK 10.1.2493.9590
- Stack 3.9.1
- Swig 4.3.1
- VSWhere 3.1.7
- WinAppDriver 1.2.2009.02003
- WiX Toolset 3.14.1.8722
- yamllint 1.38.0
- zstd 1.5.7
- Ninja 1.13.2
### CLI Tools
- AWS CLI 2.33.12
- AWS SAM CLI 1.153.1
- AWS Session Manager CLI 1.2.764.0
- Azure CLI 2.83.0
- Azure DevOps CLI extension 1.0.2
- GitHub CLI 2.86.0
### Rust Tools
- Cargo 1.93.0
- Rust 1.93.0
- Rustdoc 1.93.0
- Rustup 1.28.2
#### Packages
- Clippy 0.1.93
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 144.0.7559.110
- Chrome Driver 144.0.7559.109
- Microsoft Edge 144.0.3719.104
- Microsoft Edge Driver 144.0.3719.104
- Mozilla Firefox 147.0.2
- Gecko Driver 0.36.0
- IE Driver 4.14.0.0
- Selenium server 4.40.0
#### Environment variables
| Name | Value |
| ----------------- | ---------------------------------- |
| CHROMEWEBDRIVER | C:\SeleniumWebDrivers\ChromeDriver |
| EDGEWEBDRIVER | C:\SeleniumWebDrivers\EdgeDriver |
| GECKOWEBDRIVER | C:\SeleniumWebDrivers\GeckoDriver |
| SELENIUM_JAR_PATH | C:\selenium\selenium-server.jar |
### Java
| Version | Environment Variable |
| -------------------- | -------------------- |
| 8.0.472+8 | JAVA_HOME_8_X64 |
| 11.0.29+7 | JAVA_HOME_11_X64 |
| 17.0.17+10 (default) | JAVA_HOME_17_X64 |
| 21.0.9+10.0 | JAVA_HOME_21_X64 |
| 25.0.2+10.0 | JAVA_HOME_25_X64 |
### Shells
| Name | Target |
| ------------- | --------------------------------- |
| gitbash.exe | C:\Program Files\Git\bin\bash.exe |
| msys2bash.cmd | C:\msys64\usr\bin\bash.exe |
| wslbash.exe | C:\Windows\System32\bash.exe |
### MSYS2
- Pacman 6.1.0
#### Notes
```
Location: C:\msys64
Note: MSYS2 is pre-installed on image but not added to PATH.
```
### Cached Tools
#### Go
- 1.22.12
- 1.23.12
- 1.24.12
- 1.25.6
#### Node.js
- 20.20.0
- 22.22.0
- 24.13.0
#### Python
- 3.10.11
- 3.11.9
- 3.12.10
- 3.13.11
- 3.14.2
#### PyPy
- 3.9.19 [PyPy 7.3.16]
- 3.10.16 [PyPy 7.3.19]
#### Ruby
- 3.2.10
- 3.3.10
- 3.4.8
- 4.0.1
### Databases
#### PostgreSQL
| Property | Value |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| ServiceName | postgresql-x64-17 |
| Version | 17.7 |
| ServiceStatus | Stopped |
| ServiceStartType | Disabled |
| EnvironmentVariables | PGBIN=C:\Program Files\PostgreSQL\17\bin <br> PGDATA=C:\PostgreSQL\17\data <br> PGROOT=C:\Program Files\PostgreSQL\17 |
| Path | C:\Program Files\PostgreSQL\17 |
| UserName | postgres |
| Password | root |
#### MongoDB
| Version | ServiceName | ServiceStatus | ServiceStartType |
| -------- | ----------- | ------------- | ---------------- |
| 7.0.29.0 | MongoDB | Stopped | Disabled |
### Database tools
- Azure CosmosDb Emulator 2.14.25.0
- DacFx 170.2.70.1
- MySQL 8.0.45.0
- SQL OLEDB Driver 18 18.7.5.0
- SQL OLEDB Driver 19 19.4.1.0
- SQLPS 1.0
- MongoDB Shell (mongosh) 2.6.0
### Web Servers
| Name | Version | ConfigFile | ServiceName | ServiceStatus | ListenPort |
| ------ | ------- | ------------------------------------- | ----------- | ------------- | ---------- |
| Apache | 2.4.55 | C:\tools\Apache24\conf\httpd.conf | Apache | Stopped | 80 |
| Nginx | 1.29.4 | C:\tools\nginx-1.29.4\conf\nginx.conf | nginx | Stopped | 80 |
### Visual Studio Enterprise 2026
| Name | Version | Path |
| ----------------------------- | -------------- | ------------------------------------------------------ |
| Visual Studio Enterprise 2026 | 18.2.11415.280 | C:\Program Files\Microsoft Visual Studio\18\Enterprise |
#### Workloads, components and extensions
| Package | Version |
| ------------------------------------------------------------------------- | --------------- |
| android | 36.1.2.0 |
| Component.Android.NDK.R27C | 18.0.11101.84 |
| Component.Android.SDK.MAUI | 18.0.11101.84 |
| Component.Linux.CMake | 18.0.11101.84 |
| Component.Linux.RemoteFileExplorer | 18.0.11101.84 |
| Component.MDD.Android | 18.1.11302.112 |
| Component.MDD.Linux | 18.0.11101.78 |
| Component.Microsoft.VisualStudio.RazorExtension | 18.0.11101.84 |
| Component.Microsoft.VisualStudio.Tools.Applications.amd64 | 17.0.36522.0 |
| Component.Microsoft.VisualStudio.Web.AzureFunctions | 18.0.11101.84 |
| Component.Microsoft.Web.LibraryManager | 18.0.11101.84 |
| Component.Microsoft.Windows.DriverKit | 10.0.26100.12 |
| Component.OpenJDK | 18.0.11101.84 |
| Component.UnityEngine.x64 | 18.0.11101.78 |
| Component.Unreal.Debugger | 18.2.11407.205 |
| Component.Unreal.Ide | 18.0.11101.78 |
| Component.VisualStudio.GitHub.Copilot | 18.2.11414.340 |
| Component.VSInstallerProjects2022 | 3.0.0 |
| Component.WixToolset.VisualStudioExtension.Dev17 | 1.0.0.22 |
| Component.WixToolset.VisualStudioExtension.Schemas3 | 1.0.0.22 |
| ComponentGroup.Microsoft.NET.AppModernization | 18.0.11217.1 |
| ios | 26.1.10502 |
| maccatalyst | 26.1.10502 |
| maui.blazor | 10.0.1.7412 |
| maui.core | 10.0.1.7412 |
| maui.windows | 10.0.1.7412 |
| Microsoft.Component.Azure.DataLake.Tools | 18.1.11302.112 |
| Microsoft.Component.ClickOnce | 18.0.11101.78 |
| Microsoft.Component.CodeAnalysis.SDK | 18.0.11101.84 |
| Microsoft.Component.MSBuild | 18.0.11101.78 |
| Microsoft.Component.NetFX.Native | 18.0.11101.78 |
| Microsoft.Component.PythonTools | 18.0.11101.78 |
| Microsoft.Component.PythonTools.Web | 18.0.11101.78 |
| Microsoft.Component.VC.Runtime.UCRTSDK | 18.0.11101.78 |
| Microsoft.ComponentGroup.Blend | 18.0.11101.84 |
| Microsoft.ComponentGroup.ClickOnce.Publish | 18.0.11101.84 |
| Microsoft.Net.Component.4.6.2.TargetingPack | 18.0.11101.78 |
| Microsoft.Net.Component.4.6.TargetingPack | 18.0.11101.84 |
| Microsoft.Net.Component.4.7.1.TargetingPack | 18.0.11101.78 |
| Microsoft.Net.Component.4.7.2.TargetingPack | 18.0.11101.84 |
| Microsoft.Net.Component.4.7.TargetingPack | 18.0.11101.84 |
| Microsoft.Net.Component.4.8.1.SDK | 18.0.11101.78 |
| Microsoft.Net.Component.4.8.1.TargetingPack | 18.0.11101.78 |
| Microsoft.Net.Component.4.8.SDK | 18.0.11101.84 |
| Microsoft.Net.Component.4.8.TargetingPack | 18.0.11101.84 |
| Microsoft.Net.ComponentGroup.4.8.DeveloperTools | 18.0.11101.84 |
| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 18.0.11101.84 |
| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 18.0.11101.84 |
| microsoft.net.runtime.android | 10.1.225.61305 |
| microsoft.net.runtime.android.aot | 10.1.225.61305 |
| microsoft.net.runtime.android.aot.net9 | 10.1.225.61305 |
| microsoft.net.runtime.android.net9 | 10.1.225.61305 |
| microsoft.net.runtime.ios | 10.1.225.61305 |
| microsoft.net.runtime.ios.net9 | 10.1.225.61305 |
| microsoft.net.runtime.maccatalyst | 10.1.225.61305 |
| microsoft.net.runtime.maccatalyst.net9 | 10.1.225.61305 |
| microsoft.net.runtime.mono.tooling | 10.1.225.61305 |
| microsoft.net.runtime.mono.tooling.net9 | 10.1.225.61305 |
| microsoft.net.sdk.emscripten | 10.1.225.61305 |
| Microsoft.NetCore.Component.DevelopmentTools | 18.0.11101.78 |
| Microsoft.NetCore.Component.Runtime.10.0 | 18.2.11407.205 |
| Microsoft.NetCore.Component.Runtime.8.0 | 18.2.11407.205 |
| Microsoft.NetCore.Component.SDK | 18.2.11407.205 |
| Microsoft.NetCore.Component.Web | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.AppInsights.Tools | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.AspNet | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.AspNet45 | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.ClassDesigner | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.CodeMap | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.CoreEditor | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.CppBuildInsights | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Debugger.JustInTime | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.DiagnosticTools | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.DockerTools | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.DotNetModelBuilder | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.DslTools | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.EntityFramework | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.FSharp | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.FSharp.Desktop | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.FSharp.WebTemplates | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.GraphDocument | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Graphics | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Graphics.Tools | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.HLSL | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.IISExpress | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.IntelliCode | 18.0.11121.172 |
| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.LinqToSql | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.LiveUnitTesting | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.ManagedDesktop.Core | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.MSODBC.SQL | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.Node.Tools | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.NuGet | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.NuGet.BuildTools | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.PortableLibrary | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Roslyn.Compiler | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Roslyn.LanguageServices | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Sharepoint.Tools | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.SQL.CLR | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.SQL.DataSources | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.SQL.SSDT | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.TeamOffice | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.TextTemplating | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.TypeScript.TSServer | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Unity | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.UWP.VC.ARM64 | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.UWP.VC.ARM64EC | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64 | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64 | 18.2.11414.340 |
| Microsoft.VisualStudio.Component.VC.ASAN | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.ATL | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM64 | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.ATL.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.ATLMFC | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.CLI.Support | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.CMake.Project | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VC.CoreIde | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VC.DiagnosticTools | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.VC.Llvm.Clang | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.VC.MFC.ARM64 | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.Redist.14.Latest | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.Redist.MSM | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64EC.Spectre | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.VC.Tools.ARM64EC | 18.0.11123.170 |
| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 18.1.11302.112 |
| Microsoft.VisualStudio.Component.Vcpkg | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.VSSDK | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Wcf.Tooling | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Web | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.WebDeploy | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.Windows10SDK | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Windows11SDK.26100 | 18.2.11407.205 |
| Microsoft.VisualStudio.Component.Windows11Sdk.WindowsPerformanceToolkit | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.WindowsAppSdkSupport.CSharp | 18.0.11101.84 |
| Microsoft.VisualStudio.Component.Workflow | 18.0.11101.78 |
| Microsoft.VisualStudio.Component.WslDebugging | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.AzureFunctions | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.All | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Android | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Blazor | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.iOS | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.MacCatalyst | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Shared | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Windows | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 18.1.11302.112 |
| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142 | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64 | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.Web | 18.0.11111.16 |
| Microsoft.VisualStudio.ComponentGroup.Web.CloudTools | 18.0.11123.170 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 18.0.11101.84 |
| Microsoft.VisualStudio.ComponentGroup.WindowsAppDevelopment.Prerequisites | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Azure | 18.2.11406.125 |
| Microsoft.VisualStudio.Workload.CoreEditor | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Data | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.DataScience | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.ManagedDesktop | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.ManagedGame | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.NativeCrossPlat | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.NativeDesktop | 18.0.11123.170 |
| Microsoft.VisualStudio.Workload.NativeGame | 18.0.11123.170 |
| Microsoft.VisualStudio.Workload.NativeMobile | 18.1.11302.112 |
| Microsoft.VisualStudio.Workload.NetCrossPlat | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.NetWeb | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Node | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Office | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Python | 18.0.11101.84 |
| Microsoft.VisualStudio.Workload.Universal | 18.0.11123.170 |
| Microsoft.VisualStudio.Workload.VisualStudioExtension | 18.0.11101.84 |
| runtimes.ios | 10.1.225.61305 |
| runtimes.ios.net9 | 10.1.225.61305 |
| runtimes.maccatalyst | 10.1.225.61305 |
| runtimes.maccatalyst.net9 | 10.1.225.61305 |
| wasm.tools | 10.1.225.61305 |
| ProBITools.MicrosoftAnalysisServicesModelingProjects2022 | 4.0.0 |
| ProBITools.MicrosoftReportProjectsforVisualStudio2022 | 4.0.0 |
| SSIS.MicrosoftDataToolsIntegrationServices | 2.1.2 |
| VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects | 3.0.0 |
| Windows Driver Kit Visual Studio Extension | 10.0.26100.12 |
| Windows Software Development Kit | 10.1.26100.7175 |
| WixToolset.WixToolsetVisualStudio2022Extension | 1.0.0.22 |
#### Microsoft Visual C++
| Name | Architecture | Version |
| -------------------------------------------- | ------------ | ----------- |
| Microsoft Visual C++ 2013 Additional Runtime | x64 | 12.0.40660 |
| Microsoft Visual C++ 2013 Minimum Runtime | x64 | 12.0.40660 |
| Microsoft Visual C++ 2022 Additional Runtime | x64 | 14.50.35719 |
| Microsoft Visual C++ 2022 Debug Runtime | x64 | 14.50.35719 |
| Microsoft Visual C++ 2022 Minimum Runtime | x64 | 14.50.35719 |
| Microsoft Visual C++ 2022 Additional Runtime | x86 | 14.50.35719 |
| Microsoft Visual C++ 2022 Debug Runtime | x86 | 14.50.35719 |
| Microsoft Visual C++ 2022 Minimum Runtime | x86 | 14.50.35719 |
#### Installed Windows SDKs
- 10.0.26100.0
### .NET Core Tools
- .NET Core SDK: 8.0.123, 8.0.206, 8.0.319, 8.0.417, 9.0.113, 9.0.205, 9.0.310, 10.0.102
- .NET Framework: 4.8, 4.8.1
- Microsoft.AspNetCore.App: 8.0.6, 8.0.22, 8.0.23, 9.0.6, 9.0.12, 10.0.2
- Microsoft.NETCore.App: 8.0.6, 8.0.22, 8.0.23, 9.0.6, 9.0.12, 10.0.2
- Microsoft.WindowsDesktop.App: 8.0.6, 8.0.22, 8.0.23, 9.0.6, 9.0.12, 10.0.2
- nbgv 3.9.50+6feeb89450
### PowerShell Tools
- PowerShell 7.4.13
#### Powershell Modules
- Az: 14.6.0
- AWSPowershell: 5.0.146
- DockerMsftProvider: 1.0.0.8
- MarkdownPS: 1.10
- Microsoft.Graph: 2.35.0
- Pester: 3.4.0, 5.7.1
- PowerShellGet: 1.0.0.1, 2.2.5
- PSScriptAnalyzer: 1.24.0
- PSWindowsUpdate: 2.2.1.5
- SqlServer: 22.3.0
- VSSetup: 2.2.16
### Android
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 19.0 |
| Android Emulator | 36.3.10 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platforms | android-36.1 (rev 1)<br>android-36-ext19 (rev 1)<br>android-36-ext18 (rev 1)<br>android-36 (rev 2)<br>android-35-ext15 (rev 1)<br>android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3) |
| Android SDK Platform-Tools | 36.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.30.5<br>3.31.5<br>4.1.2 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 27.3.13750724<br>28.2.13676358<br>29.0.14206865 |
#### Environment variables
| Name | Value |
| ----------------------- | ---------------------------------------- |
| ANDROID_HOME | C:\Android\android-sdk |
| ANDROID_NDK | C:\Android\android-sdk\ndk\27.3.13750724 |
| ANDROID_NDK_HOME | C:\Android\android-sdk\ndk\27.3.13750724 |
| ANDROID_NDK_LATEST_HOME | C:\Android\android-sdk\ndk\29.0.14206865 |
| ANDROID_NDK_ROOT | C:\Android\android-sdk\ndk\27.3.13750724 |
| ANDROID_SDK_ROOT | C:\Android\android-sdk |
@@ -15,10 +15,14 @@ $imageMinorVersion = $imageVersionComponents[1]
$imageDataFile = $env:IMAGEDATA_FILE
$githubUrl = "https://github.com/actions/runner-images/blob"
if (Test-IsWin25) {
$imageLabel = "windows-2025"
$softwareUrl = "${githubUrl}/win25/$imageMajorVersion.$imageMinorVersion/images/windows/Windows2025-Readme.md"
$releaseUrl = "https://github.com/actions/runner-images/releases/tag/win25%2F$imageMajorVersion.$imageMinorVersion"
if ((Test-IsWin25) -and $env:INSTALL_VS_2026) {
$imageLabel = "windows-2025-vs2026"
$softwareUrl = "${githubUrl}/win25-vs2026/$imageMajorVersion.$imageMinorVersion/images/windows/Windows2025-VS2026-Readme.md"
$releaseUrl = "https://github.com/actions/runner-images/releases/tag/win25-vs2026%2F$imageMajorVersion.$imageMinorVersion"
} elseif (Test-IsWin25) {
$imageLabel = "windows-2025"
$softwareUrl = "${githubUrl}/win25/$imageMajorVersion.$imageMinorVersion/images/windows/Windows2025-Readme.md"
$releaseUrl = "https://github.com/actions/runner-images/releases/tag/win25%2F$imageMajorVersion.$imageMinorVersion"
} elseif (Test-IsWin22) {
$imageLabel = "windows-2022"
$softwareUrl = "${githubUrl}/win22/$imageMajorVersion.$imageMinorVersion/images/windows/Windows2022-Readme.md"
@@ -65,7 +65,13 @@ $cmdlineToolsArchPath = Invoke-DownloadWithRetry $cmdlineToolsUrl
Test-FileChecksum $cmdlineToolsArchPath -ExpectedSHA256Sum $androidToolset.hash
Expand-7ZipArchive -Path $cmdlineToolsArchPath -DestinationPath "${SDKInstallRoot}\cmdline-tools"
$cmdlineToolsPath = Join-Path -Path $SDKInstallRoot -ChildPath "cmdline-tools"
if (Test-Path "$cmdlineToolsPath\latest") {
Write-Host "Removing previous cmdline-tools installation from Visual Studio workload"
Remove-Item "$cmdlineToolsPath\latest" -Recurse -Force
}
Expand-7ZipArchive -Path $cmdlineToolsArchPath -DestinationPath $cmdlineToolsPath
# cmdline tools should be installed in ${SDKInstallRoot}\cmdline-tools\latest\bin, but archive contains ${SDKInstallRoot}\cmdline-tools\bin
# we need to create the proper folder structure
@@ -9,7 +9,7 @@ Install-VisualStudio `
-Version $vsToolset.subversion `
-Edition $vsToolset.edition `
-Channel $vsToolset.channel `
-InstallChannel $vsToolset.installChannel `
-InstallChannelUri $vsToolset.installChannelUri `
-RequiredComponents $vsToolset.workloads `
-ExtraArgs "--allWorkloads --includeRecommended --remove Component.CPython3.x64"
@@ -14,9 +14,9 @@ Function Install-VisualStudio {
.PARAMETER Channel
The channel of Visual Studio that will be installed. Required parameter.
.PARAMETER InstallChannel
The InstallChannelUri of Visual Studio that will be installed. Required parameter.
.PARAMETER InstallChannelUri
The InstallChannelUri of Visual Studio that will be installed. Optional parameter.
.PARAMETER RequiredComponents
The list of required components. Required parameter.
@@ -30,17 +30,24 @@ Function Install-VisualStudio {
[Parameter(Mandatory)] [String] $Version,
[Parameter(Mandatory)] [String] $Edition,
[Parameter(Mandatory)] [String] $Channel,
[String] $InstallChannel = "",
[String] $InstallChannelUri = "",
[Parameter(Mandatory)] [String[]] $RequiredComponents,
[String] $ExtraArgs = ""
)
$bootstrapperUrl = "https://aka.ms/vs/${Version}/postGRO-${Channel}/vs_${Edition}.exe"
if (-not $env:INSTALL_VS_2026) {
$bootstrapperUrl = "https://aka.ms/vs/${Version}/postGRO-${Channel}/vs_${Edition}.exe"
} else {
$bootstrapperUrl = "https://aka.ms/vs/${Version}/${Channel}/vs_${Edition}.exe"
}
$channelUri = "https://aka.ms/vs/${Version}/${Channel}/channel"
$channelId = "VisualStudio.${Version}.Release"
$productId = "Microsoft.VisualStudio.Product.${Edition}"
$installChannelUri = "https://aka.ms/vs/${Version}/${Channel}/${installchannel}/channel"
if (-not [string]::IsNullOrEmpty($InstallChannelUri)) {
$installChannelUri = $InstallChannelUri
} else {
$installChannelUri = $channelUri
}
Write-Host "Downloading Bootstrapper ..."
$bootstrapperFilePath = Invoke-DownloadWithRetry $BootstrapperUrl
@@ -51,11 +58,11 @@ Function Install-VisualStudio {
try {
$responseData = @{
"installChannelUri" = $installChannelUri
"channelUri" = $channelUri
"channelId" = $channelId
"productId" = $productId
"arch" = "x64"
"add" = $RequiredComponents | ForEach-Object { "$_;includeRecommended" }
"channelUri" = $channelUri
"channelId" = $channelId
"productId" = $productId
"arch" = "x64"
"add" = $RequiredComponents | ForEach-Object { "$_;includeRecommended" }
}
# Create json file with response data
@@ -0,0 +1,270 @@
build {
sources = ["source.azure-arm.image"]
name = "windows-2025-vs2026"
provisioner "powershell" {
inline = [
"New-Item -Path ${var.image_folder} -ItemType Directory -Force",
"New-Item -Path ${var.temp_dir} -ItemType Directory -Force"
]
}
provisioner "file" {
destination = "${var.image_folder}\\"
sources = [
"${path.root}/../assets",
"${path.root}/../scripts",
"${path.root}/../toolsets"
]
}
provisioner "file" {
destination = "${var.image_folder}\\scripts\\docs-gen\\"
source = "${path.root}/../../../helpers/software-report-base"
}
provisioner "powershell" {
inline = [
"Move-Item '${var.image_folder}\\assets\\post-gen' 'C:\\post-generation'",
"Remove-Item -Recurse '${var.image_folder}\\assets'",
"Move-Item '${var.image_folder}\\scripts\\docs-gen' '${var.image_folder}\\SoftwareReport'",
"Move-Item '${var.image_folder}\\scripts\\helpers' '${var.helper_script_folder}\\ImageHelpers'",
"New-Item -Type Directory -Path '${var.helper_script_folder}\\TestsHelpers\\'",
"Move-Item '${var.image_folder}\\scripts\\tests\\Helpers.psm1' '${var.helper_script_folder}\\TestsHelpers\\TestsHelpers.psm1'",
"Move-Item '${var.image_folder}\\scripts\\tests' '${var.image_folder}\\tests'",
"Remove-Item -Recurse '${var.image_folder}\\scripts'",
"Move-Item '${var.image_folder}\\toolsets\\toolset-2025-vs2026.json' '${var.image_folder}\\toolset.json'",
"Remove-Item -Recurse '${var.image_folder}\\toolsets'"
]
}
provisioner "windows-shell" {
inline = [
"net user ${var.install_user} ${var.install_password} /add /passwordchg:no /passwordreq:yes /active:yes /Y",
"net localgroup Administrators ${var.install_user} /add",
"winrm set winrm/config/service/auth @{Basic=\"true\"}",
"winrm get winrm/config/service/auth"
]
}
provisioner "powershell" {
inline = ["if (-not ((net localgroup Administrators) -contains '${var.install_user}')) { exit 1 }"]
}
provisioner "powershell" {
elevated_password = "${var.install_password}"
elevated_user = "${var.install_user}"
inline = ["bcdedit.exe /set TESTSIGNING ON"]
}
provisioner "powershell" {
environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGE_OS=${var.image_os}", "AGENT_TOOLSDIRECTORY=${var.agent_tools_directory}", "IMAGEDATA_FILE=${var.imagedata_file}", "IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}", "INSTALL_VS_2026=true"]
execution_policy = "unrestricted"
scripts = [
"${path.root}/../scripts/build/Configure-WindowsDefender.ps1",
"${path.root}/../scripts/build/Configure-PowerShell.ps1",
"${path.root}/../scripts/build/Install-PowerShellModules.ps1",
"${path.root}/../scripts/build/Install-WSL2.ps1",
"${path.root}/../scripts/build/Install-WindowsFeatures.ps1",
"${path.root}/../scripts/build/Install-Chocolatey.ps1",
"${path.root}/../scripts/build/Configure-BaseImage.ps1",
"${path.root}/../scripts/build/Configure-ImageDataFile.ps1",
"${path.root}/../scripts/build/Configure-SystemEnvironment.ps1",
"${path.root}/../scripts/build/Configure-DotnetSecureChannel.ps1"
]
}
provisioner "windows-restart" {
check_registry = true
restart_check_command = "powershell -command \"& {while ( (Get-WindowsOptionalFeature -Online -FeatureName Containers -ErrorAction SilentlyContinue).State -ne 'Enabled' ) { Start-Sleep 30; Write-Output 'InProgress' }}\""
restart_timeout = "10m"
}
provisioner "powershell" {
inline = ["Set-Service -Name wlansvc -StartupType Manual", "if ($(Get-Service -Name wlansvc).Status -eq 'Running') { Stop-Service -Name wlansvc}"]
}
provisioner "powershell" {
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = [
"${path.root}/../scripts/build/Install-Docker.ps1",
"${path.root}/../scripts/build/Install-DockerWinCred.ps1",
"${path.root}/../scripts/build/Install-DockerCompose.ps1",
"${path.root}/../scripts/build/Install-PowershellCore.ps1",
"${path.root}/../scripts/build/Install-WebPlatformInstaller.ps1"
]
}
provisioner "windows-restart" {
restart_timeout = "30m"
}
provisioner "powershell" {
elevated_password = "${var.install_password}"
elevated_user = "${var.install_user}"
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}", "INSTALL_VS_2026=true"]
scripts = [
"${path.root}/../scripts/build/Install-VisualStudio.ps1",
"${path.root}/../scripts/build/Install-KubernetesTools.ps1"
]
valid_exit_codes = [0, 3010]
}
provisioner "windows-restart" {
check_registry = true
restart_timeout = "10m"
}
provisioner "powershell" {
pause_before = "2m0s"
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = [
"${path.root}/../scripts/build/Install-Wix.ps1",
"${path.root}/../scripts/build/Install-VSExtensions.ps1",
"${path.root}/../scripts/build/Install-AzureCli.ps1",
"${path.root}/../scripts/build/Install-AzureDevOpsCli.ps1",
"${path.root}/../scripts/build/Install-ChocolateyPackages.ps1",
"${path.root}/../scripts/build/Install-JavaTools.ps1",
"${path.root}/../scripts/build/Install-Kotlin.ps1",
"${path.root}/../scripts/build/Install-OpenSSL.ps1"
]
}
provisioner "powershell" {
execution_policy = "remotesigned"
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = ["${path.root}/../scripts/build/Install-ServiceFabricSDK.ps1"]
}
provisioner "windows-restart" {
restart_timeout = "10m"
}
provisioner "powershell" {
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = [
"${path.root}/../scripts/build/Install-ActionsCache.ps1",
"${path.root}/../scripts/build/Install-Ruby.ps1",
"${path.root}/../scripts/build/Install-PyPy.ps1",
"${path.root}/../scripts/build/Install-Toolset.ps1",
"${path.root}/../scripts/build/Configure-Toolset.ps1",
"${path.root}/../scripts/build/Install-NodeJS.ps1",
"${path.root}/../scripts/build/Install-AndroidSDK.ps1",
"${path.root}/../scripts/build/Install-PowershellAzModules.ps1",
"${path.root}/../scripts/build/Install-Pipx.ps1",
"${path.root}/../scripts/build/Install-Git.ps1",
"${path.root}/../scripts/build/Install-GitHub-CLI.ps1",
"${path.root}/../scripts/build/Install-PHP.ps1",
"${path.root}/../scripts/build/Install-Rust.ps1",
"${path.root}/../scripts/build/Install-Sbt.ps1",
"${path.root}/../scripts/build/Install-Chrome.ps1",
"${path.root}/../scripts/build/Install-EdgeDriver.ps1",
"${path.root}/../scripts/build/Install-Firefox.ps1",
"${path.root}/../scripts/build/Install-Selenium.ps1",
"${path.root}/../scripts/build/Install-IEWebDriver.ps1",
"${path.root}/../scripts/build/Install-Apache.ps1",
"${path.root}/../scripts/build/Install-Nginx.ps1",
"${path.root}/../scripts/build/Install-Msys2.ps1",
"${path.root}/../scripts/build/Install-WinAppDriver.ps1",
"${path.root}/../scripts/build/Install-R.ps1",
"${path.root}/../scripts/build/Install-AWSTools.ps1",
"${path.root}/../scripts/build/Install-DACFx.ps1",
"${path.root}/../scripts/build/Install-MysqlCli.ps1",
"${path.root}/../scripts/build/Install-SQLPowerShellTools.ps1",
"${path.root}/../scripts/build/Install-SQLOLEDBDriver.ps1",
"${path.root}/../scripts/build/Install-DotnetSDK.ps1",
"${path.root}/../scripts/build/Install-Mingw64.ps1",
"${path.root}/../scripts/build/Install-Haskell.ps1",
"${path.root}/../scripts/build/Install-Stack.ps1",
"${path.root}/../scripts/build/Install-Miniconda.ps1",
"${path.root}/../scripts/build/Install-AzureCosmosDbEmulator.ps1",
"${path.root}/../scripts/build/Install-Zstd.ps1",
"${path.root}/../scripts/build/Install-Vcpkg.ps1",
"${path.root}/../scripts/build/Install-Bazel.ps1",
"${path.root}/../scripts/build/Install-RootCA.ps1",
"${path.root}/../scripts/build/Install-MongoDB.ps1",
"${path.root}/../scripts/build/Install-CodeQLBundle.ps1",
"${path.root}/../scripts/build/Configure-Diagnostics.ps1"
]
}
provisioner "powershell" {
elevated_password = "${var.install_password}"
elevated_user = "${var.install_user}"
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = [
"${path.root}/../scripts/build/Install-PostgreSQL.ps1",
"${path.root}/../scripts/build/Install-WindowsUpdates.ps1",
"${path.root}/../scripts/build/Configure-DynamicPort.ps1",
"${path.root}/../scripts/build/Configure-GDIProcessHandleQuota.ps1",
"${path.root}/../scripts/build/Configure-Shell.ps1",
"${path.root}/../scripts/build/Configure-DeveloperMode.ps1",
"${path.root}/../scripts/build/Install-LLVM.ps1"
]
}
provisioner "windows-restart" {
check_registry = true
restart_check_command = "powershell -command \"& {if ((-not (Get-Process TiWorker.exe -ErrorAction SilentlyContinue)) -and (-not [System.Environment]::HasShutdownStarted) ) { Write-Output 'Restart complete' }}\""
restart_timeout = "30m"
}
provisioner "powershell" {
pause_before = "2m0s"
environment_vars = ["IMAGE_FOLDER=${var.image_folder}", "TEMP_DIR=${var.temp_dir}"]
scripts = [
"${path.root}/../scripts/build/Install-WindowsUpdatesAfterReboot.ps1",
"${path.root}/../scripts/build/Invoke-Cleanup.ps1",
"${path.root}/../scripts/tests/RunAll-Tests.ps1"
]
}
provisioner "powershell" {
inline = ["if (-not (Test-Path ${var.image_folder}\\tests\\testResults.xml)) { throw '${var.image_folder}\\tests\\testResults.xml not found' }"]
}
provisioner "powershell" {
environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGE_FOLDER=${var.image_folder}"]
inline = ["pwsh -File '${var.image_folder}\\SoftwareReport\\Generate-SoftwareReport.ps1'"]
}
provisioner "powershell" {
inline = ["if (-not (Test-Path C:\\software-report.md)) { throw 'C:\\software-report.md not found' }", "if (-not (Test-Path C:\\software-report.json)) { throw 'C:\\software-report.json not found' }"]
}
provisioner "file" {
destination = "${path.root}/../Windows2025-VS2026-Readme.md"
direction = "download"
source = "C:\\software-report.md"
}
provisioner "file" {
destination = "${path.root}/../software-report.json"
direction = "download"
source = "C:\\software-report.json"
}
provisioner "powershell" {
environment_vars = ["INSTALL_USER=${var.install_user}"]
scripts = [
"${path.root}/../scripts/build/Install-NativeImages.ps1",
"${path.root}/../scripts/build/Configure-System.ps1",
"${path.root}/../scripts/build/Configure-User.ps1",
"${path.root}/../scripts/build/Post-Build-Validation.ps1"
]
skip_clean = true
}
provisioner "windows-restart" {
restart_timeout = "10m"
}
provisioner "powershell" {
inline = [
"if( Test-Path $env:SystemRoot\\System32\\Sysprep\\unattend.xml ){ rm $env:SystemRoot\\System32\\Sysprep\\unattend.xml -Force}",
"& $env:SystemRoot\\System32\\Sysprep\\Sysprep.exe /oobe /generalize /mode:vm /quiet /quit",
"while($true) { $imageState = Get-ItemProperty HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State | Select ImageState; if($imageState.ImageState -ne 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { Write-Output $imageState.ImageState; Start-Sleep -s 10 } else { break } }"
]
}
}
@@ -51,7 +51,7 @@ build {
inline = ["if (-not ((net localgroup Administrators) -contains '${var.install_user}')) { exit 1 }"]
}
provisioner "powershell" {
provisioner "powershell" {
elevated_password = "${var.install_password}"
elevated_user = "${var.install_user}"
inline = ["bcdedit.exe /set TESTSIGNING ON"]
@@ -7,6 +7,10 @@ locals {
"win25" = {
source_image_marketplace_sku = "MicrosoftWindowsServer:WindowsServer:2025-Datacenter-g2"
os_disk_size_gb = 150
},
"win25-vs2026" = {
source_image_marketplace_sku = "MicrosoftWindowsServer:WindowsServer:2025-Datacenter-g2"
os_disk_size_gb = 150
}
}
+1 -1
View File
@@ -147,7 +147,7 @@
"subversion" : "17",
"edition" : "Enterprise",
"channel": "release",
"installChannel": "",
"installChannelUri": "",
"workloads": [
"Component.Dotfuscator",
"Component.Linux.CMake",
@@ -0,0 +1,315 @@
{
"toolcache": [
{
"name": "Ruby",
"arch": "x64",
"platform" : "win32",
"versions": [
"3.2",
"3.3",
"3.4",
"4.0"
],
"default": "3.3"
},
{
"name": "Python",
"url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"3.10.*",
"3.11.*",
"3.12.*",
"3.13.*",
"3.14.*"
],
"default": "3.12.*"
},
{
"name": "PyPy",
"arch": "x86",
"platform" : "win64",
"versions": [
"3.9",
"3.10"
]
},
{
"name": "node",
"url" : "https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"20.*",
"22.*",
"24.*"
]
},
{
"name": "go",
"url" : "https://raw.githubusercontent.com/actions/go-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"1.22.*",
"1.23.*",
"1.24.*",
"1.25.*"
],
"default": "1.24.*"
}
],
"powershellModules": [
{ "name": "DockerMsftProvider" },
{ "name": "MarkdownPS" },
{ "name": "Pester" },
{ "name": "PowerShellGet" },
{ "name": "PSScriptAnalyzer" },
{ "name": "PSWindowsUpdate" },
{ "name": "SqlServer", "versions": [ "22.3.0" ] },
{ "name": "VSSetup" },
{ "name": "Microsoft.Graph" },
{"name": "AWSPowershell"}
],
"azureModules": [
{
"name": "az",
"versions": [
"14.6.0"
]
}
],
"java": {
"default": "17",
"versions": [ "8", "11", "17", "21", "25"]
},
"android": {
"commandline_tools_url": "https://dl.google.com/android/repository/commandlinetools-win-13114758_latest.zip",
"hash": "98B565CB657B012DAE6794CEFC0F66AE1EFB4690C699B78A614B4A6A3505B003",
"platform_min_version": "34",
"build_tools_min_version": "34.0.0",
"extras": [
"android;m2repository",
"google;m2repository",
"google;google_play_services"
],
"addons": [],
"additional_tools": [
"cmake;3.30.5",
"cmake;3.31.5",
"cmake;4.1.2"
],
"ndk": {
"default": "27",
"versions": [
"27", "28", "29"
]
}
},
"mingw": {
"version": "15.*",
"runtime": "ucrt"
},
"MsysPackages": {
"msys2": [],
"mingw": []
},
"windowsFeatures": [
{ "name": "Containers" },
{ "name": "Microsoft-Windows-Subsystem-Linux", "optionalFeature": true },
{ "name": "VirtualMachinePlatform", "optionalFeature": true },
{ "name": "NET-Framework-45-Features", "includeAllSubFeatures": true },
{ "name": "Client-ProjFS", "optionalFeature": true },
{ "name": "NET-Framework-Features", "includeAllSubFeatures": true },
{ "name": "Hyper-V", "includeAllSubFeatures": true },
{ "name": "HypervisorPlatform", "optionalFeature": true },
{ "name": "Hyper-V-PowerShell" },
{ "name": "Wireless-Networking" }
],
"visualStudio": {
"version" : "2026",
"subversion" : "18",
"edition" : "Enterprise",
"channel": "stable",
"installChannelUri": "",
"workloads": [
"Component.Linux.CMake",
"Component.UnityEngine.x64",
"Microsoft.Component.VC.Runtime.UCRTSDK",
"Microsoft.Net.Component.4.8.1.SDK",
"Microsoft.Net.Component.4.8.1.TargetingPack",
"Microsoft.VisualStudio.Component.AspNet45",
"Microsoft.VisualStudio.Component.Debugger.JustInTime",
"Microsoft.VisualStudio.Component.EntityFramework",
"Microsoft.VisualStudio.Component.DslTools",
"Microsoft.VisualStudio.Component.LinqToSql",
"Microsoft.VisualStudio.Component.SQL.SSDT",
"Microsoft.VisualStudio.Component.Sharepoint.Tools",
"Microsoft.VisualStudio.Component.PortableLibrary",
"Microsoft.VisualStudio.Component.TeamOffice",
"Microsoft.VisualStudio.Component.UWP.VC.ARM64",
"Microsoft.VisualStudio.Component.UWP.VC.ARM64EC",
"Microsoft.VisualStudio.Component.VC.CLI.Support",
"Microsoft.VisualStudio.Component.VC.CMake.Project",
"Microsoft.VisualStudio.Component.VC.DiagnosticTools",
"Microsoft.VisualStudio.Component.VC.Llvm.Clang",
"Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset",
"Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest",
"Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64EC",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
"Microsoft.VisualStudio.Component.VC.Redist.MSM",
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM64EC.Spectre",
"Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre",
"Microsoft.VisualStudio.Component.VC.MFC.ARM64",
"Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.ATLMFC",
"Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre",
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.ATL.Spectre",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.ASAN",
"Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64",
"Microsoft.VisualStudio.Component.Windows11SDK.26100",
"Microsoft.VisualStudio.Component.Workflow",
"Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang",
"Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142",
"Microsoft.VisualStudio.ComponentGroup.Web.CloudTools",
"Microsoft.VisualStudio.Workload.Azure",
"Microsoft.VisualStudio.Workload.Data",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.ManagedGame",
"Microsoft.VisualStudio.Workload.NativeCrossPlat",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NativeGame",
"Microsoft.VisualStudio.Workload.NativeMobile",
"Microsoft.VisualStudio.Workload.NetCrossPlat",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.Workload.Node",
"Microsoft.VisualStudio.Workload.Office",
"Microsoft.VisualStudio.Workload.Python",
"Microsoft.VisualStudio.Workload.Universal",
"Microsoft.VisualStudio.Workload.VisualStudioExtension",
"Component.MDD.Linux",
"Component.Microsoft.Windows.DriverKit",
"wasm.tools",
"Microsoft.Component.MSBuild"
],
"vsix": [
"SSIS.MicrosoftDataToolsIntegrationServices",
"VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects",
"WixToolset.WixToolsetVisualStudio2022Extension",
"ProBITools.MicrosoftReportProjectsforVisualStudio2022",
"ProBITools.MicrosoftAnalysisServicesModelingProjects2022"
]
},
"docker": {
"images": [],
"components": {
"docker": "27.5.1",
"compose": "2.32.2"
}
},
"pipx": [
{
"package": "yamllint",
"cmd": "yamllint --version"
}
],
"selenium": {
"version": "4"
},
"npm": {
"global_packages": [
{ "name": "yarn", "test": "yarn --version" },
{ "name": "newman", "test": "newman --version" },
{ "name": "lerna", "test": "lerna --version" },
{ "name": "gulp-cli", "test": "gulp --version" },
{ "name": "grunt-cli", "test": "grunt --version" }
]
},
"serviceFabric": {
"runtime": {
"version": "10.1.2493.9590",
"checksum": "09C63A971BACDE338282C73B3C9174BED9AAD53E1D3A1B73D44515852C9C00CF"
},
"sdk": {
"version": "7.1.2493",
"checksum": "0CB1084156C75CF5075EA91ABA330CF10B58648B8E036C9C2F286805263C497F"
}
},
"dotnet": {
"versions": [
"8.0",
"9.0",
"10.0"
],
"tools": [
{ "name": "nbgv", "test": "nbgv --version", "getversion": "nbgv --version" }
],
"warmup": false
},
"choco": {
"common_packages": [
{ "name": "7zip.install" },
{ "name": "aria2" },
{ "name": "azcopy10" },
{ "name": "Bicep" },
{ "name": "innosetup" },
{ "name": "jq" },
{ "name": "NuGet.CommandLine" },
{ "name": "packer" },
{ "name": "pulumi" },
{ "name": "swig" },
{ "name": "vswhere" },
{
"name": "julia",
"args": [ "--ia", "/DIR=C:\\Julia" ]
},
{
"name": "cmake.install",
"args": [ "--installargs", "ADD_CMAKE_TO_PATH=\"System\"" ]
},
{
"name": "strawberryperl" ,
"args": [ "--version", "5.42.0.1" ]
},
{ "name": "imagemagick" },
{ "name": "ninja" }
]
},
"node": {
"default": "22.*"
},
"maven": {
"version": "3.9"
},
"mysql": {
"version": "8.0"
},
"mongodb": {
"version": "7.0"
},
"llvm": {
"version": "20"
},
"php": {
"version": "8.5"
},
"postgresql": {
"version": "17"
},
"kotlin": {
"version": "latest"
},
"openssl": {
"version": "3.*"
},
"pwsh": {
"version": "7.4"
}
}
+1 -1
View File
@@ -132,7 +132,7 @@
"subversion" : "17",
"edition" : "Enterprise",
"channel": "release",
"installChannel": "",
"installChannelUri": "",
"workloads": [
"Component.Dotfuscator",
"Component.Linux.CMake",