removed windows 2019 and ubuntu 20.04 files and reference

This commit is contained in:
Paulo Santos
2026-01-13 11:47:15 +00:00
committed by GitHub
parent 0d9f87fc06
commit 5cbcfec109
30 changed files with 39 additions and 1566 deletions

View File

@@ -44,7 +44,6 @@ body:
- label: macOS 15
- label: macOS 15 Arm64
- label: macOS 26 Arm64
- label: Windows Server 2019
- label: Windows Server 2022
- label: Windows Server 2025
- type: textarea

View File

@@ -27,7 +27,6 @@ body:
- label: macOS 15
- label: macOS 15 Arm64
- label: macOS 26 Arm64
- label: Windows Server 2019
- label: Windows Server 2022
- label: Windows Server 2025
- type: textarea

View File

@@ -65,7 +65,6 @@ body:
- label: macOS 15
- label: macOS 15 Arm64
- label: macOS 26 Arm64
- label: Windows Server 2019
- label: Windows Server 2022
- label: Windows Server 2025
- type: textarea

View File

@@ -1,20 +0,0 @@
name: Trigger Windows19 CI
run-name: Windows2019 - ${{ github.event.pull_request.title }}
on:
pull_request_target:
types: labeled
paths:
- 'images/windows/**'
defaults:
run:
shell: pwsh
jobs:
Windows_2019:
if: github.event.label.name == 'CI windows-all' || github.event.label.name == 'CI windows-2019'
uses: ./.github/workflows/trigger-ubuntu-win-build.yml
with:
image_type: 'windows2019'
secrets: inherit

View File

@@ -16,7 +16,6 @@ Please note that this project is released with a [Contributor Code of Conduct][c
- [Adding a new tool to an image](#adding-a-new-tool-to-an-image)
- [Code style guide](#code-style-guide)
## Submitting a pull request
1. [Fork][fork] and clone the repository.
@@ -41,18 +40,18 @@ Here are a few things you can do that will increase the likelihood of your pull
- For every new tool, add validation scripts and update the software report script to ensure that it is included in the documentation.
- If the tool is available on multiple platforms (macOS, Windows, Linux), make sure you include it on as many as possible.
- If installing multiple versions of the tool, consider putting the list of versions in the corresponding `toolset.json` file. This will help other customers configure their builds flexibly. See [toolset-windows-2019.json](images/windows/toolsets/toolset-2019.json) as an example.
- If installing multiple versions of the tool, consider putting the list of versions in the corresponding `toolset.json` file. This will help other customers configure their builds flexibly. See [toolset-windows-2022.json](images/windows/toolsets/toolset-2022.json) as an example.
- Use consistent naming across all files.
- Validation scripts should be simple and shouldn't change the image content.
### Windows
- Add a script that will install the tool and put the script in the `scripts/build` folder.
There are a bunch of helper functions that could simplify your code: `Install-ChocoPackage`, `Install-Binary`, `Install-VSIXFromFile`, `Install-VSIXFromUrl`, `Invoke-DownloadWithRetry`, `Test-IsWin19`, `Test-IsWin22` (find the full list of helpers in [ImageHelpers.psm1](images/windows/scripts/helpers/ImageHelpers.psm1)).
There are a bunch of helper functions that could simplify your code: `Install-ChocoPackage`, `Install-Binary`, `Install-VSIXFromFile`, `Install-VSIXFromUrl`, `Invoke-DownloadWithRetry`, `Test-IsWin22`, `Test-IsWin25` (find the full list of helpers in [ImageHelpers.psm1](images/windows/scripts/helpers/ImageHelpers.psm1)).
- Add a script that will validate the tool installation and put the script in the `scripts/tests` folder.
We use [Pester v5](https://github.com/pester/pester) for validation scripts. If the tests for the tool are complex enough, create a separate `*.Tests.ps1`. Otherwise, use `Tools.Tests.ps1` for simple tests.
Add `Invoke-PesterTests -TestFile <testFileName> [-TestName <describeName>]` at the end of the installation script to ensure that your tests will be run.
- Add changes to the software report generator `images/windows/scripts/docs-gen/Generate-SoftwareReport.ps1`. The software report generator is used to generate an image's README file, e.g. [Windows2019-Readme.md](images/windows/Windows2019-Readme.md) and uses [MarkdownPS](https://github.com/Sarafian/MarkdownPS).
- Add changes to the software report generator `images/windows/scripts/docs-gen/Generate-SoftwareReport.ps1`. The software report generator is used to generate an image's README file, e.g. [Windows2022-Readme.md](images/windows/Windows2022-Readme.md) and uses [MarkdownPS](https://github.com/Sarafian/MarkdownPS).
### Ubuntu

View File

@@ -30,7 +30,6 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
| macOS 14 Arm64 | `macos-14` or `macos-14-xlarge`| [macOS-14-arm64] |
| Windows Server 2025 | `windows-latest` or `windows-2025` | [windows-2025] |
| Windows Server 2022 | `windows-2022` | [windows-2022] |
| Windows Server 2019 [![Deprecated badge](https://img.shields.io/badge/-Deprecated-red)](https://github.com/actions/runner-images/issues/12045) | `windows-2019` | [windows-2019] |
### Label scheme
@@ -40,7 +39,6 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
[ubuntu-24.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md
[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-2019]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2019-Readme.md
[windows-2025]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-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
@@ -79,7 +77,6 @@ latest 2 versions of an OS.
GitHub Actions and Azure DevOps use the `-latest` YAML label (ex: `ubuntu-latest`, `windows-latest`, and `macos-latest`). These labels point towards the newest stable OS version available.
The `-latest` migration process is gradual and happens over 1-2 months in order to allow customers to adapt their workflows to the newest OS version. During this process, any workflow using the `-latest` label, may see changes in the OS version in their workflows or pipelines. To avoid unwanted migration, users can specify a specific OS version in the yaml file (ex: macos-14, windows-2022, ubuntu-22.04).
## Image Releases
@@ -172,8 +169,10 @@ In general, these are the guidelines we follow when deciding what to pre-install
<summary><b><i>What images are available for GitHub Actions and Azure DevOps?</b></i></summary>
The availability of images for GitHub Actions and Azure DevOps is the same. However, deprecation policies may differ. See documentation for more details:
- [GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources)
- [Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#software)
</details>
<details>

View File

@@ -98,7 +98,7 @@ Finally, run the `GenerateResourcesAndImage` function, setting the mandatory arg
- `ResourceGroupName` - the name of the resource group that will store the resulting artifact (e.g., "imagegen-test").
The resource group must already exist in your Azure subscription;
- `AzureLocation` - the location where resources will be created (e.g., "East US");
- `ImageType` - the type of image to build (valid options are "Windows2019", "Windows2022", "Windows2025", "Ubuntu2204", "Ubuntu2404").
- `ImageType` - the type of image to build (valid options are "Windows2022", "Windows2025", "Ubuntu2204", "Ubuntu2404").
This function automatically creates all required Azure resources and initiates the Packer image generation for the selected image type.

View File

@@ -1,7 +1,6 @@
$ErrorActionPreference = 'Stop'
enum ImageType {
Windows2019 = 1
Windows2022 = 2
Windows2025 = 3
Ubuntu2204 = 4
@@ -18,10 +17,6 @@ Function Get-PackerTemplate {
switch ($ImageType) {
# Note: Double Join-Path is required to support PowerShell 5.1
([ImageType]::Windows2019) {
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "build.windows-2019.pkr.hcl"
$imageOS = "win19"
}
([ImageType]::Windows2022) {
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "build.windows-2022.pkr.hcl"
$imageOS = "win22"
@@ -88,7 +83,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: Windows2019, Windows2022, Windows2025, Ubuntu2204, Ubuntu2404.
The type of image to generate. Valid values are: Windows2022, Windows2025, Ubuntu2204, Ubuntu2404.
.PARAMETER ManagedImageName
The name of the managed image to create. The default is "Runner-Image-{{ImageType}}".
.PARAMETER AzureLocation

View File

@@ -9,7 +9,7 @@ param(
[String] [Parameter (Mandatory=$true)] $TempResourceGroupName,
[String] [Parameter (Mandatory=$true)] $SubscriptionId,
[String] [Parameter (Mandatory=$true)] $TenantId,
[String] [Parameter (Mandatory=$true)] $ImageOS, # e.g. "ubuntu22", "ubuntu22" or "win19", "win22", "win25"
[String] [Parameter (Mandatory=$true)] $ImageOS, # e.g. "ubuntu22", "ubuntu24" or "win22", "win25"
[String] [Parameter (Mandatory=$false)] $UseAzureCliAuth = "false",
[String] [Parameter (Mandatory=$false)] $PluginVersion = "2.3.3",
[String] [Parameter (Mandatory=$false)] $VirtualNetworkName,

View File

@@ -1,550 +0,0 @@
| Announcements |
|-|
| [[Windows Server 2025] image will no longer have D:/ drive accessible to users from 2025-07-14](https://github.com/actions/runner-images/issues/12416) |
| [[Windows & Ubuntu] .NET 6 will be removed from the images on 2025-08-01.](https://github.com/actions/runner-images/issues/12241) |
***
# Windows Server 2019
- OS Version: 10.0.17763 Build 7558
- Image Version: 20250709.2.0
## Windows features
- Windows Subsystem for Linux (WSLv1): Enabled
## Installed Software
### Language and Runtime
- Bash 5.2.37(1)-release
- Go 1.24.4
- Julia 1.11.5
- Kotlin 2.1.10
- LLVM 18.1.8
- Node 18.20.8
- Perl 5.32.1
- PHP 8.4.8
- Python 3.9.13
- Ruby 3.3.8
### Package Management
- Chocolatey 2.4.3
- Composer 2.8.9
- Helm 3.18.3
- Miniconda 25.5.1 (pre-installed on the image but not added to PATH)
- NPM 10.8.2
- NuGet 6.14.0.116
- pip 25.1.1 (python 3.9)
- Pipx 1.7.1
- RubyGems 3.5.22
- Vcpkg (build from commit f33cc491c8)
- Yarn 1.22.22
#### Environment variables
| Name | Value |
| ----------------------- | ------------ |
| VCPKG_INSTALLATION_ROOT | C:\vcpkg |
| CONDA | C:\Miniconda |
### Project Management
- Ant 1.10.15
- Gradle 8.14
- Maven 3.9.10
- sbt 1.11.3
### Tools
- 7zip 25.00
- aria2 1.37.0
- azcopy 10.29.1
- Bazel 8.3.1
- Bazelisk 1.26.0
- Bicep 0.36.177
- Cabal 3.14.2.0
- CMake 3.31.6
- CodeQL Action Bundle 2.22.1
- Docker 27.5.1
- Docker Compose v2 2.32.2
- Docker-wincred 0.9.3
- ghc 9.12.2
- Git 2.50.1.windows.1
- Git LFS 3.7.0
- Google Cloud CLI 529.0.0
- ImageMagick 7.1.1-47
- InnoSetup 6.4.0
- jq 1.7.1
- Kind 0.29.0
- Kubectl 1.33.2
- Mercurial 5.0
- gcc 8.1.0
- gdb 8.1
- GNU Binutils 2.30
- Newman 6.2.1
- NSIS 3.10
- OpenSSL 1.1.1w
- Packer 1.12.0
- Parcel 2.15.4
- Pulumi 3.181.0
- R 4.4.2
- Service Fabric SDK 10.1.2493.9590
- Stack 3.7.1
- Subversion (SVN) 1.14.5
- Swig 4.1.1
- VSWhere 3.1.7
- WinAppDriver 1.2.2009.02003
- WiX Toolset 3.14.1.8722
- yamllint 1.37.1
- zstd 1.5.7
- Ninja 1.13.0
### CLI Tools
- Alibaba Cloud CLI 3.0.288
- AWS CLI 2.27.49
- AWS SAM CLI 1.142.1
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.75.0
- Azure DevOps CLI extension 1.0.2
- Cloud Foundry CLI 8.14.1
- GitHub CLI 2.75.0
### Rust Tools
- Cargo 1.88.0
- Rust 1.88.0
- Rustdoc 1.88.0
- Rustup 1.28.2
#### Packages
- bindgen 0.72.0
- cargo-audit 0.21.2
- cargo-outdated 0.17.0
- cbindgen 0.29.0
- Clippy 0.1.88
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 138.0.7204.101
- Chrome Driver 138.0.7204.94
- Microsoft Edge 138.0.3351.77
- Microsoft Edge Driver 138.0.3351.77
- Mozilla Firefox 140.0.4
- Gecko Driver 0.36.0
- IE Driver 4.14.0.0
- Selenium server 4.34.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.452+9 (default) | JAVA_HOME_8_X64 |
| 11.0.27+6 | JAVA_HOME_11_X64 |
| 17.0.15+6 | JAVA_HOME_17_X64 |
| 21.0.7+6.0 | JAVA_HOME_21_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.
```
### BizTalk Server
- BizTalk Server Project Build Component 3.13.832.0
### Cached Tools
#### Go
- 1.22.12
- 1.23.10
- 1.24.4
#### Node.js
- 18.20.8
- 20.19.3
- 22.17.0
#### Python
- 3.9.13
- 3.10.11
- 3.11.9
- 3.12.10
- 3.13.5
#### PyPy
- 2.7.18 [PyPy 7.3.20]
- 3.6.12 [PyPy 7.3.3]
- 3.7.13 [PyPy 7.3.9]
- 3.8.16 [PyPy 7.3.11]
- 3.9.19 [PyPy 7.3.16]
- 3.10.16 [PyPy 7.3.19]
#### Ruby
- 3.1.7
- 3.2.8
- 3.3.8
### Databases
#### PostgreSQL
| Property | Value |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| ServiceName | postgresql-x64-14 |
| Version | 14.18 |
| ServiceStatus | Stopped |
| ServiceStartType | Disabled |
| EnvironmentVariables | PGBIN=C:\Program Files\PostgreSQL\14\bin <br> PGDATA=C:\Program Files\PostgreSQL\14\data <br> PGROOT=C:\Program Files\PostgreSQL\14 |
| Path | C:\Program Files\PostgreSQL\14 |
| UserName | postgres |
| Password | root |
#### MongoDB
| Version | ServiceName | ServiceStatus | ServiceStartType |
| -------- | ----------- | ------------- | ---------------- |
| 5.0.31.0 | MongoDB | Stopped | Disabled |
### Database tools
- Azure CosmosDb Emulator 2.14.23.0
- DacFx 170.0.94.3
- MySQL 5.7.44.0
- SQL OLEDB Driver 18.7.4.0
- SQLPS 1.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.0 | C:\tools\nginx-1.29.0\conf\nginx.conf | nginx | Stopped | 80 |
### Visual Studio Enterprise 2019
| Name | Version | Path |
| ----------------------------- | ------------- | -------------------------------------------------------------- |
| Visual Studio Enterprise 2019 | 16.11.36227.6 | C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise |
#### Workloads, components and extensions
| Package | Version |
| ------------------------------------------------------------------------- | --------------- |
| Component.Android.NDK.R16B | 16.11.36217.26 |
| Component.Android.SDK25.Private | 16.0.28625.61 |
| Component.Android.SDK30 | 16.10.31205.252 |
| Component.Ant | 1.9.3.8 |
| Component.Dotfuscator | 16.10.31205.252 |
| Component.Linux.CMake | 16.2.29003.222 |
| Component.MDD.Android | 16.0.28517.75 |
| Component.MDD.Linux | 16.5.29515.121 |
| Component.MDD.Linux.GCC.arm | 16.5.29515.121 |
| Component.Microsoft.VisualStudio.LiveShare | 1.0.4441 |
| Component.Microsoft.VisualStudio.RazorExtension | 16.10.31205.252 |
| Component.Microsoft.VisualStudio.Tools.Applications | 16.0.31110.1 |
| Component.Microsoft.VisualStudio.Web.AzureFunctions | 16.10.31205.252 |
| Component.Microsoft.Web.LibraryManager | 16.10.31205.180 |
| Component.Microsoft.WebTools.BrowserLink.WebLivePreview | 0.7.22.39845 |
| Component.Microsoft.Windows.DriverKit | 10.0.21381.0 |
| Component.OpenJDK | 16.11.31827.77 |
| Component.UnityEngine.x64 | 16.10.31205.252 |
| Component.Unreal | 16.1.28810.153 |
| Component.Unreal.Android | 16.1.28810.153 |
| Component.VSInstallerProjects | 1.0.2 |
| Component.WixToolset.VisualStudioExtension.Dev16 | 1.0.0.22 |
| Component.WixToolset.VisualStudioExtension.Schemas3 | 1.0.0.22 |
| Component.Xamarin | 16.11.36101.21 |
| Microsoft.Component.Azure.DataLake.Tools | 16.10.31205.252 |
| Microsoft.Component.ClickOnce | 16.11.31603.221 |
| Microsoft.Component.MSBuild | 16.11.33214.272 |
| Microsoft.Component.NetFX.Native | 16.5.29515.121 |
| Microsoft.Component.PythonTools | 16.11.31314.313 |
| Microsoft.Component.PythonTools.Miniconda | 16.11.31314.313 |
| Microsoft.Component.PythonTools.Web | 16.10.31205.252 |
| Microsoft.Component.VC.Runtime.UCRTSDK | 16.0.28625.61 |
| Microsoft.ComponentGroup.Blend | 16.0.28315.86 |
| Microsoft.ComponentGroup.ClickOnce.Publish | 16.11.31603.221 |
| Microsoft.Net.Component.3.5.DeveloperTools | 16.0.28517.75 |
| Microsoft.Net.Component.4.5.1.TargetingPack | 16.11.31605.320 |
| Microsoft.Net.Component.4.5.2.TargetingPack | 16.0.28517.75 |
| Microsoft.Net.Component.4.5.TargetingPack | 16.11.31605.320 |
| Microsoft.Net.Component.4.6.1.TargetingPack | 16.0.28517.75 |
| Microsoft.Net.Component.4.6.2.TargetingPack | 16.0.28517.75 |
| Microsoft.Net.Component.4.6.TargetingPack | 16.0.28517.75 |
| Microsoft.Net.Component.4.7.1.TargetingPack | 16.10.31205.252 |
| Microsoft.Net.Component.4.7.2.SDK | 16.4.29409.204 |
| Microsoft.Net.Component.4.7.2.TargetingPack | 16.10.31205.252 |
| Microsoft.Net.Component.4.7.TargetingPack | 16.10.31205.252 |
| Microsoft.Net.Component.4.8.SDK | 16.4.29313.120 |
| Microsoft.Net.Component.4.TargetingPack | 16.11.31605.320 |
| Microsoft.Net.ComponentGroup.4.6.2.DeveloperTools | 16.3.29207.166 |
| Microsoft.Net.ComponentGroup.4.7.1.DeveloperTools | 16.3.29207.166 |
| Microsoft.Net.ComponentGroup.4.7.DeveloperTools | 16.3.29207.166 |
| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 16.3.29207.166 |
| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 16.0.28516.191 |
| Microsoft.NetCore.Component.DevelopmentTools | 16.11.33214.272 |
| Microsoft.NetCore.Component.Web | 16.11.33214.272 |
| Microsoft.VisualStudio.Component.AppInsights.Tools | 16.11.36128.20 |
| Microsoft.VisualStudio.Component.AspNet45 | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.Azure.AuthoringTools | 16.11.31827.77 |
| Microsoft.VisualStudio.Component.Azure.ClientLibs | 16.11.34829.67 |
| Microsoft.VisualStudio.Component.Azure.Compute.Emulator | 16.11.31827.77 |
| Microsoft.VisualStudio.Component.Azure.Kubernetes.Tools | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.Azure.Powershell | 16.5.29515.121 |
| Microsoft.VisualStudio.Component.Azure.ResourceManager.Tools | 16.4.29409.204 |
| Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools | 16.4.29313.120 |
| Microsoft.VisualStudio.Component.Azure.Storage.Emulator | 16.4.29313.120 |
| Microsoft.VisualStudio.Component.Azure.Waverton | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.Azure.Waverton.BuildTools | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.ClassDesigner | 16.0.28528.71 |
| Microsoft.VisualStudio.Component.CloudExplorer | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.CodeMap | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.Common.Azure.Tools | 16.11.36128.20 |
| Microsoft.VisualStudio.Component.CoreEditor | 16.1.28811.260 |
| Microsoft.VisualStudio.Component.Debugger.JustInTime | 16.0.28517.75 |
| Microsoft.VisualStudio.Component.Debugger.Snapshot | 16.5.29813.82 |
| Microsoft.VisualStudio.Component.Debugger.TimeTravel | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.DiagnosticTools | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.DockerTools | 16.11.33214.272 |
| Microsoft.VisualStudio.Component.DotNetModelBuilder | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.DslTools | 16.0.28315.86 |
| Microsoft.VisualStudio.Component.EntityFramework | 16.0.28315.86 |
| Microsoft.VisualStudio.Component.FSharp | 16.0.28315.86 |
| Microsoft.VisualStudio.Component.FSharp.Desktop | 16.0.28315.86 |
| Microsoft.VisualStudio.Component.FSharp.WebTemplates | 16.3.29207.166 |
| Microsoft.VisualStudio.Component.GraphDocument | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.Graphics | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.Graphics.Tools | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.IISExpress | 16.0.28315.86 |
| Microsoft.VisualStudio.Component.IntelliCode | 16.11.35122.84 |
| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 16.5.29515.121 |
| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 16.0.28517.75 |
| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 16.11.31404.150 |
| Microsoft.VisualStudio.Component.LinqToSql | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.LiveUnitTesting | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.ManagedDesktop.Core | 16.4.29318.151 |
| Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites | 16.11.33214.272 |
| Microsoft.VisualStudio.Component.Merq | 16.2.29012.281 |
| Microsoft.VisualStudio.Component.MonoDebugger | 16.0.28517.75 |
| Microsoft.VisualStudio.Component.MSODBC.SQL | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils | 16.0.28707.177 |
| Microsoft.VisualStudio.Component.Node.Tools | 16.5.29515.121 |
| Microsoft.VisualStudio.Component.NuGet | 16.1.28829.92 |
| Microsoft.VisualStudio.Component.NuGet.BuildTools | 16.1.28829.92 |
| Microsoft.VisualStudio.Component.PortableLibrary | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.Roslyn.Compiler | 16.0.28714.129 |
| Microsoft.VisualStudio.Component.Roslyn.LanguageServices | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.Sharepoint.Tools | 16.4.29409.204 |
| Microsoft.VisualStudio.Component.SQL.ADAL | 16.0.28517.75 |
| Microsoft.VisualStudio.Component.SQL.CLR | 16.0.28315.86 |
| Microsoft.VisualStudio.Component.SQL.DataSources | 16.0.28315.86 |
| Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.SQL.SSDT | 16.3.29207.166 |
| Microsoft.VisualStudio.Component.TeamOffice | 16.4.29409.204 |
| Microsoft.VisualStudio.Component.TestTools.CodedUITest | 16.0.28327.66 |
| Microsoft.VisualStudio.Component.TestTools.WebLoadTest | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.TextTemplating | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.TypeScript.4.3 | 16.0.31506.151 |
| Microsoft.VisualStudio.Component.Unity | 16.0.28315.86 |
| Microsoft.VisualStudio.Component.UWP.VC.ARM64 | 16.3.29207.166 |
| Microsoft.VisualStudio.Component.VC.14.25.x86.x64 | 16.11.32428.96 |
| Microsoft.VisualStudio.Component.VC.140 | 16.11.33801.447 |
| Microsoft.VisualStudio.Component.VC.ASAN | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.VC.ATL | 16.4.29313.120 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM | 16.4.29313.120 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre | 16.5.29721.120 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM64 | 16.4.29313.120 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre | 16.5.29515.121 |
| Microsoft.VisualStudio.Component.VC.ATL.Spectre | 16.5.29515.121 |
| Microsoft.VisualStudio.Component.VC.ATLMFC | 16.4.29313.120 |
| Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre | 16.5.29721.120 |
| Microsoft.VisualStudio.Component.VC.CLI.Support | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.VC.CMake.Project | 16.3.29103.31 |
| Microsoft.VisualStudio.Component.VC.CoreIde | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.VC.DiagnosticTools | 16.5.29515.121 |
| Microsoft.VisualStudio.Component.VC.Llvm.Clang | 16.11.31603.221 |
| Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset | 16.3.29207.166 |
| Microsoft.VisualStudio.Component.VC.MFC.ARM | 16.4.29313.120 |
| Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre | 16.5.29721.120 |
| Microsoft.VisualStudio.Component.VC.MFC.ARM64 | 16.4.29313.120 |
| Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre | 16.5.29721.120 |
| Microsoft.VisualStudio.Component.VC.Modules.x86.x64 | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.VC.Redist.14.Latest | 16.5.29515.121 |
| Microsoft.VisualStudio.Component.VC.Redist.MSM | 16.5.29515.121 |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest | 16.0.28517.75 |
| Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest | 16.0.28517.75 |
| Microsoft.VisualStudio.Component.VC.Tools.ARM | 16.11.32406.258 |
| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 16.11.32406.258 |
| Microsoft.VisualStudio.Component.VC.Tools.ARM64EC | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 16.11.32406.258 |
| Microsoft.VisualStudio.Component.VC.v141.ARM | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.VC.v141.ARM.Spectre | 16.5.29515.121 |
| Microsoft.VisualStudio.Component.VC.v141.ARM64 | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.VC.v141.ARM64.Spectre | 16.5.29515.121 |
| Microsoft.VisualStudio.Component.VC.v141.ATL | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.VC.v141.ATL.ARM | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.VC.v141.ATL.ARM.Spectre | 16.5.29721.120 |
| Microsoft.VisualStudio.Component.VC.v141.ATL.ARM64 | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.VC.v141.ATL.ARM64.Spectre | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.VC.v141.ATL.Spectre | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.VC.v141.MFC | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.VC.v141.MFC.ARM.Spectre | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.VC.v141.MFC.ARM64.Spectre | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.VC.v141.x86.x64 | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.VC.v141.x86.x64.Spectre | 16.5.29515.121 |
| Microsoft.VisualStudio.Component.VSSDK | 16.0.28315.86 |
| Microsoft.VisualStudio.Component.Wcf.Tooling | 16.0.28625.61 |
| Microsoft.VisualStudio.Component.Web | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.WebDeploy | 16.0.28517.75 |
| Microsoft.VisualStudio.Component.Windows10SDK | 16.4.29409.204 |
| Microsoft.VisualStudio.Component.Windows10SDK.16299 | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.Windows10SDK.17134 | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.Windows10SDK.17763 | 16.0.28517.75 |
| Microsoft.VisualStudio.Component.Windows10SDK.18362 | 16.1.28829.92 |
| Microsoft.VisualStudio.Component.Windows10SDK.19041 | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.Windows10SDK.20348 | 16.11.31603.221 |
| Microsoft.VisualStudio.Component.Windows11SDK.22000 | 16.11.31727.170 |
| Microsoft.VisualStudio.Component.WinXP | 16.10.31205.252 |
| Microsoft.VisualStudio.Component.Workflow | 16.0.28315.86 |
| Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native | 16.0.28621.142 |
| Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices | 16.10.31205.180 |
| Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites | 16.10.31303.231 |
| Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools | 16.0.28528.71 |
| Microsoft.VisualStudio.ComponentGroup.AzureFunctions | 16.10.31205.180 |
| Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging | 16.11.34827.16 |
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 16.2.29012.281 |
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 16.11.31603.221 |
| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 16.11.33214.272 |
| Microsoft.VisualStudio.ComponentGroup.UWP.Support | 16.11.33214.272 |
| Microsoft.VisualStudio.ComponentGroup.UWP.VC | 16.10.31205.180 |
| Microsoft.VisualStudio.ComponentGroup.UWP.VC.v141 | 16.1.28810.153 |
| Microsoft.VisualStudio.ComponentGroup.UWP.Xamarin | 16.10.31205.180 |
| Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites | 16.10.31205.180 |
| Microsoft.VisualStudio.ComponentGroup.Web | 16.10.31205.180 |
| Microsoft.VisualStudio.ComponentGroup.Web.Client | 16.10.31205.180 |
| Microsoft.VisualStudio.ComponentGroup.Web.CloudTools | 16.10.31205.180 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 16.11.32413.511 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake | 16.11.32413.511 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 16.11.32413.511 |
| Microsoft.VisualStudio.Workload.Azure | 16.11.35026.282 |
| Microsoft.VisualStudio.Workload.CoreEditor | 16.10.31205.180 |
| Microsoft.VisualStudio.Workload.Data | 16.0.28720.110 |
| Microsoft.VisualStudio.Workload.DataScience | 16.10.31205.180 |
| Microsoft.VisualStudio.Workload.ManagedDesktop | 16.11.33214.272 |
| Microsoft.VisualStudio.Workload.ManagedGame | 16.10.31205.180 |
| Microsoft.VisualStudio.Workload.NativeCrossPlat | 16.10.31205.180 |
| Microsoft.VisualStudio.Workload.NativeDesktop | 16.11.36128.20 |
| Microsoft.VisualStudio.Workload.NativeGame | 16.11.36128.20 |
| Microsoft.VisualStudio.Workload.NativeMobile | 16.10.31205.180 |
| Microsoft.VisualStudio.Workload.NetCoreTools | 16.11.33214.272 |
| Microsoft.VisualStudio.Workload.NetCrossPlat | 16.11.33214.272 |
| Microsoft.VisualStudio.Workload.NetWeb | 16.11.33214.272 |
| Microsoft.VisualStudio.Workload.Node | 16.10.31205.180 |
| Microsoft.VisualStudio.Workload.Office | 16.11.33214.272 |
| Microsoft.VisualStudio.Workload.Python | 16.11.33328.57 |
| Microsoft.VisualStudio.Workload.Universal | 16.11.36128.20 |
| Microsoft.VisualStudio.Workload.VisualStudioExtension | 16.10.31205.180 |
| ms-biztalk.BizTalk | 3.13.2.0 |
| ProBITools.MicrosoftAnalysisServicesModelingProjects | 2.9.18 |
| ProBITools.MicrosoftReportProjectsforVisualStudio | 2.6.11 |
| SSIS.SqlServerIntegrationServicesProjects | 4.6 |
| VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects | 1.0.2 |
| Windows Driver Kit | 10.1.22000.1 |
| Windows Driver Kit Visual Studio Extension | 10.0.21381.0 |
| Windows Software Development Kit | 10.1.22621.755 |
| WixToolset.WixToolsetVisualStudio2019Extension | 1.0.0.22 |
#### Microsoft Visual C++
| Name | Architecture | Version |
| -------------------------------------------- | ------------ | ----------- |
| Microsoft Visual C++ 2010 Redistributable | x64 | 10.0.40219 |
| Microsoft Visual C++ 2010 Redistributable | x86 | 10.0.40219 |
| Microsoft Visual C++ 2013 Additional Runtime | x64 | 12.0.40660 |
| Microsoft Visual C++ 2013 Minimum Runtime | x64 | 12.0.40660 |
| Microsoft Visual C++ 2013 Additional Runtime | x86 | 12.0.21005 |
| Microsoft Visual C++ 2013 Minimum Runtime | x86 | 12.0.21005 |
| Microsoft Visual C++ 2019 Debug Runtime | x64 | 14.29.30157 |
| Microsoft Visual C++ 2019 Debug Runtime | x86 | 14.29.30157 |
| Microsoft Visual C++ 2022 Additional Runtime | x64 | 14.44.35211 |
| Microsoft Visual C++ 2022 Minimum Runtime | x64 | 14.44.35211 |
| Microsoft Visual C++ 2022 Additional Runtime | x86 | 14.44.35211 |
| Microsoft Visual C++ 2022 Minimum Runtime | x86 | 14.44.35211 |
#### Installed Windows SDKs
- 10.0.14393.0
- 10.0.16299.0
- 10.0.17134.0
- 10.0.17763.0
- 10.0.18362.0
- 10.0.19041.0
- 10.0.20348.0
- 10.0.22000.0
- 10.0.22621.0
### .NET Core Tools
- .NET Core SDK: 6.0.136, 6.0.203, 6.0.321, 6.0.428, 8.0.118, 8.0.206, 8.0.315, 8.0.412, 9.0.108, 9.0.205, 9.0.302
- .NET Framework: 4.7.2, 4.8
- Microsoft.AspNetCore.App: 6.0.5, 6.0.26, 6.0.36, 8.0.6, 8.0.18, 9.0.6, 9.0.7
- Microsoft.NETCore.App: 6.0.5, 6.0.26, 6.0.36, 8.0.6, 8.0.18, 9.0.6, 9.0.7
- Microsoft.WindowsDesktop.App: 6.0.5, 6.0.26, 6.0.36, 8.0.6, 8.0.18, 9.0.6, 9.0.7
- nbgv 3.7.115+d31f50f4d1
### PowerShell Tools
- PowerShell 7.4.11
#### Powershell Modules
- Az: 12.5.0
- AWSPowershell: 5.0.9
- DockerMsftProvider: 1.0.0.8
- MarkdownPS: 1.10
- Microsoft.Graph: 2.29.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.2.0
- VSSetup: 2.2.16
### Android
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 8.0 |
| Android Emulator | 35.6.11 |
| Android SDK Build-tools | 36.0.0<br>35.0.0 35.0.1<br>34.0.0<br>33.0.0 33.0.1 33.0.2 33.0.3<br>32.0.0<br>31.0.0<br>30.0.2 |
| Android SDK Platforms | 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)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3)<br>android-32 (rev 1)<br>android-31 (rev 1)<br>android-30 (rev 3) |
| Android SDK Platform-Tools | 36.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.18.1<br>3.22.1<br>3.31.5 |
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264<br>27.2.12479018<br>28.2.13676358 |
#### Environment variables
| Name | Value |
| ----------------------- | ---------------------------------------- |
| ANDROID_HOME | C:\Android\android-sdk |
| ANDROID_NDK | C:\Android\android-sdk\ndk\27.2.12479018 |
| ANDROID_NDK_HOME | C:\Android\android-sdk\ndk\27.2.12479018 |
| ANDROID_NDK_LATEST_HOME | C:\Android\android-sdk\ndk\28.2.13676358 |
| ANDROID_NDK_ROOT | C:\Android\android-sdk\ndk\27.2.12479018 |
| ANDROID_SDK_ROOT | C:\Android\android-sdk |
### Cached Docker images
| Repository:Tag | Digest | Created |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ---------- |
| mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 | sha256:99a68b9a6c0a6be2578b83b2b0ee55e40436c3ff2e68445eaa335fadc5a780c7 | 2025-07-08 |
| mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019 | sha256:02eba2c4863b6d86e01bb4cfc0e54c1d711af3c9ddae946ea191fa082ba9729e | 2025-07-08 |
| mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019 | sha256:f2d95688a349c6d6fc1509ac8d41259e7cfcda6a7f10c14f9294cece8b1cc0dc | 2025-07-08 |
| mcr.microsoft.com/windows/nanoserver:1809 | sha256:c357ed591af7b24f2d4a12b1947da5e6ebe559d89f41471f6928902c7cda7206 | 2025-07-05 |
| mcr.microsoft.com/windows/servercore:ltsc2019 | sha256:2a7cfebaed9241227ad68b1fc7cb764867ea1c56624ece03f926eb8bdf0c998f | 2025-07-05 |

View File

@@ -23,12 +23,8 @@ if (Test-IsWin25) {
$imageLabel = "windows-2022"
$softwareUrl = "${githubUrl}/win22/$imageMajorVersion.$imageMinorVersion/images/windows/Windows2022-Readme.md"
$releaseUrl = "https://github.com/actions/runner-images/releases/tag/win22%2F$imageMajorVersion.$imageMinorVersion"
} elseif (Test-IsWin19) {
$imageLabel = "windows-2019"
$softwareUrl = "${githubUrl}/win19/$imageMajorVersion.$imageMinorVersion/images/windows/Windows2019-Readme.md"
$releaseUrl = "https://github.com/actions/runner-images/releases/tag/win19%2F$imageMajorVersion.$imageMinorVersion"
} else {
throw "Invalid platform version is found. Either Windows Server 2019, 2022 or 2025 are required"
throw "Invalid platform version is found. Either Windows Server 2022 or 2025 are required"
}
$json = @"

View File

@@ -3,39 +3,9 @@
## Desc: Install GNU tools for Windows
################################################################################
if (Test-IsWin19) {
# If Windows 2019, install version 8.1.0 form sourceforge
$baseUrl = "https://download.qt.io/development_releases/prebuilt"
$("mingw32", "mingw64") | ForEach-Object {
if ($_ -eq "mingw32") {
$url = "$baseUrl/mingw_32/i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z"
$sha256sum = 'adb84b70094c0225dd30187ff995e311d19424b1eb8f60934c60e4903297f946'
} elseif ($_ -eq "mingw64") {
$url = "$baseUrl/mingw_64/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z"
$sha256sum = '853970527b5de4a55ec8ca4d3fd732c00ae1c69974cc930c82604396d43e79f8'
} else {
throw "Unknown architecture $_"
}
$packagePath = Invoke-DownloadWithRetry $url
Test-FileChecksum -Path $packagePath -ExpectedSHA256Sum $sha256sum
Expand-7ZipArchive -Path $packagePath -DestinationPath "C:\"
# Make a copy of mingw-make.exe to make.exe, which is a more discoverable name
# and so the same command line can be used on Windows as on macOS and Linux
$path = "C:\$_\bin\mingw32-make.exe" | Get-Item
Copy-Item -Path $path -Destination (Join-Path $path.Directory 'make.exe')
}
Add-MachinePathItem "C:\mingw64\bin"
}
if (-not (Test-IsWin19)) {
# If Windows 2022 0r 2025 install version specified in the toolset
$version = (Get-ToolsetContent).mingw.version
$runtime = (Get-ToolsetContent).mingw.runtime
# Install version specified in the toolset
$version = (Get-ToolsetContent).mingw.version
$runtime = (Get-ToolsetContent).mingw.runtime
$("mingw32", "mingw64") | ForEach-Object {
if ($_ -eq "mingw32") {

View File

@@ -4,26 +4,14 @@
################################################################################
$vsToolset = (Get-ToolsetContent).visualStudio
if (Test-IsWin19) {
# Install Visual Studio for Windows 19
Install-VisualStudio `
-Version $vsToolset.subversion `
-Edition $vsToolset.edition `
-Channel $vsToolset.channel `
-RequiredComponents $vsToolset.workloads `
-ExtraArgs "--allWorkloads --includeRecommended --remove Component.CPython3.x64"
}
if ( (Test-IsWin22) -or (Test-IsWin25) ) {
# Install Visual Studio for Windows 22 and 25 with InstallChannel
Install-VisualStudio `
-Version $vsToolset.subversion `
-Edition $vsToolset.edition `
-Channel $vsToolset.channel `
-InstallChannel $vsToolset.installChannel `
-RequiredComponents $vsToolset.workloads `
-ExtraArgs "--allWorkloads --includeRecommended --remove Component.CPython3.x64"
}
# Install Visual Studio for Windows 22 and 25 with InstallChannel
Install-VisualStudio `
-Version $vsToolset.subversion `
-Edition $vsToolset.edition `
-Channel $vsToolset.channel `
-InstallChannel $vsToolset.installChannel `
-RequiredComponents $vsToolset.workloads `
-ExtraArgs "--allWorkloads --includeRecommended --remove Component.CPython3.x64"
# Find the version of VS installed for this instance
# Only supports a single instance
@@ -39,20 +27,6 @@ $vsInstallRoot = (Get-VisualStudioInstance).InstallationPath
$newContent = '{"Extensions":[{"Key":"1e906ff5-9da8-4091-a299-5c253c55fdc9","Value":{"ShouldAutoUpdate":false}},{"Key":"Microsoft.VisualStudio.Web.AzureFunctions","Value":{"ShouldAutoUpdate":false}}],"ShouldAutoUpdate":false,"ShouldCheckForUpdates":false}'
Set-Content -Path "$vsInstallRoot\Common7\IDE\Extensions\MachineState.json" -Value $newContent
if (Test-IsWin19) {
# Install Windows 10 SDK version 10.0.14393.795
Install-Binary -Type EXE `
-Url 'https://go.microsoft.com/fwlink/p/?LinkId=838916' `
-InstallArgs @("/q", "/norestart", "/ceip off", "/features OptionId.WindowsSoftwareDevelopmentKit") `
-ExpectedSubject 'CN=Microsoft Corporation, OU=MOPR, O=Microsoft Corporation, L=Redmond, S=Washington, C=US'
# Install Windows 11 SDK version 10.0.22621.0
Install-Binary -Type EXE `
-Url 'https://go.microsoft.com/fwlink/p/?linkid=2196241' `
-InstallArgs @("/q", "/norestart", "/ceip off", "/features OptionId.UWPManaged OptionId.UWPCPP OptionId.UWPLocalized OptionId.DesktopCPPx86 OptionId.DesktopCPPx64 OptionId.DesktopCPParm64") `
-ExpectedSubject $(Get-MicrosoftPublisher)
}
if (Test-IsWin22) {
# Install Windows 10 SDK version 10.0.17763
Install-Binary -Type EXE `
@@ -61,12 +35,10 @@ if (Test-IsWin22) {
-ExpectedSubject $(Get-MicrosoftPublisher)
}
if (-not (Test-IsWin19)) {
# Install Windows 11 SDK version 10.0.26100
Install-Binary -Type EXE `
-Url 'https://go.microsoft.com/fwlink/?linkid=2286561' `
-InstallArgs @("/q", "/norestart", "/ceip off", "/features OptionId.UWPManaged OptionId.UWPCPP OptionId.UWPLocalized OptionId.DesktopCPPx86 OptionId.DesktopCPPx64 OptionId.DesktopCPParm64") `
-ExpectedSubject $(Get-MicrosoftPublisher)
}
# Install Windows 11 SDK version 10.0.26100
Install-Binary -Type EXE `
-Url 'https://go.microsoft.com/fwlink/?linkid=2286561' `
-InstallArgs @("/q", "/norestart", "/ceip off", "/features OptionId.UWPManaged OptionId.UWPCPP OptionId.UWPLocalized OptionId.DesktopCPPx86 OptionId.DesktopCPPx64 OptionId.DesktopCPParm64") `
-ExpectedSubject $(Get-MicrosoftPublisher)
Invoke-PesterTests -TestFile "VisualStudio"

View File

@@ -4,20 +4,11 @@
################################################################################
# Requires Windows SDK with the same version number as the WDK
if (Test-IsWin19) {
# Install all features without showing the GUI using winsdksetup.exe
Install-Binary -Type EXE `
-Url 'https://go.microsoft.com/fwlink/?linkid=2173743' `
-InstallArgs @("/features", "+", "/quiet") `
-ExpectedSubject $(Get-MicrosoftPublisher)
$wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2166289"
$wdkExtensionPath = "C:\Program Files (x86)\Windows Kits\10\Vsix\VS2019\WDK.vsix"
} elseif (Test-IsWin22) {
if (Test-IsWin22) {
# SDK is available through Visual Studio
$wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2324617"
} else {
throw "Invalid version of Visual Studio is found. Either 2019 or 2022 are required"
throw "Invalid version of Visual Studio is found. Windows Server 2022 is required"
}
# Install all features without showing the GUI using wdksetup.exe
@@ -26,8 +17,4 @@ Install-Binary -Type EXE `
-InstallArgs @("/features", "+", "/quiet") `
-ExpectedSubject $(Get-MicrosoftPublisher)
if (Test-IsWin19){
# Need to install the VSIX to get the build targets when running VSBuild
Install-VSIXFromFile (Resolve-Path -Path $wdkExtensionPath)
}
Invoke-PesterTests -TestFile "WDK"

View File

@@ -79,9 +79,6 @@ $tools.AddToolVersion("Docker-wincred", $(Get-DockerWincredVersion))
$tools.AddToolVersion("ghc", $(Get-GHCVersion))
$tools.AddToolVersion("Git", $(Get-GitVersion))
$tools.AddToolVersion("Git LFS", $(Get-GitLFSVersion))
if (Test-IsWin19) {
$tools.AddToolVersion("Google Cloud CLI", $(Get-GoogleCloudCLIVersion))
}
$tools.AddToolVersion("ImageMagick", $(Get-ImageMagickVersion))
$tools.AddToolVersion("InnoSetup", $(Get-InnoSetupVersion))
$tools.AddToolVersion("jq", $(Get-JQVersion))
@@ -99,9 +96,6 @@ if (-not (Test-IsWin25)) {
}
$tools.AddToolVersion("OpenSSL", $(Get-OpenSSLVersion))
$tools.AddToolVersion("Packer", $(Get-PackerVersion))
if (Test-IsWin19) {
$tools.AddToolVersion("Parcel", $(Get-ParcelVersion))
}
$tools.AddToolVersion("Pulumi", $(Get-PulumiVersion))
$tools.AddToolVersion("R", $(Get-RVersion))
$tools.AddToolVersion("Service Fabric SDK", $(Get-ServiceFabricSDKVersion))
@@ -127,9 +121,6 @@ $cliTools.AddToolVersion("AWS SAM CLI", $(Get-AWSSAMVersion))
$cliTools.AddToolVersion("AWS Session Manager CLI", $(Get-AWSSessionManagerVersion))
$cliTools.AddToolVersion("Azure CLI", $(Get-AzureCLIVersion))
$cliTools.AddToolVersion("Azure DevOps CLI extension", $(Get-AzureDevopsExtVersion))
if (Test-IsWin19) {
$cliTools.AddToolVersion("Cloud Foundry CLI", $(Get-CloudFoundryVersion))
}
$cliTools.AddToolVersion("GitHub CLI", $(Get-GHVersion))
# Rust Tools
@@ -172,12 +163,6 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
'@
$msys2.AddHeader("Notes").AddNote($notes)
# BizTalk Server
if (Test-IsWin19)
{
$installedSoftware.AddHeader("BizTalk Server").AddNode($(Get-BizTalkVersion))
}
# Cached Tools
$installedSoftware.AddHeader("Cached Tools").AddNodes($(Build-CachedToolsSection))
@@ -215,12 +200,7 @@ $visualStudio.AddToolVersionsList("Installed Windows SDKs", $(Get-WindowsSDKs).V
# .NET Core Tools
$netCoreTools = $installedSoftware.AddHeader(".NET Core Tools")
if (Test-IsWin19) {
# Visual Studio 2019 brings own version of .NET Core which is different from latest official version
$netCoreTools.AddToolVersionsListInline(".NET Core SDK", $(Get-DotnetSdks).Versions, '^\d+\.\d+\.\d{2}')
} else {
$netCoreTools.AddToolVersionsListInline(".NET Core SDK", $(Get-DotnetSdks).Versions, '^\d+\.\d+\.\d{3}')
}
$netCoreTools.AddToolVersionsListInline(".NET Core SDK", $(Get-DotnetSdks).Versions, '^\d+\.\d+\.\d{3}')
$netCoreTools.AddToolVersionsListInline(".NET Framework", $(Get-DotnetFrameworkVersions), '^.+')
Get-DotnetRuntimes | ForEach-Object {
$netCoreTools.AddToolVersionsListInline($_.Runtime, $_.Versions, '^.+')

View File

@@ -25,7 +25,6 @@ Export-ModuleMember -Function @(
'Get-TCToolVersionPath'
'Test-IsWin25'
'Test-IsWin22'
'Test-IsWin19'
'Expand-7ZipArchive'
'Get-WindowsUpdateStates'
'Invoke-ScriptBlockWithRetry'

View File

@@ -356,24 +356,6 @@ function Test-IsWin22 {
(Get-CimInstance -ClassName Win32_OperatingSystem).Caption -match "2022"
}
function Test-IsWin19 {
<#
.SYNOPSIS
Checks if the current Windows operating system is Windows Server 2019.
.DESCRIPTION
This function uses the Get-CimInstance cmdlet to retrieve information
about the current Windows operating system. It then checks if the Caption
property of the Win32_OperatingSystem class contains the string "2019",
indicating that the operating system is Windows Server 2019.
.OUTPUTS
Returns $true if the current Windows operating system is Windows Server 2019.
Otherwise, returns $false.
#>
(Get-CimInstance -ClassName Win32_OperatingSystem).Caption -match "2019"
}
function Expand-7ZipArchive {
<#
.SYNOPSIS

View File

@@ -36,11 +36,7 @@ Function Install-VisualStudio {
)
if (-not (Test-IsWin19)) {
$bootstrapperUrl = "https://aka.ms/vs/${Version}/postGRO-${Channel}/vs_${Edition}.exe"
} else {
$bootstrapperUrl = "https://aka.ms/vs/${Version}/${Channel}/vs_${Edition}.exe"
}
$bootstrapperUrl = "https://aka.ms/vs/${Version}/postGRO-${Channel}/vs_${Edition}.exe"
$channelUri = "https://aka.ms/vs/${Version}/${Channel}/channel"
$channelId = "VisualStudio.${Version}.Release"
$productId = "Microsoft.VisualStudio.Product.${Edition}"

View File

@@ -49,16 +49,7 @@ Describe "Android SDK" {
It "Platform build tools <buildToolsVersion> is installed" -TestCases $buildToolsTestCases {
"$installedPackages" | Should -Match "$buildToolsVersion"
}
if (Test-IsWin19) {
It "Extra package <extraPackage> is installed" -TestCases $extraPackagesTestCases {
"$installedPackages" | Should -Match "extras;$extraPackage"
}
It "Addon package <addonPackage> is installed" -TestCases $addonsTestCases {
"$installedPackages" | Should -Match "add-ons;$addonPackage"
}
}
}
It "Additional tool <additionalToolVersion> is installed" -TestCases $additionalToolsTestCases {
"$installedPackages" | Should -Match $additionalToolVersion

View File

@@ -3,17 +3,4 @@
## Desc: Test BizTalk project build component installed.
################################################################################
Describe "BizTalk Build Component Setup" -Skip:(-not (Test-IsWin19)) {
It "BizTalk Registry Check" {
Test-Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\BizTalk Server\3.0" | Should -BeTrue
}
It "BizTalk Folder Check" {
"${env:ProgramFiles(x86)}\Microsoft BizTalk Server" | Should -Exist
}
It "BizTalk Build Targets files Check" {
"${env:ProgramFiles(x86)}\MSBuild\Microsoft\BizTalk\BizTalkC.targets" | Should -Exist
"${env:ProgramFiles(x86)}\MSBuild\Microsoft\BizTalk\BizTalkCommon.targets" | Should -Exist
}
}
# BizTalk is no longer supported on Windows Server 2022/2025

View File

@@ -38,13 +38,3 @@ Describe "GitHub CLI" {
"gh --version" | Should -ReturnZeroExitCode
}
}
Describe "CloudFoundry CLI" -Skip:(-not (Test-IsWin19)) {
It "cf is located in C:\cf-cli" {
"C:\cf-cli\cf.exe" | Should -Exist
}
It "cf" {
"cf --version" | Should -ReturnZeroExitCode
}
}

View File

@@ -22,12 +22,6 @@ Describe "Bicep" {
}
}
Describe "GitVersion" -Skip:(-not (Test-IsWin19)) {
It "gitversion is installed" {
"gitversion /version" | Should -ReturnZeroExitCode
}
}
Describe "InnoSetup" {
It "InnoSetup" {
(Get-Command -Name iscc).CommandType | Should -BeExactly "Application"

View File

@@ -16,13 +16,6 @@ Describe "MSYS2 packages" {
@{ ToolName = "bash.exe" }
)
if (Test-IsWin19) {
$TestCases += @(
@{ ToolName = "tar.exe" }
@{ ToolName = "make.exe" }
)
}
It "<ToolName> is installed in <msys2Dir>" -TestCases $TestCases {
(Get-Command "$ToolName").Source | Should -BeLike "$msys2Dir*"
}

View File

@@ -1,21 +1,13 @@
Describe "SSDTExtensions" {
#These extensions don't have any proper name in the state.packages.json file, only id is available, which can be found on extension marketplace download page
if (Test-isWin19) {
$testExtenions = @(
@{id = "04a86fc2-dbd5-4222-848e-911638e487fe"}
@{id = "851E7A09-7B2B-4F06-A15D-BABFCB26B970"}
@{id = "717ad572-c4b7-435c-c166-c2969777f718"}
)
$testExtenions = @(
@{id = "04a86fc2-dbd5-4222-848e-911638e487fe"}
@{id = "717ad572-c4b7-435c-c166-c2969777f718"}
)
It "Extensions id=<id>" -TestCases $testExtenions {
It "Extensions id=<id>" -TestCases $testExtenions {
$version = Get-VSExtensionVersion -packageName "${id}"
$version | Should -Not -BeNullOrEmpty
}
} else {
It "Extension SSDT" {
$version = Get-VSExtensionVersion -packageName "SSDT"
$version | Should -Not -BeNullOrEmpty
}
}
}

View File

@@ -54,17 +54,6 @@ Describe "DACFx" {
$sqlPackagePath = 'C:\Program Files\Microsoft SQL Server\170\DAC\bin\SqlPackage.exe'
"${sqlPackagePath}" | Should -Exist
}
It "SqlLocalDB" -Skip:(-not (Test-IsWin19)) {
$sqlLocalDBPath = 'C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe'
"${sqlLocalDBPath}" | Should -Exist
}
}
Describe "DotnetTLS" -Skip:(-not (Test-IsWin19)) {
It "Tls 1.2 is enabled" {
[Net.ServicePointManager]::SecurityProtocol -band "Tls12" | Should -Be Tls12
}
}
Describe "Mercurial" -Skip:(Test-IsWin25) {
@@ -101,16 +90,6 @@ Describe "Mingw64" {
}
}
Describe "GoogleCloudCLI" -Skip:(-not (Test-IsWin19)) {
It "<ToolName>" -TestCases @(
@{ ToolName = "bq" }
@{ ToolName = "gcloud" }
@{ ToolName = "gsutil" }
) {
"$ToolName version" | Should -ReturnZeroExitCode
}
}
Describe "NET48" {
It "NET48" {
Get-ChildItem -Path "${env:ProgramFiles(x86)}\Microsoft SDKs\Windows\*\*\NETFX 4.8 Tools" -Directory | Should -HaveCount 1
@@ -175,13 +154,6 @@ Describe "Vcpkg" {
}
}
Describe "VCRedist" -Skip:(-not (Test-IsWin19)) {
It "vcredist_2010_x64" {
"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1D8E6291-B0D5-35EC-8441-6616F567A0F7}" | Should -Exist
"C:\Windows\System32\msvcr100.dll" | Should -Exist
}
}
Describe "WebPlatformInstaller" {
It "WebPlatformInstaller" {
"WebPICMD" | Should -ReturnZeroExitCode

View File

@@ -25,19 +25,13 @@ Describe "Visual Studio" {
}
}
Describe "Windows 10 SDK" -Skip:((Test-IsWin19) -or (Test-IsWin25)) {
Describe "Windows 10 SDK" -Skip:(Test-IsWin25) {
It "Verifies 17763 SDK is installed" {
"${env:ProgramFiles(x86)}\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\10.0.17763.0\UAP.props" | Should -Exist
}
}
Describe "Windows 11 SDK" -Skip:(-not (Test-IsWin19)) {
It "Verifies 22621 SDK is installed" {
"${env:ProgramFiles(x86)}\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\10.0.22621.0\UAP.props" | Should -Exist
}
}
Describe "Windows 11 SDK" -Skip:(Test-IsWin19) {
Describe "Windows 11 SDK" {
It "Verifies 26100 SDK is installed" {
"${env:ProgramFiles(x86)}\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\10.0.26100.0\UAP.props" | Should -Exist
}

View File

@@ -84,7 +84,7 @@ Describe "Windows Updates" {
}
}
Describe "WSL2" -Skip:((Test-IsWin19) -or (Test-IsWin22)) {
Describe "WSL2" -Skip:(Test-IsWin22) {
It "WSL status should return zero exit code" {
"wsl --status" | Should -ReturnZeroExitCode
}

View File

@@ -1,283 +0,0 @@
build {
sources = ["source.azure-arm.image"]
name = "windows-2019"
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-2019.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" {
elevated_password = "${var.install_password}"
elevated_user = "${var.install_user}"
scripts = ["${path.root}/../scripts/build/Install-NET48.ps1"]
valid_exit_codes = [0, 3010]
}
provisioner "windows-restart" {
restart_timeout = "10m"
}
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}"]
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-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" {
restart_timeout = "30m"
}
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-VCRedist.ps1",
"${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",
"${path.root}/../scripts/build/Install-TortoiseSvn.ps1"
]
}
provisioner "windows-restart" {
restart_timeout = "10m"
}
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-VisualStudio.ps1",
"${path.root}/../scripts/build/Install-KubernetesTools.ps1",
"${path.root}/../scripts/build/Install-NET48-devpack.ps1"
]
valid_exit_codes = [0, 3010]
}
provisioner "powershell" {
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-WDK.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 "windows-shell" {
inline = ["wmic product where \"name like '%%microsoft azure powershell%%'\" call uninstall /nointeractive"]
}
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-Mercurial.ps1",
"${path.root}/../scripts/build/Install-Zstd.ps1",
"${path.root}/../scripts/build/Install-NSIS.ps1",
"${path.root}/../scripts/build/Install-CloudFoundryCli.ps1",
"${path.root}/../scripts/build/Install-Vcpkg.ps1",
"${path.root}/../scripts/build/Install-PostgreSQL.ps1",
"${path.root}/../scripts/build/Install-Bazel.ps1",
"${path.root}/../scripts/build/Install-AliyunCli.ps1",
"${path.root}/../scripts/build/Install-RootCA.ps1",
"${path.root}/../scripts/build/Install-MongoDB.ps1",
"${path.root}/../scripts/build/Install-GoogleCloudCLI.ps1",
"${path.root}/../scripts/build/Install-CodeQLBundle.ps1",
"${path.root}/../scripts/build/Install-BizTalkBuildComponent.ps1",
"${path.root}/../scripts/build/Configure-Diagnostics.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 "powershell" {
elevated_password = "${var.install_password}"
elevated_user = "${var.install_user}"
scripts = ["${path.root}/../scripts/build/Install-WindowsUpdates.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}/../Windows2019-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 /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 } }"
]
}
}

View File

@@ -1,9 +1,5 @@
locals {
image_properties_map = {
"win19" = {
source_image_marketplace_sku = "MicrosoftWindowsServer:WindowsServer:2019-Datacenter"
os_disk_size_gb = 256
},
"win22" = {
source_image_marketplace_sku = "MicrosoftWindowsServer:WindowsServer:2022-Datacenter-g2"
os_disk_size_gb = 256

View File

@@ -1,455 +0,0 @@
{
"toolcache": [
{
"name": "Ruby",
"arch": "x64",
"platform" : "win32",
"versions": [
"3.1",
"3.2",
"3.3"
],
"default": "3.3"
},
{
"name": "Python",
"url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"3.9.*",
"3.10.*",
"3.11.*",
"3.12.*",
"3.13.*",
"3.14.*"
],
"default": "3.9.*"
},
{
"name": "Python",
"url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json",
"arch": "x86",
"platform" : "win32",
"versions": [
"3.9.*",
"3.10.*",
"3.11.*",
"3.12.*",
"3.13.*"
]
},
{
"name": "PyPy",
"arch": "x86",
"platform" : "win64",
"versions": [
"2.7",
"3.6",
"3.7",
"3.8",
"3.9",
"3.10"
]
},
{
"name": "node",
"url" : "https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"18.*",
"20.*",
"22.*"
]
},
{
"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.2.0"]},
{"name": "VSSetup"},
{"name": "Microsoft.Graph"},
{"name": "AWSPowershell"}
],
"azureModules": [
{
"name": "az",
"versions": [
"12.5.0"
]
}
],
"java": {
"default": "8",
"versions": [ "8", "11", "17", "21"]
},
"android": {
"commandline_tools_url": "https://dl.google.com/android/repository/commandlinetools-win-9123335_latest.zip",
"hash": "8A90E6A3DEB2FA13229B2E335EFD07687DCC8A55A3C544DA9F40B41404993E7D",
"platform_min_version": "31",
"build_tools_min_version": "31.0.0",
"extras": [
"android;m2repository",
"google;m2repository",
"google;google_play_services"
],
"addons": [
"addon-google_apis-google-24",
"addon-google_apis-google-23",
"addon-google_apis-google-22",
"addon-google_apis-google-21"
],
"additional_tools": [
"cmake;3.18.1",
"cmake;3.22.1",
"cmake;3.31.5"
],
"ndk": {
"default": "27",
"versions": [
"26" , "27", "28"
]
}
},
"MsysPackages": {
"msys2": [
"base-devel",
"compression"
],
"mingw": [
{
"arch": "mingw-w64-x86_64",
"exec_dir": "mingw64",
"runtime_packages": [
{
"name": "clang",
"executables": [
"clang",
"g++",
"gcc"
]
},
{
"name": "cmake",
"executables": [
"cmake",
"cpack",
"ctest"
]
},
{
"name": "ragel",
"executables": [
"ragel"
]
}
],
"additional_packages": [
"clang-tools-extra",
"libxml2",
"llvm",
"toolchain"
]
},
{
"arch": "mingw-w64-i686",
"exec_dir": "mingw32",
"runtime_packages": [
{
"name": "clang",
"executables": [
"clang",
"g++",
"gcc"
]
},
{
"name": "cmake",
"executables": [
"cmake",
"cpack",
"ctest"
]
},
{
"name": "ragel",
"executables": [
"ragel"
]
}
],
"additional_packages": [
"libxml2",
"llvm",
"toolchain"
]
}
]
},
"windowsFeatures": [
{ "name": "NET-Framework-Features", "includeAllSubFeatures": true },
{ "name": "NET-Framework-45-Features", "includeAllSubFeatures": true },
{ "name": "FS-iSCSITarget-Server", "includeAllSubFeatures": true, "includeManagementTools": true },
{ "name": "Containers" },
{ "name": "Microsoft-Windows-Subsystem-Linux", "optionalFeature": true },
{ "name": "VirtualMachinePlatform", "optionalFeature": true },
{ "name": "Wireless-Networking" }
],
"visualStudio": {
"version" : "2019",
"subversion" : "16",
"edition" : "Enterprise",
"channel": "release",
"workloads": [
"Component.Dotfuscator",
"Component.Linux.CMake",
"Component.UnityEngine.x64",
"Component.Unreal.Android",
"Microsoft.Component.Azure.DataLake.Tools",
"Microsoft.Component.PythonTools.Miniconda",
"Microsoft.Component.PythonTools.Web",
"Microsoft.Component.VC.Runtime.UCRTSDK",
"Microsoft.Net.ComponentGroup.4.6.2.DeveloperTools",
"Microsoft.Net.ComponentGroup.4.7.1.DeveloperTools",
"Microsoft.Net.Component.4.7.2.SDK",
"Microsoft.Net.Component.4.7.2.TargetingPack",
"Microsoft.Net.ComponentGroup.4.7.DeveloperTools",
"Microsoft.VisualStudio.Component.AspNet45",
"Microsoft.VisualStudio.Component.Azure.Kubernetes.Tools",
"Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools",
"Microsoft.VisualStudio.Component.Debugger.JustInTime",
"Microsoft.VisualStudio.Component.DslTools",
"Microsoft.VisualStudio.Component.EntityFramework",
"Microsoft.VisualStudio.Component.FSharp.Desktop",
"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.TestTools.CodedUITest",
"Microsoft.VisualStudio.Component.TestTools.WebLoadTest",
"Microsoft.VisualStudio.Component.UWP.VC.ARM64",
"Microsoft.VisualStudio.Component.VC.140",
"Microsoft.VisualStudio.Component.VC.ATL.ARM",
"Microsoft.VisualStudio.Component.VC.ATLMFC",
"Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre",
"Microsoft.VisualStudio.Component.VC.CLI.Support",
"Microsoft.VisualStudio.Component.VC.CMake.Project",
"Microsoft.VisualStudio.Component.VC.DiagnosticTools",
"Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset",
"Microsoft.VisualStudio.Component.VC.MFC.ARM",
"Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre",
"Microsoft.VisualStudio.Component.VC.MFC.ARM64",
"Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.Modules.x86.x64",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64EC",
"Microsoft.VisualStudio.Component.VC.Redist.MSM",
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre",
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre",
"Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest",
"Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest",
"Microsoft.VisualStudio.Component.VC.v141.x86.x64",
"Microsoft.VisualStudio.Component.VC.v141.x86.x64.Spectre",
"Microsoft.VisualStudio.Component.VC.v141.ARM.Spectre",
"Microsoft.VisualStudio.Component.VC.v141.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.v141.ATL",
"Microsoft.VisualStudio.Component.VC.v141.ATL.ARM",
"Microsoft.VisualStudio.Component.VC.v141.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.v141.ATL.ARM.Spectre",
"Microsoft.VisualStudio.Component.VC.v141.ATL.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.v141.ATL.Spectre",
"Microsoft.VisualStudio.Component.VC.v141.MFC",
"Microsoft.VisualStudio.Component.VC.v141.MFC.ARM.Spectre",
"Microsoft.VisualStudio.Component.VC.v141.MFC.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre",
"Microsoft.VisualStudio.Component.VC.14.25.x86.x64",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Microsoft.VisualStudio.Component.WinXP",
"Microsoft.VisualStudio.Component.Workflow",
"Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices",
"Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools",
"Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang",
"Microsoft.VisualStudio.ComponentGroup.Web.CloudTools",
"Microsoft.VisualStudio.ComponentGroup.UWP.VC",
"Microsoft.VisualStudio.ComponentGroup.UWP.VC.v141",
"Microsoft.VisualStudio.Workload.Azure",
"Microsoft.VisualStudio.Workload.Data",
"Microsoft.VisualStudio.Workload.DataScience",
"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.NetCoreTools",
"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.MDD.Linux.GCC.arm"
],
"vsix": [
"ProBITools.MicrosoftReportProjectsforVisualStudio",
"VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects",
"ms-biztalk.BizTalk",
"WixToolset.WixToolsetVisualStudio2019Extension",
"ProBITools.MicrosoftAnalysisServicesModelingProjects",
"SSIS.SqlServerIntegrationServicesProjects"
]
},
"docker": {
"images": [
"mcr.microsoft.com/windows/servercore:ltsc2019",
"mcr.microsoft.com/windows/nanoserver:1809",
"mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019",
"mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019",
"mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019"
],
"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": "typescript", "test": "tsc --version" },
{ "name": "cordova" },
{ "name": "grunt-cli", "test": "grunt --version" },
{ "name": "gulp-cli", "test": "gulp --version" },
{ "name": "parcel", "test": "parcel --version"},
{ "name": "webpack" },
{ "name": "webpack-cli" },
{ "name": "node-sass" }
]
},
"serviceFabric": {
"runtime": {
"version": "10.1.2493.9590",
"checksum": "09C63A971BACDE338282C73B3C9174BED9AAD53E1D3A1B73D44515852C9C00CF"
},
"sdk": {
"version": "7.1.2493",
"checksum": "0CB1084156C75CF5075EA91ABA330CF10B58648B8E036C9C2F286805263C497F"
}
},
"dotnet": {
"versions": [
"6.0",
"8.0",
"9.0"
],
"tools": [
{ "name": "nbgv", "test": "nbgv --version", "getversion": "nbgv --version" }
],
"warmup": true
},
"choco": {
"common_packages": [
{ "name": "7zip.install" },
{ "name": "azcopy10" },
{ "name": "aria2" },
{ "name": "Bicep" },
{ "name": "gitversion.portable"},
{ "name": "innosetup" },
{ "name": "jq" },
{ "name": "NuGet.CommandLine" },
{ "name": "packer" },
{
"name": "strawberryperl" ,
"args": [ "--version", "5.32.1.1" ]
},
{ "name": "pulumi" },
{ "name": "swig" },
{ "name": "vswhere" },
{
"name": "julia",
"args": [ "--ia", "/DIR=C:\\Julia" ]
},
{
"name": "cmake.install",
"version": "3.31.6",
"args": [ "--installargs", "ADD_CMAKE_TO_PATH=\"System\"" ]
},
{ "name": "imagemagick" },
{ "name": "ninja" }
]
},
"node": {
"default": "18.*"
},
"maven": {
"version": "3.9"
},
"mysql": {
"version": "5.7"
},
"mongodb": {
"version": "5.0"
},
"nsis": {
"version": "3.10"
},
"php": {
"version": "8.4"
},
"llvm": {
"version": "18"
},
"postgresql": {
"version": "14"
},
"kotlin": {
"version": "2.1.10",
"pinnedDetails": {
"link": "https://github.com/actions/runner-images/issues/12045",
"reason": "Image is deprecated and will be removed soon",
"review-at": "2027-01-01"
}
},
"openssl": {
"version": "1.1.1",
"pinnedDetails": {
"link": "https://github.com/actions/runner-images/issues/12045",
"reason": "Image is deprecated and will be removed soon",
"review-at": "2027-01-01"
}
},
"pwsh": {
"version": "7.4"
}
}