Compare commits

..

1 Commits

83 changed files with 1257 additions and 2983 deletions
@@ -0,0 +1,339 @@
# GitHub Actions Runner Images
The runner-images project uses [Packer](https://www.packer.io/) to generate disk images for Windows 2022/2025 and Ubuntu 22.04/24.04.
Each image is configured by a HCL2 Packer template that specifies where to build the image (Azure, in this case),
and what steps to run to install software and prepare the disk.
The Packer process initializes a connection to the Azure subscription using Azure CLI and creates temporary resources
required for the build process: a resource group, network interfaces and a virtual machine from the "clean" image specified in the template.
If the VM deployment succeeds, Packer connects to it using SSH or WinRM and begins executing installation steps from the template one-by-one.
If any step fails, image generation is aborted, and the temporary VM is terminated.
Packer also attempts to clean up all the temporary resources it created (unless otherwise configured).
After successful completion of all installation steps, Packer creates a managed image from the temporary VM's disk and deletes the VM.
- [Build Agent Preparation](#build-agent-preparation)
- [Manual image generation](#manual-image-generation)
- [Manual Image Generation Customization](#manual-image-generation-customization)
- [Network Security](#network-security)
- [Azure Subscription Authentication](#azure-subscription-authentication)
- [Generated Machine Deployment](#generated-machine-deployment)
- [Automated image generation](#automated-image-generation)
- [GitHub Actions CI Workflows](#github-actions-ci-workflows)
- [Running Packer directly in your own pipeline](#running-packer-directly-in-your-own-pipeline)
- [Required variables](#required-variables)
- [Optional variables](#optional-variables)
- [Builder variables](#builder-variables)
- [Toolset](#toolset)
- [Post-generation scripts](#post-generation-scripts)
- [Running scripts](#running-scripts)
- [Script Details: Ubuntu](#script-details-ubuntu)
- [Script Details: Windows](#script-details-windows)
## Build Agent Preparation
The build agent is a machine where the Packer process will be started.
You can use any physical or virtual machine running Windows or Linux OS.
Of course, you may also use an [Azure VM](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/quick-create-cli).
In any case, you will need these software installed:
- Packer 1.8.2 or higher.
Download and install it manually from [here](https://www.packer.io/downloads) or use [Chocolatey](https://chocolatey.org/):
```powershell
choco install packer
```
- Git.
For Linux - install the latest version from your distro's package repo.
For Windows - download and install it from [here](https://gitforwindows.org/) or use [Chocolatey](https://chocolatey.org/):
```powershell
choco install git -params '"/GitAndUnixToolsOnPath"'
```
- Powershell 5.0 or higher.
In Windows you already have it.
For Linux follow instructions [here](https://learn.microsoft.com/en-us/windows-server/administration/linux-package-repository-for-microsoft-software)
to add Microsoft's Linux Software Repository and then install the `powershell` package.
- Azure CLI.
Follow the instructions [here](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli).
Or if you use Windows, you may run this command in Powershell instead:
```powershell
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi
Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msi
```
## Manual image generation
This repository includes a script that assists in generating images in Azure.
All you need is an Azure subscription, a resource group in that subscription and a build agent configured as described above.
All the commands below should be executed in PowerShell.
First, clone the runner-images repository and set the current directory to it:
```powershell
git clone https://github.com/actions/runner-images.git
Set-Location runner-images
```
Then, import the [GenerateResourcesAndImage](../../helpers/GenerateResourcesAndImage.ps1) script from the `helpers` subdirectory:
```powershell
Import-Module .\helpers\GenerateResourcesAndImage.ps1
```
Finally, run the `GenerateResourcesAndImage` function, setting the mandatory arguments: image type and where to build and store the resulting managed image:
- `SubscriptionId` - your Azure Subscription ID;
- `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 "Windows2022", "Windows2025", "Windows2025_vs2026", "Ubuntu2204", "Ubuntu2404").
This function automatically creates all required Azure resources and initiates the Packer image generation for the selected image type.
When the image is ready, you may proceed to [deployment](#generated-machine-deployment).
## Manual Image Generation Customization
The `GenerateResourcesAndImage` function accepts a number of arguments that may assist you in generating an image in your specific environment.
For example, you may want all the resources involved in the image generation process to be tagged.
In this case, pass a HashTable of tags as a value for the `Tags` parameter.
If you don't want the function to authenticate interactively, you should create a Service Principal and invoke the function with the parameters `AzureClientId`, `AzureClientSecret` and `AzureTenantId`.
You can find more details in the [corresponding section below](#azure-subscription-authentication).
Use `get-help GenerateResourcesAndImage -Detailed` for the complete list of available parameters.
### Network Security
To connect to a temporary virtual machine, Packer uses WinRM or SSH.
If your build agent is located outside of the Azure subscription where the temporary VM is created, a public network interface and public IP address are used.
Make sure that firewalls are configured properly and that WinRM (TCP port 5986) and SSH (TCP port 22) connections are allowed both outgoing for the build agent and incoming for the temporary VM.
Also, if you don't want the temporary VM to be accessible from everywhere, set the `RestrictToAgentIpAddress` parameter value to `$true`
to set up firewall rules allowing access only from your build agent's public IP address.
If your build agent and temporary VM are in the same subscription, you can configure Packer to connect using a private virtual network.
To achieve this, set proper values for the environment variables `VNET_RESOURCE_GROUP`, `VNET_NAME` and `VNET_SUBNET`.
### Azure Subscription Authentication
Packer uses a Service Principal to authenticate in Azure infrastructure.
For more information about Service Principals, refer to the
[Azure documentation](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal).
The `GenerateResourcesAndImage` function is able to create a Service Principal to be used by Packer.
It uses the Connect-AzAccount cmdlet that invokes an interactive authentication process by default.
If you don't want to use interactive authentication, you should create a Service Principal with full read-write permissions for the selected Azure subscription on your own
and provide proper values for the parameters `AzureClientId`, `AzureClientSecret` and `AzureTenantId`.
Here is an example of how to create a Service Principal using the Az PowerShell module:
```powershell
$credentials = [Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphPasswordCredential]@{
StartDateTime = Get-Date
EndDateTime = (Get-Date).AddDays(7)
}
$sp = New-AzADServicePrincipal -DisplayName "imagegen-app"
$appCred = New-AzADAppCredential -ApplicationId $sp.AppId -PasswordCredentials $credentials
Start-Sleep -Seconds 30
New-AzRoleAssignment -RoleDefinitionName "Contributor" -PrincipalId $sp.Id
Start-Sleep -Seconds 30
@{
ClientId = $sp.AppId
ClientSecret = $appCred.SecretText
TenantId = (Get-AzSubscription -SubscriptionId $SubscriptionId).TenantId
}
```
## Generated Machine Deployment
After successful image generation, a Virtual Machine can be created from the generated image using the [CreateAzureVMFromPackerTemplate](../../helpers/CreateAzureVMFromPackerTemplate.ps1) script.
```powershell
Import-Module .\helpers\CreateAzureVMFromPackerTemplate.ps1
CreateAzureVMFromPackerTemplate -SubscriptionId {YourSubscriptionId} -ResourceGroupName {ResourceGroupName} -ManagedImageName "Runner-Image-Ubuntu2204" -VirtualMachineName "testvm1" -AdminUsername "shady1" -AdminPassword "SomeSecurePassword1" -AzureLocation "eastus"
```
Where:
- `SubscriptionId` - the Azure subscription ID where resources will be created;
- `ResourceGroupName` - the Azure resource group name where the Azure virtual machine will be created;
- `ManagedImageName` - the name of the managed image to be used for the virtual machine creation;
- `VirtualMachineName` - the name of the virtual machine to be generated;
- `AdminUserName` - the administrator username for the virtual machine to be created;
- `AdminPassword` - the administrator password for the virtual machine to be created;
- `AzureLocation` - the location where the Azure virtual machine will be provisioned (e.g., "eastus").
This function creates an Azure VM and generates network resources in Azure to make the VM accessible.
## Automated image generation
### GitHub Actions CI Workflows
Image builds are automated through GitHub Actions. The pipelines were migrated from Azure DevOps to GitHub Actions.
Each image type has a dedicated workflow file in `.github/workflows/` that is triggered when a specific label is applied to a pull request targeting the relevant image path (`images/ubuntu/**` or `images/windows/**`):
| Workflow file | Trigger label(s) |
|---|---|
| `ubuntu2204.yml` | `CI ubuntu-all`, `CI ubuntu-2204` |
| `ubuntu2404.yml` | `CI ubuntu-all`, `CI ubuntu-2404` |
| `windows2022.yml` | `CI windows-all`, `CI windows-2022` |
| `windows2025.yml` | `CI windows-all`, `CI windows-2025` |
| `windows2025-vs2026.yml` | `CI windows-all`, `CI windows-2025-vs2026` |
Each of these workflows calls the reusable `trigger-ubuntu-win-build.yml` workflow, which:
1. Dispatches a `repository_dispatch` event to the CI repository (configured via the `CI_REPO` variable and `CI_PR_TOKEN` secret).
2. Waits for the resulting workflow run in the CI repository to complete.
The actual image build in the CI repository is performed by the [`images.CI/linux-and-win/build-image.ps1`](../../images.CI/linux-and-win/build-image.ps1) script, which invokes Packer with the appropriate variables.
### Running Packer directly in your own pipeline
If you want to run image builds in your own CI/CD setup without using the trigger mechanism above, you can invoke Packer directly. You will need:
- a build agent configured as described in the [Build agent preparation](#build-agent-preparation) section;
- an Azure subscription and Service Principal configured as described in the [Azure subscription authentication](#azure-subscription-authentication) section;
- a resource group created in your Azure subscription where the managed image will be stored;
- a string to be used as a password for the user used to install software (Windows only).
Then, invoke Packer with commands similar to the following:
```powershell
packer plugins install github.com/hashicorp/azure 2.3.3
packer build -only "$BuildName*" `
-var "subscription_id=$SubscriptionId" `
-var "client_id=$ClientId" `
-var "client_secret=$ClientSecret" `
-var "install_password=$InstallPassword" `
-var "location=$Location" `
-var "image_os=$ImageOS" `
-var "managed_image_name=$ImageName" `
-var "managed_image_resource_group_name=$ImageResourceGroupName" `
-var "tenant_id=$TenantId" `
$TemplatePath
```
Where:
- `BuildName` - name of the build defined in Packer template's `build{}` block (e.g. "ubuntu-24_04", "windows-2025", "windows-2025-vs2026");
- `SubscriptionId` - your Azure Subscription ID;
- `ClientId` and `ClientSecret` - Service Principal credentials;
- `TenantId` - Azure Tenant ID;
- `InstallPassword` - password for the user used to install software (Windows only);
- `Location` - location where resources will be created (e.g., "East US");
- `ImageOS` - the type of OS that will be deployed as a temporary VM (e.g. "ubuntu24", "win25", "win25-vs2026");
- `ImageName` and `ImageResourceGroupName` - name of the resource group where the managed image will be stored;
- `TemplatePath` - path to the folder with Packer template files (e.g., "images/windows/templates").
### Required variables
The following variables are required to be passed to the Packer process:
| Template var | Env var | Description
| ------------ | ------- | -----------
| `subscription_id` | `ARM_SUBSCRIPTION_ID` | The subscription under which the build will be performed.
| `client_id` | `ARM_CLIENT_ID` | The Active Directory service principal associated with your builder.
| `client_secret` | `ARM_CLIENT_SECRET` | The password or secret for your service principal; may be omitted if `client_cert_path` is set.
| `client_cert_path` | `ARM_CLIENT_CERT_PATH` | The location of a PEM file containing a certificate and private key for the service principal; may be omitted if `client_secret` is set.
| `location` | `ARM_RESOURCE_LOCATION` | The Azure datacenter in which your VM will be built.
| `managed_image_resource_group_name` | `ARM_RESOURCE_GROUP` | The resource group under which the final artifact will be stored.
### Optional variables
The following variables are optional:
- `managed_image_name` - the name of the managed image to create. If not specified, "Runner-Image-{{ImageType}}" will be used;
- `build_resource_group_name` - specify an existing resource group to run the build in; by default, a temporary resource group will be created and destroyed as part of the build; if you do not have permission to do so, use `build_resource_group_name` to specify an existing resource group to run the build in;
- `object_id` - the object ID for the AAD SP; will be derived from the oAuth token if empty;
- `tenant_id` - the Active Directory tenant identifier with which your `client_id` and `subscription_id` are associated; if not specified, `tenant_id` will be looked up using `subscription_id`;
- `temp_resource_group_name` - the name assigned to the temporary resource group created during the build; if this value is not set, a random value will be assigned; this resource group is deleted at the end of the build;
- `private_virtual_network_with_public_ip` - this value allows you to set a `virtual_network_name` and obtain a public IP; if this value is not set and `virtual_network_name` is defined, Packer is only allowed to be executed from a host on the same subnet / virtual network;
- `virtual_network_name` - use a pre-existing virtual network for the VM; this option enables private communication with the VM, no public IP address is used or provisioned (unless you set `private_virtual_network_with_public_ip`);
- `virtual_network_resource_group_name` - if `virtual_network_name` is set, this value may also be set; if `virtual_network_name` is set, and this value is not set, the builder attempts to determine the resource group containing the virtual network; if the resource group cannot be found, or it cannot be disambiguated, this value should be set;
- `virtual_network_subnet_name` - if `virtual_network_name` is set, this value may also be set; if `virtual_network_name` is set, and this value is not set, the builder attempts to determine the subnet to use with the virtual network; if the subnet cannot be found, or it cannot be disambiguated, this value should be set.
## Builder variables
The `builders` section contains variables for the `azure-arm` builder used in the project. Most of the builder variables are inherited from the `user variables` section, however, the variables can be overwritten to adjust image-generation performance.
- `vm_size` - the size of the VM used for building; this can be changed when you deploy a VM from your image;
- `image_os` - the type of OS that will be deployed as a temporary VM;
- `image_version` - specify the version of an OS to boot from.
**Detailed Azure builders documentation can be found in the [packer documentation](https://www.packer.io/docs/builders/azure).**
## Toolset
The configuration for some installed software is located in `toolset.json` files. These files define the list of Ruby, Python, Go versions, the list of PowerShell modules and VS components that will be installed on the image. They can be changed if these tools are not required, to reduce image generation time or image size.
Generated tool versions and details can be found in related projects:
- [Python](https://github.com/actions/python-versions/)
- [Go](https://github.com/actions/go-versions)
- [Node](https://github.com/actions/node-versions)
## Post-generation scripts
> [!WARNING]
> These scripts are intended to be run on a VM deployed in Azure.
The user, created during the image generation, does not exist in the resulting image. Hence, some configuration files related to the user's home directory need to be changed, as well as the file permissions for some directories. Scripts for that are located in the `post-gen` folder in the repository:
- Windows: <https://github.com/actions/runner-images/tree/main/images/windows/assets/post-gen>
- Linux: <https://github.com/actions/runner-images/tree/main/images/ubuntu/assets/post-gen>
**Note:** The default user for Linux should have `sudo privileges`.
The scripts are copied to the image during the generation process to the following paths:
- Windows: `C:\post-generation`
- Linux: `/opt/post-generation`
### Running scripts
- Ubuntu
```bash
sudo su -c "find /opt/post-generation -mindepth 1 -maxdepth 1 -type f -name '*.sh' -exec bash {} \;"
```
- Windows
```powershell
Get-ChildItem C:\post-generation -Filter *.ps1 | ForEach-Object { & $_.FullName }
```
### Script Details: Ubuntu
- **cleanup-logs.sh** - removes all build process logs from the machine;
- **environment-variables.sh** - replaces `$HOME` with the default user's home directory for environment variables related to the default user home directory;
- **systemd-linger.sh** - enables user session on boot (not just on login) so that user-level systemd services start automatically.
### Script Details: Windows
- **GenerateIISExpressCertificate.ps1** - generates and imports a certificate to run applications with IIS Express through HTTPS;
- **InternetExplorerConfiguration.ps1** - turns off the Internet Explorer Enhanced Security feature;
- **Msys2FirstLaunch.ps1** - initializes the bash user profile in MSYS2;
- **VSConfiguration.ps1** - performs initial Visual Studio configuration.
+34
View File
@@ -0,0 +1,34 @@
# Ubuntu .NET Core Versions
.NET has changed the recommended install methods for Ubuntu starting from 24.04.
This document gives an overview of these changes and the impact on the `runner-images`.
## .NET Core for Ubuntu 22.04
Ubuntu 22.04 uses the [Microsoft Package repository](https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-install?tabs=dotnet8&pivots=os-linux-ubuntu-2204) to install .NET deb files built and published by the .NET team.
## .NET Core Versions from Ubuntu 24.04
The .NET Core team worked with Canonical so that Ubuntu now provides its own .NET packages via the Ubuntu package feed.
These are the recommended install path and, as such, what is installed on the image.
> The release of Ubuntu 24.04 is just around the corner. Canonical-produced .NET 6, 7, and 8 packages will be available on day one, for "Noble Numbat". Microsoft will not be publishing .NET packages to the 24.04 feed at packages.microsoft.com.
You can read the [full announcement from the .NET team here](https://github.com/dotnet/core/discussions/9258). Below is a brief summary of how this change may impact users of the image.
### [`Feature Bands`](https://learn.microsoft.com/dotnet/core/porting/versioning-sdk-msbuild-vs)
Going forward, only the `1xx` feature band will be present in the image because Ubuntu only builds and publishes this band.
> Most distros, including Ubuntu, stick to the .1xx feature band for the lifetime of a major .NET version. They make this choice because .1xx is (effectively) the "compatibility band". Higher bands can have breaking changes.
> This means there will no longer be packages available for .2xx and later feature bands. Such packages have been exclusively available from Microsoft. If users see an incompatibility between .1xx and higher feature bands, we ask that you please report it in the dotnet/sdk repo. [link: dotnet/core discussion](https://github.com/dotnet/core/discussions/9258)
If you need a higher feature band for your Actions, the recommendation is to use the [`setup-dotnet`](https://github.com/actions/setup-dotnet) action to install the desired version.
### .NET MAUI
.NET MAUI is [not included](https://github.com/dotnet/core/discussions/9258#discussioncomment-9548857) in the Ubuntu .NET package. Work to fix this is [ongoing](https://github.com/dotnet/core/discussions/9258#discussioncomment-9548857).
You should be able to resolve this by using the [`setup-dotnet`](https://github.com/actions/setup-dotnet) action to install the desired version.
+63 -63
View File
@@ -6,12 +6,12 @@
# macOS 14
- OS Version: macOS 14.8.5 (23J423)
- Kernel Version: Darwin 23.6.0
- Image Version: 20260420.0006.1
- Image Version: 20260330.0357.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.420, 9.0.102, 9.0.203, 9.0.313, 10.0.103, 10.0.202
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.419, 9.0.102, 9.0.203, 9.0.312, 10.0.103, 10.0.201
- Bash 3.2.57(1)-release
- Clang/LLVM 15.0.0
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
@@ -24,41 +24,41 @@
- Kotlin 2.3.20-release-208
- Mono 6.12.0.188
- Node.js 20.20.2
- Perl 5.42.2
- PHP 8.5.5
- Python3 3.14.4
- Perl 5.42.1
- PHP 8.5.4
- Python3 3.14.3
- Ruby 3.3.11
### Package Management
- Bundler 4.0.10
- Bundler 4.0.9
- Carthage 0.40.0
- CocoaPods 1.16.2
- Composer 2.9.7
- Homebrew 5.1.7
- Composer 2.9.5
- Homebrew 5.1.1
- NPM 10.8.2
- NuGet 6.3.1.1
- Pip3 26.0.1 (python 3.14)
- Pipx 1.11.1
- RubyGems 4.0.10
- Vcpkg 2026 (build from commit 256acc6401)
- Pip3 26.0 (python 3.14)
- Pipx 1.11.0
- RubyGems 4.0.9
- Vcpkg 2026 (build from commit b5d1a94fb7)
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.17
- Apache Maven 3.9.15
- Apache Ant 1.10.15
- Apache Maven 3.9.14
- Gradle 9.4.1
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.32.2
- bazel 9.0.2
- bazel 9.0.1
- bazelisk 1.28.1
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.19.0
- Git 2.53.0
- Git LFS 3.7.1
- GitHub CLI 2.90.0
- GitHub CLI 2.89.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.5.18
@@ -67,22 +67,22 @@
- Packer 1.15.1
- pkgconf 2.5.1
- Unxip 3.3
- yq 4.53.2
- yq 4.52.5
- zstd 1.5.7
- Ninja 1.13.2
### Tools
- AWS CLI 2.34.32
- AWS SAM CLI 1.158.0
- AWS Session Manager CLI 1.2.804.0
- Azure CLI 2.85.0
- AWS CLI 2.34.19
- AWS SAM CLI 1.157.1
- AWS Session Manager CLI 1.2.792.0
- Azure CLI 2.84.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.42.1
- Bicep CLI 0.41.2
- Cmake 4.3.1
- CodeQL Action Bundle 2.25.2
- Fastlane 2.233.0
- SwiftFormat 0.61.0
- Xcbeautify 3.2.1
- CodeQL Action Bundle 2.25.1
- Fastlane 2.232.2
- SwiftFormat 0.60.1
- Xcbeautify 3.1.4
- Xcode Command Line Tools 16.2.0.0.1.1733547573
- Xcodes 1.6.2
@@ -92,12 +92,12 @@
### Browsers
- Safari 26.4 (19624.1.16.18.2)
- SafariDriver 26.4 (19624.1.16.18.2)
- Google Chrome 147.0.7727.102
- Google Chrome for Testing 147.0.7727.57
- ChromeDriver 147.0.7727.57
- Microsoft Edge 147.0.3912.72
- Microsoft Edge WebDriver 147.0.3912.72
- Mozilla Firefox 149.0.2
- Google Chrome 146.0.7680.165
- Google Chrome for Testing 146.0.7680.165
- ChromeDriver 146.0.7680.165
- Microsoft Edge 146.0.3856.84
- Microsoft Edge WebDriver 146.0.3856.84
- Mozilla Firefox 149.0
- geckodriver 0.36.0
- Selenium server 4.41.0
@@ -129,29 +129,29 @@
- 3.10.20
- 3.11.9
- 3.12.10
- 3.13.13
- 3.14.4
- 3.13.12
- 3.14.3
#### Node.js
- 20.20.2
- 22.22.2
- 24.15.0
- 24.14.1
#### Go
- 1.22.12
- 1.23.12
- 1.24.13
- 1.25.9
- 1.25.8
### Rust Tools
- Cargo 1.95.0
- Rust 1.95.0
- Rustdoc 1.95.0
- Cargo 1.94.1
- Rust 1.94.1
- Rustdoc 1.94.1
- Rustup 1.29.0
#### Packages
- Clippy 0.1.95
- Rustfmt 1.9.0-stable
- Clippy 0.1.94
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.14
@@ -235,32 +235,32 @@
| DriverKit 24.2 | driverkit24.2 | 16.2 |
#### Installed Simulators
| Name | OS | Simulators |
| ------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| iOS 17.0 | 17.0.1 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.2 | 17.2 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.4 | 17.4 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 17.5 | 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.1 | 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.2 | 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| tvOS 17.0 | 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.2 | 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.4 | 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.5 | 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.1 | 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.2 | 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 10.0 | 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.2 | 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.4 | 10.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.5 | 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.1 | 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.2 | 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| Name | OS | Simulators |
| ------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 17.0 | 17.0.1 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.2 | 17.2 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.4 | 17.4 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 17.5 | 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.1 | 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.2 | 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| tvOS 17.0 | 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.2 | 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.4 | 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.5 | 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.1 | 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.2 | 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 10.0 | 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.2 | 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.4 | 10.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.5 | 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.1 | 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.2 | 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
### Android
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 36.5.10 |
| Android Emulator | 36.4.10 |
| Android SDK Build-tools | 37.0.0<br>36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platforms | android-37.0 (rev 1)<br>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 | 37.0.0 |
@@ -286,7 +286,7 @@
#### Environment variables
| Name | Value |
| ----------------- | ----------------------------------------------------------------------------------------- |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v26/26.3.1-57396/ParallelsDesktop-26.3.1-57396.dmg |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v26/26.3.0-57392/ParallelsDesktop-26.3.0-57392.dmg |
##### Notes
```
+40 -40
View File
@@ -6,12 +6,12 @@
# macOS 14
- OS Version: macOS 14.8.5 (23J423)
- Kernel Version: Darwin 23.6.0
- Image Version: 20260420.0004.1
- Image Version: 20260330.0199.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.420, 9.0.102, 9.0.203, 9.0.313, 10.0.103, 10.0.202
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.419, 9.0.102, 9.0.203, 9.0.312, 10.0.103, 10.0.201
- Bash 3.2.57(1)-release
- Clang/LLVM 15.0.0
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
@@ -24,39 +24,39 @@
- Kotlin 2.3.20-release-208
- Mono 6.12.0.188
- Node.js 20.20.2
- Perl 5.42.2
- Python3 3.14.4
- Perl 5.42.1
- Python3 3.14.3
- Ruby 3.3.11
### Package Management
- Bundler 4.0.10
- Bundler 4.0.9
- Carthage 0.40.0
- CocoaPods 1.16.2
- Homebrew 5.1.7
- Homebrew 5.1.1
- NPM 10.8.2
- NuGet 6.3.1.1
- Pip3 26.0.1 (python 3.14)
- Pipx 1.11.1
- RubyGems 4.0.10
- Vcpkg 2026 (build from commit 256acc6401)
- Pip3 26.0 (python 3.14)
- Pipx 1.11.0
- RubyGems 4.0.9
- Vcpkg 2026 (build from commit b5d1a94fb7)
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.17
- Apache Maven 3.9.15
- Apache Ant 1.10.15
- Apache Maven 3.9.14
- Gradle 9.4.1
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.32.2
- bazel 9.0.2
- bazel 9.0.1
- bazelisk 1.28.1
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.7.1
- Git 2.53.0
- Git LFS 3.7.1
- GitHub CLI 2.90.0
- GitHub CLI 2.89.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.5.18
@@ -65,34 +65,34 @@
- Packer 1.15.1
- pkgconf 2.5.1
- Unxip 3.3
- yq 4.53.2
- yq 4.52.5
- zstd 1.5.7
- Ninja 1.13.2
### Tools
- AWS CLI 2.34.32
- AWS SAM CLI 1.158.0
- AWS Session Manager CLI 1.2.804.0
- Azure CLI 2.85.0
- AWS CLI 2.34.19
- AWS SAM CLI 1.157.1
- AWS Session Manager CLI 1.2.792.0
- Azure CLI 2.84.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.42.1
- Bicep CLI 0.41.2
- Cmake 4.3.1
- CodeQL Action Bundle 2.25.2
- Fastlane 2.233.0
- SwiftFormat 0.61.0
- Xcbeautify 3.2.1
- CodeQL Action Bundle 2.25.1
- Fastlane 2.232.2
- SwiftFormat 0.60.1
- Xcbeautify 3.1.4
- Xcode Command Line Tools 16.2.0.0.1.1733547573
- Xcodes 1.6.2
### Browsers
- Safari 26.4 (19624.1.16.18.2)
- SafariDriver 26.4 (19624.1.16.18.2)
- Google Chrome 147.0.7727.102
- Google Chrome for Testing 147.0.7727.57
- ChromeDriver 147.0.7727.57
- Microsoft Edge 147.0.3912.72
- Microsoft Edge WebDriver 147.0.3912.72
- Mozilla Firefox 149.0.2
- Google Chrome 146.0.7680.165
- Google Chrome for Testing 146.0.7680.165
- ChromeDriver 146.0.7680.165
- Microsoft Edge 146.0.3856.84
- Microsoft Edge WebDriver 146.0.3856.84
- Mozilla Firefox 149.0
- geckodriver 0.36.0
- Selenium server 4.41.0
@@ -122,29 +122,29 @@
#### Python
- 3.11.9
- 3.12.10
- 3.13.13
- 3.14.4
- 3.13.12
- 3.14.3
#### Node.js
- 20.20.2
- 22.22.2
- 24.15.0
- 24.14.1
#### Go
- 1.22.12
- 1.23.12
- 1.24.13
- 1.25.9
- 1.25.8
### Rust Tools
- Cargo 1.95.0
- Rust 1.95.0
- Rustdoc 1.95.0
- Cargo 1.94.1
- Rust 1.94.1
- Rustdoc 1.94.1
- Rustup 1.29.0
#### Packages
- Clippy 0.1.95
- Rustfmt 1.9.0-stable
- Clippy 0.1.94
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.14
@@ -258,7 +258,7 @@
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 36.5.10 |
| Android Emulator | 36.4.10 |
| Android SDK Build-tools | 37.0.0<br>36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platforms | android-37.0 (rev 1)<br>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 | 37.0.0 |
+49 -49
View File
@@ -6,12 +6,12 @@
# macOS 15
- OS Version: macOS 15.7.5 (24G617)
- Kernel Version: Darwin 24.6.0
- Image Version: 20260421.0014.1
- Image Version: 20260330.0336.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.420, 9.0.102, 9.0.203, 9.0.313, 10.0.103, 10.0.202
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.419, 9.0.102, 9.0.203, 9.0.312, 10.0.103, 10.0.201
- Bash 3.2.57(1)-release
- Clang/LLVM 17.0.0
- Clang/LLVM (Homebrew) 18.1.8 - available on `$(brew --prefix llvm@18)/bin/clang`
@@ -23,40 +23,40 @@
- GNU Fortran 15 (Homebrew GCC 15.2.0_1) - available by `gfortran-15` alias
- Kotlin 2.3.20-release-208
- Node.js 22.22.2
- Perl 5.42.2
- PHP 8.5.5
- Python3 3.14.4
- Perl 5.42.1
- PHP 8.5.4
- Python3 3.14.3
- Ruby 3.3.11
### Package Management
- Bundler 4.0.10
- Bundler 4.0.9
- Carthage 0.40.0
- CocoaPods 1.16.2
- Composer 2.9.7
- Homebrew 5.1.7
- Composer 2.9.5
- Homebrew 5.1.1
- NPM 10.9.7
- Pip3 26.0.1 (python 3.14)
- Pipx 1.11.1
- RubyGems 4.0.10
- Vcpkg 2026 (build from commit 9c5e11404a)
- Pip3 26.0 (python 3.14)
- Pipx 1.11.0
- RubyGems 4.0.9
- Vcpkg 2026 (build from commit b5d1a94fb7)
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.17
- Apache Maven 3.9.15
- Apache Ant 1.10.15
- Apache Maven 3.9.14
- Gradle 9.4.1
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.32.2
- bazel 9.1.0
- bazel 9.0.1
- bazelisk 1.28.1
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.19.0
- Git 2.54.0
- Git 2.53.0
- Git LFS 3.7.1
- GitHub CLI 2.90.0
- GitHub CLI 2.89.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.5.18
@@ -65,22 +65,22 @@
- Packer 1.15.1
- pkgconf 2.5.1
- Unxip 3.3
- yq 4.53.2
- yq 4.52.5
- zstd 1.5.7
- Ninja 1.13.2
### Tools
- AWS CLI 2.34.33
- AWS SAM CLI 1.158.0
- AWS Session Manager CLI 1.2.804.0
- Azure CLI 2.85.0
- Azure CLI (azure-devops) 1.0.3
- Bicep CLI 0.42.1
- AWS CLI 2.34.19
- AWS SAM CLI 1.157.1
- AWS Session Manager CLI 1.2.792.0
- Azure CLI 2.84.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.41.2
- Cmake 4.3.1
- CodeQL Action Bundle 2.25.2
- Fastlane 2.233.0
- SwiftFormat 0.61.0
- Xcbeautify 3.2.1
- CodeQL Action Bundle 2.25.1
- Fastlane 2.232.2
- SwiftFormat 0.60.1
- Xcbeautify 3.1.4
- Xcode Command Line Tools 16.4.0.0.1.1747106510
- Xcodes 1.6.2
@@ -88,16 +88,16 @@
- SwiftLint 0.63.2
### Browsers
- Safari 26.5 (20624.2.1.19.2)
- SafariDriver 26.5 (20624.2.1.19.2)
- Google Chrome 147.0.7727.102
- Google Chrome for Testing 147.0.7727.57
- ChromeDriver 147.0.7727.57
- Microsoft Edge 147.0.3912.72
- Microsoft Edge WebDriver 147.0.3912.72
- Mozilla Firefox 149.0.2
- Safari 26.4 (20624.1.16.18.2)
- SafariDriver 26.4 (20624.1.16.18.2)
- Google Chrome 146.0.7680.165
- Google Chrome for Testing 146.0.7680.165
- ChromeDriver 146.0.7680.165
- Microsoft Edge 146.0.3856.84
- Microsoft Edge WebDriver 146.0.3856.84
- Mozilla Firefox 149.0
- geckodriver 0.36.0
- Selenium server 4.43.0
- Selenium server 4.41.0
#### Environment variables
| Name | Value |
@@ -120,35 +120,35 @@
- 3.2.11
- 3.3.11
- 3.4.9
- 4.0.3
- 4.0.2
#### Python
- 3.10.20
- 3.11.9
- 3.12.10
- 3.13.13
- 3.14.4
- 3.13.12
- 3.14.3
#### Node.js
- 20.20.2
- 22.22.2
- 24.15.0
- 24.14.1
#### Go
- 1.22.12
- 1.23.12
- 1.24.13
- 1.25.9
- 1.25.8
### Rust Tools
- Cargo 1.95.0
- Rust 1.95.0
- Rustdoc 1.95.0
- Cargo 1.94.1
- Rust 1.94.1
- Rustdoc 1.94.1
- Rustup 1.29.0
#### Packages
- Clippy 0.1.95
- Rustfmt 1.9.0-stable
- Clippy 0.1.94
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.14
@@ -274,7 +274,7 @@
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.5.10 |
| Android Emulator | 36.4.10 |
| Android SDK Build-tools | 37.0.0<br>36.0.0 36.1.0<br>35.0.0 35.0.1 |
| Android SDK Platforms | android-37.0 (rev 1)<br>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 | 37.0.0 |
@@ -300,7 +300,7 @@
#### Environment variables
| Name | Value |
| ----------------- | ----------------------------------------------------------------------------------------- |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v26/26.3.1-57396/ParallelsDesktop-26.3.1-57396.dmg |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v26/26.3.0-57392/ParallelsDesktop-26.3.0-57392.dmg |
##### Notes
```
+44 -44
View File
@@ -6,12 +6,12 @@
# macOS 15
- OS Version: macOS 15.7.4 (24G517)
- Kernel Version: Darwin 24.6.0
- Image Version: 20260421.0007.1
- Image Version: 20260330.0243.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.420, 9.0.102, 9.0.203, 9.0.313, 10.0.103, 10.0.202
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.419, 9.0.102, 9.0.203, 9.0.312, 10.0.103, 10.0.201
- Bash 3.2.57(1)-release
- Clang/LLVM 17.0.0
- Clang/LLVM (Homebrew) 18.1.8 - available on `$(brew --prefix llvm@18)/bin/clang`
@@ -23,38 +23,38 @@
- GNU Fortran 15 (Homebrew GCC 15.2.0_1) - available by `gfortran-15` alias
- Kotlin 2.3.20-release-208
- Node.js 22.22.2
- Perl 5.42.2
- Python3 3.14.4
- Perl 5.42.1
- Python3 3.14.3
- Ruby 3.3.11
### Package Management
- Bundler 4.0.10
- Bundler 4.0.9
- Carthage 0.40.0
- CocoaPods 1.16.2
- Homebrew 5.1.7
- Homebrew 5.1.1
- NPM 10.9.7
- Pip3 26.0.1 (python 3.14)
- Pipx 1.11.1
- RubyGems 4.0.10
- Vcpkg 2026 (build from commit 9c5e11404a)
- Pip3 26.0 (python 3.14)
- Pipx 1.11.0
- RubyGems 4.0.9
- Vcpkg 2026 (build from commit b5d1a94fb7)
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.17
- Apache Maven 3.9.15
- Apache Ant 1.10.15
- Apache Maven 3.9.14
- Gradle 9.4.1
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.32.2
- bazel 9.1.0
- bazel 9.0.1
- bazelisk 1.28.1
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.7.1
- Git 2.54.0
- Git 2.53.0
- Git LFS 3.7.1
- GitHub CLI 2.90.0
- GitHub CLI 2.89.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.5.18
@@ -63,36 +63,36 @@
- Packer 1.15.1
- pkgconf 2.5.1
- Unxip 3.3
- yq 4.53.2
- yq 4.52.5
- zstd 1.5.7
- Ninja 1.13.2
### Tools
- AWS CLI 2.34.33
- AWS SAM CLI 1.158.0
- AWS Session Manager CLI 1.2.804.0
- Azure CLI 2.85.0
- Azure CLI (azure-devops) 1.0.3
- Bicep CLI 0.42.1
- AWS CLI 2.34.19
- AWS SAM CLI 1.157.1
- AWS Session Manager CLI 1.2.792.0
- Azure CLI 2.84.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.41.2
- Cmake 4.3.1
- CodeQL Action Bundle 2.25.2
- Fastlane 2.233.0
- SwiftFormat 0.61.0
- Xcbeautify 3.2.1
- CodeQL Action Bundle 2.25.1
- Fastlane 2.232.2
- SwiftFormat 0.60.1
- Xcbeautify 3.1.4
- Xcode Command Line Tools 16.4.0.0.1.1747106510
- Xcodes 1.6.2
### Browsers
- Safari 26.3 (20623.2.7.18.1)
- SafariDriver 26.3 (20623.2.7.18.1)
- Google Chrome 147.0.7727.102
- Google Chrome for Testing 147.0.7727.57
- ChromeDriver 147.0.7727.57
- Microsoft Edge 147.0.3912.72
- Microsoft Edge WebDriver 147.0.3912.72
- Mozilla Firefox 149.0.2
- Google Chrome 146.0.7680.165
- Google Chrome for Testing 146.0.7680.165
- ChromeDriver 146.0.7680.165
- Microsoft Edge 146.0.3856.84
- Microsoft Edge WebDriver 146.0.3856.84
- Mozilla Firefox 149.0
- geckodriver 0.36.0
- Selenium server 4.43.0
- Selenium server 4.41.0
#### Environment variables
| Name | Value |
@@ -115,34 +115,34 @@
- 3.2.11
- 3.3.11
- 3.4.9
- 4.0.3
- 4.0.2
#### Python
- 3.11.9
- 3.12.10
- 3.13.13
- 3.14.4
- 3.13.12
- 3.14.3
#### Node.js
- 20.20.2
- 22.22.2
- 24.15.0
- 24.14.1
#### Go
- 1.22.12
- 1.23.12
- 1.24.13
- 1.25.9
- 1.25.8
### Rust Tools
- Cargo 1.95.0
- Rust 1.95.0
- Rustdoc 1.95.0
- Cargo 1.94.1
- Rust 1.94.1
- Rustdoc 1.94.1
- Rustup 1.29.0
#### Packages
- Clippy 0.1.95
- Rustfmt 1.9.0-stable
- Clippy 0.1.94
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.14
@@ -273,7 +273,7 @@
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.5.10 |
| Android Emulator | 36.4.10 |
| Android SDK Build-tools | 37.0.0<br>36.0.0 36.1.0<br>35.0.0 35.0.1 |
| Android SDK Platforms | android-37.0 (rev 1)<br>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 | 37.0.0 |
+95 -106
View File
@@ -6,12 +6,12 @@
# macOS 26
- OS Version: macOS 26.3.1 (25D2128)
- Kernel Version: Darwin 25.3.0
- Image Version: 20260422.0018.1
- Image Version: 20260324.0226.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.420, 9.0.102, 9.0.203, 9.0.313, 10.0.103, 10.0.203
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.419, 9.0.102, 9.0.203, 9.0.312, 10.0.103, 10.0.201
- Bash 3.2.57(1)-release
- Clang/LLVM 17.0.0
- Clang/LLVM (Homebrew) 20.1.8 - available on `$(brew --prefix llvm@20)/bin/clang`
@@ -22,66 +22,66 @@
- GNU Fortran 14 (Homebrew GCC 14.3.0) - available by `gfortran-14` alias
- GNU Fortran 15 (Homebrew GCC 15.2.0_1) - available by `gfortran-15` alias
- Kotlin 2.3.20-release-208
- Node.js 24.15.0
- Perl 5.42.2
- PHP 8.5.5
- Python3 3.14.4
- Node.js 24.14.0
- Perl 5.42.1
- PHP 8.5.4
- Python3 3.14.3
- Ruby 3.4.9
### Package Management
- Bundler 4.0.10
- Bundler 4.0.8
- Carthage 0.40.0
- CocoaPods 1.16.2
- Composer 2.9.7
- Homebrew 5.1.7
- NPM 11.12.1
- Pip3 26.0.1 (python 3.14)
- Pipx 1.11.1
- RubyGems 4.0.10
- Vcpkg 2026 (build from commit 3fb54e6717)
- Composer 2.9.5
- Homebrew 5.1.1
- NPM 11.9.0
- Pip3 26.0 (python 3.14)
- Pipx 1.11.0
- RubyGems 4.0.8
- Vcpkg 2026 (build from commit ed8445dd2a)
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.17
- Apache Maven 3.9.15
- Apache Ant 1.10.15
- Apache Maven 3.9.14
- Gradle 9.4.1
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.32.2
- bazel 9.1.0
- bazel 9.0.1
- bazelisk 1.28.1
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.19.0
- Git 2.54.0
- Git 2.53.0
- Git LFS 3.7.1
- GitHub CLI 2.90.0
- GitHub CLI 2.88.1
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.5.18
- jq 1.8.1
- OpenSSL 3.6.2 7 Apr 2026 (Library: OpenSSL 3.6.2 7 Apr 2026)
- Packer 1.15.1
- OpenSSL 3.6.1 27 Jan 2026 (Library: OpenSSL 3.6.1 27 Jan 2026)
- Packer 1.15.0
- pkgconf 2.5.1
- Unxip 3.3
- yq 4.53.2
- yq 4.52.4
- zstd 1.5.7
- Ninja 1.13.2
### Tools
- AWS CLI 2.34.34
- AWS SAM CLI 1.158.0
- AWS Session Manager CLI 1.2.804.0
- Azure CLI 2.85.0
- Azure CLI (azure-devops) 1.0.3
- Bicep CLI 0.42.1
- Cmake 4.3.2
- CodeQL Action Bundle 2.25.2
- Fastlane 2.233.0
- SwiftFormat 0.61.0
- Xcbeautify 3.2.1
- Xcode Command Line Tools 26.4.1.0.1775747724
- AWS CLI 2.34.15
- AWS SAM CLI 1.156.0
- AWS Session Manager CLI 1.2.792.0
- Azure CLI 2.84.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.41.2
- Cmake 4.3.0
- CodeQL Action Bundle 2.24.3
- Fastlane 2.232.2
- SwiftFormat 0.60.1
- Xcbeautify 3.1.4
- Xcode Command Line Tools 26.3.0.0.1.1771626560
- Xcodes 1.6.2
### Linters
@@ -90,14 +90,14 @@
### Browsers
- Safari 26.3.1 (21623.2.7.11.7)
- SafariDriver 26.3.1 (21623.2.7.11.7)
- Google Chrome 147.0.7727.102
- Google Chrome for Testing 147.0.7727.57
- ChromeDriver 147.0.7727.57
- Microsoft Edge 147.0.3912.72
- Microsoft Edge WebDriver 147.0.3912.72
- Mozilla Firefox 150.0
- Google Chrome 146.0.7680.165
- Google Chrome for Testing 146.0.7680.165
- ChromeDriver 146.0.7680.165
- Microsoft Edge 146.0.3856.72
- Microsoft Edge WebDriver 146.0.3856.72
- Mozilla Firefox 149.0
- geckodriver 0.36.0
- Selenium server 4.43.0
- Selenium server 4.41.0
#### Environment variables
| Name | Value |
@@ -117,36 +117,36 @@
### Cached Tools
#### Ruby
- 3.2.11
- 3.3.11
- 3.2.10
- 3.3.10
- 3.4.9
- 4.0.3
- 4.0.2
#### Python
- 3.11.9
- 3.12.10
- 3.13.13
- 3.14.4
- 3.13.12
- 3.14.3
#### Node.js
- 20.20.2
- 22.22.2
- 24.15.0
- 20.20.1
- 22.22.1
- 24.14.0
#### Go
- 1.23.12
- 1.24.13
- 1.25.9
- 1.25.8
### Rust Tools
- Cargo 1.95.0
- Rust 1.95.0
- Rustdoc 1.95.0
- Cargo 1.94.0
- Rust 1.94.0
- Rustdoc 1.94.0
- Rustup 1.29.0
#### Packages
- Clippy 0.1.95
- Rustfmt 1.9.0-stable
- Clippy 0.1.94
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.14
@@ -157,14 +157,13 @@
- PSScriptAnalyzer: 1.25.0
### Xcode
| Version | Build | Path | Symlinks |
| -------------- | -------- | ----------------------------------- | -------------------------------------------------------------- |
| 26.5 (beta) | 17F5022i | /Applications/Xcode_26.5_beta_2.app | /Applications/Xcode_26.5.0.app<br>/Applications/Xcode_26.5.app |
| 26.4.1 | 17E202 | /Applications/Xcode_26.4.1.app | /Applications/Xcode_26.4.app |
| 26.3 | 17C529 | /Applications/Xcode_26.3.app | /Applications/Xcode_26.3.0.app |
| 26.2 (default) | 17C52 | /Applications/Xcode_26.2.app | /Applications/Xcode_26.2.0.app<br>/Applications/Xcode.app |
| 26.1.1 | 17B100 | /Applications/Xcode_26.1.1.app | /Applications/Xcode_26.1.app |
| 26.0.1 | 17A400 | /Applications/Xcode_26.0.1.app | /Applications/Xcode_26.0.app |
| Version | Build | Path | Symlinks |
| -------------- | ------ | ---------------------------------------------- | -------------------------------------------------------------- |
| 26.4 | 17E192 | /Applications/Xcode_26.4_Release_Candidate.app | /Applications/Xcode_26.4.0.app<br>/Applications/Xcode_26.4.app |
| 26.3 | 17C529 | /Applications/Xcode_26.3.app | /Applications/Xcode_26.3.0.app |
| 26.2 (default) | 17C52 | /Applications/Xcode_26.2.app | /Applications/Xcode_26.2.0.app<br>/Applications/Xcode.app |
| 26.1.1 | 17B100 | /Applications/Xcode_26.1.1.app | /Applications/Xcode_26.1.app |
| 26.0.1 | 17A400 | /Applications/Xcode_26.0.1.app | /Applications/Xcode_26.0.app |
#### Installed SDKs
| SDK | SDK Name | Xcode Version |
@@ -172,80 +171,70 @@
| macOS 26.0 | macosx26.0 | 26.0.1 |
| macOS 26.1 | macosx26.1 | 26.1.1 |
| macOS 26.2 | macosx26.2 | 26.2, 26.3 |
| macOS 26.4 | macosx26.4 | 26.4.1 |
| macOS 26.5 | macosx26.5 | 26.5 |
| macOS 26.4 | macosx26.4 | 26.4 |
| iOS 26.0 | iphoneos26.0 | 26.0.1 |
| iOS 26.1 | iphoneos26.1 | 26.1.1 |
| iOS 26.2 | iphoneos26.2 | 26.2, 26.3 |
| iOS 26.4 | iphoneos26.4 | 26.4.1 |
| iOS 26.5 | iphoneos26.5 | 26.5 |
| iOS 26.4 | iphoneos26.4 | 26.4 |
| Simulator - iOS 26.0 | iphonesimulator26.0 | 26.0.1 |
| Simulator - iOS 26.1 | iphonesimulator26.1 | 26.1.1 |
| Simulator - iOS 26.2 | iphonesimulator26.2 | 26.2, 26.3 |
| Simulator - iOS 26.4 | iphonesimulator26.4 | 26.4.1 |
| Simulator - iOS 26.5 | iphonesimulator26.5 | 26.5 |
| Simulator - iOS 26.4 | iphonesimulator26.4 | 26.4 |
| tvOS 26.0 | appletvos26.0 | 26.0.1 |
| tvOS 26.1 | appletvos26.1 | 26.1.1 |
| tvOS 26.2 | appletvos26.2 | 26.2, 26.3 |
| tvOS 26.4 | appletvos26.4 | 26.4.1 |
| tvOS 26.5 | appletvos26.5 | 26.5 |
| tvOS 26.4 | appletvos26.4 | 26.4 |
| Simulator - tvOS 26.0 | appletvsimulator26.0 | 26.0.1 |
| Simulator - tvOS 26.1 | appletvsimulator26.1 | 26.1.1 |
| Simulator - tvOS 26.2 | appletvsimulator26.2 | 26.2, 26.3 |
| Simulator - tvOS 26.4 | appletvsimulator26.4 | 26.4.1 |
| Simulator - tvOS 26.5 | appletvsimulator26.5 | 26.5 |
| Simulator - tvOS 26.4 | appletvsimulator26.4 | 26.4 |
| watchOS 26.0 | watchos26.0 | 26.0.1 |
| watchOS 26.1 | watchos26.1 | 26.1.1 |
| watchOS 26.2 | watchos26.2 | 26.2, 26.3 |
| watchOS 26.4 | watchos26.4 | 26.4.1 |
| watchOS 26.5 | watchos26.5 | 26.5 |
| watchOS 26.4 | watchos26.4 | 26.4 |
| Simulator - watchOS 26.0 | watchsimulator26.0 | 26.0.1 |
| Simulator - watchOS 26.1 | watchsimulator26.1 | 26.1.1 |
| Simulator - watchOS 26.2 | watchsimulator26.2 | 26.2, 26.3 |
| Simulator - watchOS 26.4 | watchsimulator26.4 | 26.4.1 |
| Simulator - watchOS 26.5 | watchsimulator26.5 | 26.5 |
| Simulator - watchOS 26.4 | watchsimulator26.4 | 26.4 |
| visionOS 26.0 | xros26.0 | 26.0.1 |
| visionOS 26.1 | xros26.1 | 26.1.1 |
| visionOS 26.2 | xros26.2 | 26.2, 26.3 |
| visionOS 26.4 | xros26.4 | 26.4.1 |
| visionOS 26.5 | xros26.5 | 26.5 |
| visionOS 26.4 | xros26.4 | 26.4 |
| Simulator - visionOS 26.0 | xrsimulator26.0 | 26.0.1 |
| Simulator - visionOS 26.1 | xrsimulator26.1 | 26.1.1 |
| Simulator - visionOS 26.2 | xrsimulator26.2 | 26.2, 26.3 |
| Simulator - visionOS 26.4 | xrsimulator26.4 | 26.4.1 |
| Simulator - visionOS 26.5 | xrsimulator26.5 | 26.5 |
| Simulator - visionOS 26.4 | xrsimulator26.4 | 26.4 |
| DriverKit 25.0 | driverkit25.0 | 26.0.1 |
| DriverKit 25.1 | driverkit25.1 | 26.1.1 |
| DriverKit 25.2 | driverkit25.2 | 26.2, 26.3 |
| DriverKit 25.4 | driverkit25.4 | 26.4.1 |
| DriverKit 25.5 | driverkit25.5 | 26.5 |
| DriverKit 25.4 | driverkit25.4 | 26.4 |
#### Installed Simulators
| Name | OS | Simulators |
| ------------ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 26.1 | 26.1 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M5) |
| iOS 26.2 | 26.2 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M5) |
| iOS 26.4 | 26.4.1 | iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone 17e<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M4)<br>iPad Air 13-inch (M4)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M5) |
| tvOS 26.1 | 26.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.2 | 26.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.4 | 26.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 26.1 | 26.1 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| watchOS 26.2 | 26.2 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| watchOS 26.4 | 26.4 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| Name | OS | Simulators |
| ------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 26.0 | 26.0.1 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M4)<br>iPad Pro 13-inch (M5) |
| iOS 26.1 | 26.1 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M5) |
| iOS 26.2 | 26.2 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M5) |
| tvOS 26.0 | 26.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.1 | 26.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.2 | 26.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 26.0 | 26.0 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| watchOS 26.1 | 26.1 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| watchOS 26.2 | 26.2 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
### Android
| Package Name | Version |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.5.10 |
| Android SDK Build-tools | 37.0.0<br>36.0.0 36.1.0<br>35.0.0 35.0.1 |
| Android SDK Platforms | android-37.0 (rev 1)<br>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) |
| Android SDK Platform-Tools | 37.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5<br>4.1.2 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
| Package Name | Version |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.4.10 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1 |
| 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) |
| Android SDK Platform-Tools | 37.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5<br>4.1.2 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
#### Environment variables
| Name | Value |
+94 -105
View File
@@ -6,12 +6,12 @@
# macOS 26
- OS Version: macOS 26.3 (25D125)
- Kernel Version: Darwin 25.3.0
- Image Version: 20260422.0012.1
- Image Version: 20260325.0302.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.420, 9.0.102, 9.0.203, 9.0.313, 10.0.103, 10.0.203
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.419, 9.0.102, 9.0.203, 9.0.312, 10.0.103, 10.0.201
- Bash 3.2.57(1)-release
- Clang/LLVM 17.0.0
- Clang/LLVM (Homebrew) 20.1.8 - available on `$(brew --prefix llvm@20)/bin/clang`
@@ -22,77 +22,77 @@
- GNU Fortran 14 (Homebrew GCC 14.3.0) - available by `gfortran-14` alias
- GNU Fortran 15 (Homebrew GCC 15.2.0_1) - available by `gfortran-15` alias
- Kotlin 2.3.20-release-208
- Node.js 24.15.0
- Perl 5.42.2
- Python3 3.14.4
- Node.js 24.14.1
- Perl 5.42.1
- Python3 3.14.3
- Ruby 3.4.9
### Package Management
- Bundler 4.0.10
- Bundler 4.0.9
- Carthage 0.40.0
- CocoaPods 1.16.2
- Homebrew 5.1.7
- NPM 11.12.1
- Pip3 26.0.1 (python 3.14)
- Pipx 1.11.1
- RubyGems 4.0.10
- Vcpkg 2026 (build from commit 3fb54e6717)
- Homebrew 5.1.1
- NPM 11.11.0
- Pip3 26.0 (python 3.14)
- Pipx 1.11.0
- RubyGems 4.0.9
- Vcpkg 2026 (build from commit ff8f729804)
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.17
- Apache Maven 3.9.15
- Apache Ant 1.10.15
- Apache Maven 3.9.14
- Gradle 9.4.1
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.32.2
- bazel 9.1.0
- bazel 9.0.1
- bazelisk 1.28.1
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.7.1
- Git 2.54.0
- Git 2.53.0
- Git LFS 3.7.1
- GitHub CLI 2.90.0
- GitHub CLI 2.88.1
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.5.18
- jq 1.8.1
- OpenSSL 3.6.2 7 Apr 2026 (Library: OpenSSL 3.6.2 7 Apr 2026)
- Packer 1.15.1
- OpenSSL 3.6.1 27 Jan 2026 (Library: OpenSSL 3.6.1 27 Jan 2026)
- Packer 1.15.0
- pkgconf 2.5.1
- Unxip 3.3
- yq 4.53.2
- yq 4.52.4
- zstd 1.5.7
- Ninja 1.13.2
### Tools
- AWS CLI 2.34.34
- AWS SAM CLI 1.158.0
- AWS Session Manager CLI 1.2.804.0
- Azure CLI 2.85.0
- Azure CLI (azure-devops) 1.0.3
- Bicep CLI 0.42.1
- Cmake 4.3.2
- CodeQL Action Bundle 2.25.2
- Fastlane 2.233.0
- SwiftFormat 0.61.0
- Xcbeautify 3.2.1
- Xcode Command Line Tools 26.4.1.0.1775747724
- AWS CLI 2.34.16
- AWS SAM CLI 1.156.0
- AWS Session Manager CLI 1.2.792.0
- Azure CLI 2.84.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.41.2
- Cmake 4.3.0
- CodeQL Action Bundle 2.24.3
- Fastlane 2.232.2
- SwiftFormat 0.60.1
- Xcbeautify 3.1.4
- Xcode Command Line Tools 26.4.0.0.1774242506
- Xcodes 1.6.2
### Browsers
- Safari 26.3 (21623.2.7.11.6)
- SafariDriver 26.3 (21623.2.7.11.6)
- Google Chrome 147.0.7727.102
- Google Chrome for Testing 147.0.7727.57
- ChromeDriver 147.0.7727.57
- Microsoft Edge 147.0.3912.72
- Microsoft Edge WebDriver 147.0.3912.72
- Mozilla Firefox 150.0
- Google Chrome 146.0.7680.165
- Google Chrome for Testing 146.0.7680.165
- ChromeDriver 146.0.7680.165
- Microsoft Edge 146.0.3856.72
- Microsoft Edge WebDriver 146.0.3856.72
- Mozilla Firefox 149.0
- geckodriver 0.36.0
- Selenium server 4.43.0
- Selenium server 4.41.0
#### Environment variables
| Name | Value |
@@ -112,36 +112,36 @@
### Cached Tools
#### Ruby
- 3.2.11
- 3.3.11
- 3.2.10
- 3.3.10
- 3.4.9
- 4.0.3
- 4.0.2
#### Python
- 3.11.9
- 3.12.10
- 3.13.13
- 3.14.4
- 3.13.12
- 3.14.3
#### Node.js
- 20.20.2
- 22.22.2
- 24.15.0
- 24.14.1
#### Go
- 1.23.12
- 1.24.13
- 1.25.9
- 1.25.8
### Rust Tools
- Cargo 1.95.0
- Rust 1.95.0
- Rustdoc 1.95.0
- Cargo 1.94.0
- Rust 1.94.0
- Rustdoc 1.94.0
- Rustup 1.29.0
#### Packages
- Clippy 0.1.95
- Rustfmt 1.9.0-stable
- Clippy 0.1.94
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.14
@@ -152,14 +152,13 @@
- PSScriptAnalyzer: 1.25.0
### Xcode
| Version | Build | Path | Symlinks |
| -------------- | -------- | ----------------------------------- | -------------------------------------------------------------- |
| 26.5 (beta) | 17F5022i | /Applications/Xcode_26.5_beta_2.app | /Applications/Xcode_26.5.0.app<br>/Applications/Xcode_26.5.app |
| 26.4.1 | 17E202 | /Applications/Xcode_26.4.1.app | /Applications/Xcode_26.4.app |
| 26.3 | 17C529 | /Applications/Xcode_26.3.app | /Applications/Xcode_26.3.0.app |
| 26.2 (default) | 17C52 | /Applications/Xcode_26.2.app | /Applications/Xcode_26.2.0.app<br>/Applications/Xcode.app |
| 26.1.1 | 17B100 | /Applications/Xcode_26.1.1.app | /Applications/Xcode_26.1.app |
| 26.0.1 | 17A400 | /Applications/Xcode_26.0.1.app | /Applications/Xcode_26.0.app |
| Version | Build | Path | Symlinks |
| -------------- | ------ | ---------------------------------------------- | -------------------------------------------------------------- |
| 26.4 | 17E192 | /Applications/Xcode_26.4_Release_Candidate.app | /Applications/Xcode_26.4.0.app<br>/Applications/Xcode_26.4.app |
| 26.3 | 17C529 | /Applications/Xcode_26.3.app | /Applications/Xcode_26.3.0.app |
| 26.2 (default) | 17C52 | /Applications/Xcode_26.2.app | /Applications/Xcode_26.2.0.app<br>/Applications/Xcode.app |
| 26.1.1 | 17B100 | /Applications/Xcode_26.1.1.app | /Applications/Xcode_26.1.app |
| 26.0.1 | 17A400 | /Applications/Xcode_26.0.1.app | /Applications/Xcode_26.0.app |
#### Installed SDKs
| SDK | SDK Name | Xcode Version |
@@ -167,83 +166,73 @@
| macOS 26.0 | macosx26.0 | 26.0.1 |
| macOS 26.1 | macosx26.1 | 26.1.1 |
| macOS 26.2 | macosx26.2 | 26.2, 26.3 |
| macOS 26.4 | macosx26.4 | 26.4.1 |
| macOS 26.5 | macosx26.5 | 26.5 |
| macOS 26.4 | macosx26.4 | 26.4 |
| iOS 26.0 | iphoneos26.0 | 26.0.1 |
| iOS 26.1 | iphoneos26.1 | 26.1.1 |
| iOS 26.2 | iphoneos26.2 | 26.2, 26.3 |
| iOS 26.4 | iphoneos26.4 | 26.4.1 |
| iOS 26.5 | iphoneos26.5 | 26.5 |
| iOS 26.4 | iphoneos26.4 | 26.4 |
| Simulator - iOS 26.0 | iphonesimulator26.0 | 26.0.1 |
| Simulator - iOS 26.1 | iphonesimulator26.1 | 26.1.1 |
| Simulator - iOS 26.2 | iphonesimulator26.2 | 26.2, 26.3 |
| Simulator - iOS 26.4 | iphonesimulator26.4 | 26.4.1 |
| Simulator - iOS 26.5 | iphonesimulator26.5 | 26.5 |
| Simulator - iOS 26.4 | iphonesimulator26.4 | 26.4 |
| tvOS 26.0 | appletvos26.0 | 26.0.1 |
| tvOS 26.1 | appletvos26.1 | 26.1.1 |
| tvOS 26.2 | appletvos26.2 | 26.2, 26.3 |
| tvOS 26.4 | appletvos26.4 | 26.4.1 |
| tvOS 26.5 | appletvos26.5 | 26.5 |
| tvOS 26.4 | appletvos26.4 | 26.4 |
| Simulator - tvOS 26.0 | appletvsimulator26.0 | 26.0.1 |
| Simulator - tvOS 26.1 | appletvsimulator26.1 | 26.1.1 |
| Simulator - tvOS 26.2 | appletvsimulator26.2 | 26.2, 26.3 |
| Simulator - tvOS 26.4 | appletvsimulator26.4 | 26.4.1 |
| Simulator - tvOS 26.5 | appletvsimulator26.5 | 26.5 |
| Simulator - tvOS 26.4 | appletvsimulator26.4 | 26.4 |
| watchOS 26.0 | watchos26.0 | 26.0.1 |
| watchOS 26.1 | watchos26.1 | 26.1.1 |
| watchOS 26.2 | watchos26.2 | 26.2, 26.3 |
| watchOS 26.4 | watchos26.4 | 26.4.1 |
| watchOS 26.5 | watchos26.5 | 26.5 |
| watchOS 26.4 | watchos26.4 | 26.4 |
| Simulator - watchOS 26.0 | watchsimulator26.0 | 26.0.1 |
| Simulator - watchOS 26.1 | watchsimulator26.1 | 26.1.1 |
| Simulator - watchOS 26.2 | watchsimulator26.2 | 26.2, 26.3 |
| Simulator - watchOS 26.4 | watchsimulator26.4 | 26.4.1 |
| Simulator - watchOS 26.5 | watchsimulator26.5 | 26.5 |
| Simulator - watchOS 26.4 | watchsimulator26.4 | 26.4 |
| visionOS 26.0 | xros26.0 | 26.0.1 |
| visionOS 26.1 | xros26.1 | 26.1.1 |
| visionOS 26.2 | xros26.2 | 26.2, 26.3 |
| visionOS 26.4 | xros26.4 | 26.4.1 |
| visionOS 26.5 | xros26.5 | 26.5 |
| visionOS 26.4 | xros26.4 | 26.4 |
| Simulator - visionOS 26.0 | xrsimulator26.0 | 26.0.1 |
| Simulator - visionOS 26.1 | xrsimulator26.1 | 26.1.1 |
| Simulator - visionOS 26.2 | xrsimulator26.2 | 26.2, 26.3 |
| Simulator - visionOS 26.4 | xrsimulator26.4 | 26.4.1 |
| Simulator - visionOS 26.5 | xrsimulator26.5 | 26.5 |
| Simulator - visionOS 26.4 | xrsimulator26.4 | 26.4 |
| DriverKit 25.0 | driverkit25.0 | 26.0.1 |
| DriverKit 25.1 | driverkit25.1 | 26.1.1 |
| DriverKit 25.2 | driverkit25.2 | 26.2, 26.3 |
| DriverKit 25.4 | driverkit25.4 | 26.4.1 |
| DriverKit 25.5 | driverkit25.5 | 26.5 |
| DriverKit 25.4 | driverkit25.4 | 26.4 |
#### Installed Simulators
| Name | OS | Simulators |
| ------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 26.1 | 26.1 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M5) |
| iOS 26.2 | 26.2 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M5) |
| iOS 26.4 | 26.4.1 | iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone 17e<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M4)<br>iPad Air 13-inch (M4)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M5) |
| tvOS 26.1 | 26.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.2 | 26.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.4 | 26.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 26.1 | 26.1 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| watchOS 26.2 | 26.2 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| watchOS 26.4 | 26.4 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| visionOS 26.1 | 26.1 | Apple Vision Pro |
| visionOS 26.2 | 26.2 | Apple Vision Pro |
| visionOS 26.4 | 26.4.1 | Apple Vision Pro |
| Name | OS | Simulators |
| ------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 26.0 | 26.0.1 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M4)<br>iPad Pro 13-inch (M5) |
| iOS 26.1 | 26.1 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M5) |
| iOS 26.2 | 26.2 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M5) |
| tvOS 26.0 | 26.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.1 | 26.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.2 | 26.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 26.0 | 26.0 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| watchOS 26.1 | 26.1 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| watchOS 26.2 | 26.2 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| visionOS 26.0 | 26.0 | Apple Vision Pro |
| visionOS 26.1 | 26.1 | Apple Vision Pro |
| visionOS 26.2 | 26.2 | Apple Vision Pro |
### Android
| Package Name | Version |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.5.10 |
| Android SDK Build-tools | 37.0.0<br>36.0.0 36.1.0<br>35.0.0 35.0.1 |
| Android SDK Platforms | android-37.0 (rev 1)<br>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) |
| Android SDK Platform-Tools | 37.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5<br>4.1.2 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
| Package Name | Version |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.4.10 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1 |
| 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) |
| Android SDK Platform-Tools | 37.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5<br>4.1.2 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
#### Environment variables
| Name | Value |
+8 -26
View File
@@ -4,19 +4,10 @@
"x64": {
"versions": [
{
"link": "26.5_beta_2",
"filename": "Xcode_26.5_beta_2_Universal",
"version": "26.5+17F5022i",
"symlinks": ["26.5"],
"sha256": "4e08f652cf56fe32d209f55d64f1ec71c20c8acfeb92898a21215ca71e17ff7d",
"install_runtimes": "none"
},
{
"link": "26.4.1",
"filename": "Xcode_26.4.1_Universal",
"version": "26.4.1+17E202",
"symlinks": ["26.4"],
"sha256": "e2698ef350e5b38740132b1110d02bd22a1feb928c3e019c168d373ce00e3ffa",
"link": "26.4",
"filename": "Xcode_26.4_Universal",
"version": "26.4+17E192",
"sha256": "1049032d89389cc7d803d7097359a7420c2e9747b4ce2b9cf4b81c9f3f634dfa",
"install_runtimes": "default"
},
{
@@ -58,19 +49,10 @@
"arm64": {
"versions": [
{
"link": "26.5_beta_2",
"filename": "Xcode_26.5_beta_2_Universal",
"version": "26.5+17F5022i",
"symlinks": ["26.5"],
"sha256": "4e08f652cf56fe32d209f55d64f1ec71c20c8acfeb92898a21215ca71e17ff7d",
"install_runtimes": "none"
},
{
"link": "26.4.1",
"filename": "Xcode_26.4.1_Universal",
"version": "26.4.1+17E202",
"symlinks": ["26.4"],
"sha256": "e2698ef350e5b38740132b1110d02bd22a1feb928c3e019c168d373ce00e3ffa",
"link": "26.4",
"filename": "Xcode_26.4_Universal",
"version": "26.4+17E192",
"sha256": "1049032d89389cc7d803d7097359a7420c2e9747b4ce2b9cf4b81c9f3f634dfa",
"install_runtimes": "default"
},
{
+65 -65
View File
@@ -5,8 +5,8 @@
# Ubuntu 22.04
- OS Version: 22.04.5 LTS
- Kernel Version: 6.8.0-1044-azure
- Image Version: 20260413.88.1
- Systemd version: 249.11-0ubuntu3.20
- Image Version: 20260322.68.1
- Systemd version: 249.11-0ubuntu3.17
## Installed Software
@@ -18,28 +18,28 @@
- Dash 0.5.11+git20210903+057cd650a4ed-3build1
- GNU C++: 10.5.0, 11.4.0, 12.3.0
- GNU Fortran: 10.5.0, 11.4.0, 12.3.0
- Julia 1.12.6
- Julia 1.12.5
- Kotlin 2.3.20-release-208
- Mono 6.12.0.200
- MSBuild 16.10.1.31701 (Mono 6.12.0.200)
- Node.js 20.20.2
- Node.js 20.20.1
- Perl 5.34.0
- Python 3.10.12
- Ruby 3.0.2p107
- Swift 6.3
- Swift 6.2.4
### Package Management
- cpan 1.64
- Helm 3.20.2
- Homebrew 5.1.6
- Helm 3.20.1
- Homebrew 5.1.0
- Miniconda 26.1.1
- Npm 10.8.2
- NuGet 6.6.1.2
- Pip 22.0.2
- Pip3 22.0.2
- Pipx 1.11.1
- Pipx 1.10.1
- RubyGems 3.3.5
- Vcpkg (build from commit b80e006657)
- Vcpkg (build from commit b472291f29)
- Yarn 1.22.22
#### Environment variables
@@ -61,21 +61,21 @@ to accomplish this.
- Gradle 9.4.1
- Lerna 9.0.7
- Maven 3.9.14
- Sbt 1.12.9
- Sbt 1.12.6
### Tools
- Ansible 2.17.14
- apt-fast 1.10.0
- AzCopy 10.32.2 - available by `azcopy` and `azcopy10` aliases
- Bazel 9.0.2
- Bazel 9.0.1
- Bazelisk 1.28.1
- Bicep 0.42.1
- Bicep 0.41.2
- Buildah 1.23.1
- CMake 3.31.6
- CodeQL Action Bundle 2.25.1
- CodeQL Action Bundle 2.24.3
- Docker Amazon ECR Credential Helper 0.12.0
- Docker Compose v2 2.38.2
- Docker-Buildx 0.33.0
- Docker-Buildx 0.32.1
- Docker Client 28.0.4
- Docker Server 28.0.4
- Fastlane 2.232.2
@@ -83,7 +83,7 @@ to accomplish this.
- Git LFS 3.7.1
- Git-ftp 1.6.0
- Haveged 1.9.14
- Heroku 11.2.0
- Heroku 11.0.0
- jq 1.6
- Kind 0.31.0
- Kubectl 1.35.3
@@ -95,34 +95,34 @@ to accomplish this.
- n 10.2.0
- Newman 6.2.2
- nvm 0.40.4
- OpenSSL 3.0.2-0ubuntu1.23
- Packer 1.15.1
- OpenSSL 3.0.2-0ubuntu1.21
- Packer 1.15.0
- Parcel 2.16.4
- Podman 3.4.4
- Pulumi 3.230.0
- Pulumi 3.227.0
- R 4.5.3
- Skopeo 1.4.1
- Sphinx Open Source Search Server 2.2.11
- SVN 1.14.1
- Terraform 1.14.8
- Terraform 1.14.7
- yamllint 1.38.0
- yq 4.52.5
- yq 4.52.4
- zstd 1.5.7
- Ninja 1.13.2
### CLI Tools
- Alibaba Cloud CLI 3.3.4
- AWS CLI 2.34.30
- AWS CLI Session Manager Plugin 1.2.804.0
- AWS SAM CLI 1.158.0
- Azure CLI 2.85.0
- Alibaba Cloud CLI 3.3.2
- AWS CLI 2.34.14
- AWS CLI Session Manager Plugin 1.2.792.0
- AWS SAM CLI 1.156.0
- Azure CLI 2.84.0
- Azure CLI (azure-devops) 1.0.2
- GitHub CLI 2.89.0
- Google Cloud CLI 564.0.0
- Netlify CLI 24.11.1
- OpenShift CLI 4.21.9
- GitHub CLI 2.88.1
- Google Cloud CLI 561.0.0
- Netlify CLI 24.4.0
- OpenShift CLI 4.21.6
- ORAS CLI 1.3.1
- Vercel CLI 51.2.0
- Vercel CLI 50.35.0
### Java
| Version | Environment Variable |
@@ -148,27 +148,27 @@ Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
- Stack 3.9.3
### Rust Tools
- Cargo 1.94.1
- Rust 1.94.1
- Rustdoc 1.94.1
- Cargo 1.94.0
- Rust 1.94.0
- Rustdoc 1.94.0
- Rustup 1.29.0
#### Packages
- Bindgen 0.72.1
- Cargo audit 0.22.1
- Cargo clippy 0.1.94
- Cargo outdated 0.18.0
- Cargo outdated 0.17.0
- Cbindgen 0.29.2
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 147.0.7727.55
- ChromeDriver 147.0.7727.56
- Chromium 147.0.7727.0
- Microsoft Edge 147.0.3912.60
- Microsoft Edge WebDriver 147.0.3912.60
- Selenium server 4.43.0
- Mozilla Firefox 149.0.2
- Google Chrome 146.0.7680.153
- ChromeDriver 146.0.7680.153
- Chromium 146.0.7680.0
- Microsoft Edge 146.0.3856.72
- Microsoft Edge WebDriver 146.0.3856.72
- Selenium server 4.41.0
- Mozilla Firefox 148.0.2
- Geckodriver 0.36.0
#### Environment variables
@@ -213,19 +213,19 @@ Use the following command as a part of your job to start the service: 'sudo syst
- 1.22.12
- 1.23.12
- 1.24.13
- 1.25.9
- 1.25.8
#### Node.js
- 20.20.2
- 22.22.2
- 24.14.1
- 20.20.1
- 22.22.1
- 24.14.0
#### Python
- 3.10.20
- 3.11.15
- 3.12.13
- 3.13.13
- 3.14.4
- 3.13.12
- 3.14.3
#### PyPy
- 3.7.13 [PyPy 7.3.9]
@@ -235,8 +235,8 @@ Use the following command as a part of your job to start the service: 'sudo syst
- 3.11.15 [PyPy 7.3.21]
#### Ruby
- 3.2.11
- 3.3.11
- 3.2.10
- 3.3.10
- 3.4.9
- 4.0.2
@@ -257,17 +257,17 @@ Use the following command as a part of your job to start the service: 'sudo syst
| nginx | 1.18.0 | /etc/nginx/nginx.conf | inactive | 80 |
### Android
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 9.0 |
| Android SDK Build-tools | 37.0.0<br>36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platform-Tools | 37.0.0 |
| Android SDK Platforms | android-37.0 (rev 1)<br>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 Support Repository | 47.0.0 |
| CMake | 3.18.1<br>3.22.1<br>3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 9.0 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platform-Tools | 37.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 Support Repository | 47.0.0 |
| CMake | 3.18.1<br>3.22.1<br>3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
#### Environment variables
| Name | Value |
@@ -293,7 +293,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
| coreutils | 8.32-4.1ubuntu1.3 |
| curl | 7.81.0-1ubuntu1.23 |
| dbus | 1.12.20-2ubuntu4.1 |
| dnsutils | 1:9.18.39-0ubuntu0.22.04.3 |
| dnsutils | 1:9.18.39-0ubuntu0.22.04.2 |
| dpkg | 1.21.1ubuntu2.6 |
| dpkg-dev | 1.21.1ubuntu2.6 |
| fakeroot | 1.28-1ubuntu1 |
@@ -325,7 +325,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
| libnss3-tools | 2:3.98-0ubuntu0.22.04.3 |
| libsecret-1-dev | 0.20.5-2 |
| libsqlite3-dev | 3.37.2-2ubuntu0.5 |
| libssl-dev | 3.0.2-0ubuntu1.23 |
| libssl-dev | 3.0.2-0ubuntu1.21 |
| libtool | 2.4.6-15build2 |
| libunwind8 | 1.3.2-2build2.1 |
| libxkbfile-dev | 1:1.1.0-1build3 |
@@ -347,7 +347,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
| patchelf | 0.14.3-1 |
| pigz | 2.6-1 |
| pkg-config | 0.29.2-1ubuntu3 |
| pollinate | 4.33-3ubuntu2.3 |
| pollinate | 4.33-3ubuntu2.1 |
| python-is-python3 | 3.9.2-2 |
| rpm | 4.17.0+dfsg1-4build1 |
| rsync | 3.2.7-0ubuntu0.22.04.4 |
@@ -359,13 +359,13 @@ Use the following command as a part of your job to start the service: 'sudo syst
| subversion | 1.14.1-3ubuntu0.22.04.1 |
| sudo | 1.9.9-1ubuntu2.6 |
| swig | 4.0.2-1ubuntu1 |
| systemd-coredump | 249.11-0ubuntu3.20 |
| systemd-coredump | 249.11-0ubuntu3.17 |
| tar | 1.34+dfsg-1ubuntu0.1.22.04.2 |
| telnet | 0.17-44build1 |
| texinfo | 6.8-4build1 |
| time | 1.9-0.1build2 |
| tk | 8.6.11+1build2 |
| tzdata | 2026a-0ubuntu0.22.04.1 |
| tzdata | 2025b-0ubuntu0.22.04.1 |
| unzip | 6.0-26ubuntu3.2 |
| upx | 3.96-3 |
| wget | 1.21.2-2ubuntu1.1 |
+58 -58
View File
@@ -4,9 +4,9 @@
***
# Ubuntu 24.04
- OS Version: 24.04.4 LTS
- Kernel Version: 6.17.0-1010-azure
- Image Version: 20260413.86.1
- Systemd version: 255.4-1ubuntu8.15
- Kernel Version: 6.17.0-1008-azure
- Image Version: 20260323.65.1
- Systemd version: 255.4-1ubuntu8.12
## Installed Software
@@ -18,25 +18,25 @@
- Dash 0.5.12-6ubuntu5
- GNU C++: 12.4.0, 13.3.0, 14.2.0
- GNU Fortran: 12.4.0, 13.3.0, 14.2.0
- Julia 1.12.6
- Julia 1.12.5
- Kotlin 2.3.20-release-208
- Node.js 20.20.2
- Node.js 20.20.1
- Perl 5.38.2
- Python 3.12.3
- Ruby 3.2.3
- Swift 6.3
- Swift 6.2.4
### Package Management
- cpan 1.64
- Helm 3.20.2
- Homebrew 5.1.6
- Helm 3.20.1
- Homebrew 5.1.1
- Miniconda 26.1.1
- Npm 10.8.2
- Pip 24.0
- Pip3 24.0
- Pipx 1.11.1
- Pipx 1.11.0
- RubyGems 3.4.20
- Vcpkg (build from commit b80e006657)
- Vcpkg (build from commit 596c7b12a7)
- Yarn 1.22.22
#### Environment variables
@@ -62,15 +62,15 @@ to accomplish this.
### Tools
- Ansible 2.20.4
- AzCopy 10.32.2 - available by `azcopy` and `azcopy10` aliases
- Bazel 9.0.2
- Bazel 9.0.1
- Bazelisk 1.28.1
- Bicep 0.42.1
- Bicep 0.41.2
- Buildah 1.33.7
- CMake 3.31.6
- CodeQL Action Bundle 2.25.1
- CodeQL Action Bundle 2.24.3
- Docker Amazon ECR Credential Helper 0.12.0
- Docker Compose v2 2.38.2
- Docker-Buildx 0.33.0
- Docker-Buildx 0.32.1
- Docker Client 28.0.4
- Docker Server 28.0.4
- Fastlane 2.232.2
@@ -88,26 +88,26 @@ to accomplish this.
- n 10.2.0
- Newman 6.2.2
- nvm 0.40.4
- OpenSSL 3.0.13-0ubuntu3.9
- Packer 1.15.1
- OpenSSL 3.0.13-0ubuntu3.7
- Packer 1.15.0
- Parcel 2.16.4
- Podman 4.9.3
- Pulumi 3.230.0
- Pulumi 3.227.0
- Skopeo 1.13.3
- Sphinx Open Source Search Server 2.2.11
- yamllint 1.38.0
- yq 4.52.5
- yq 4.52.4
- zstd 1.5.7
- Ninja 1.13.2
### CLI Tools
- AWS CLI 2.34.30
- AWS CLI Session Manager Plugin 1.2.804.0
- AWS SAM CLI 1.158.0
- Azure CLI 2.85.0
- AWS CLI 2.34.15
- AWS CLI Session Manager Plugin 1.2.792.0
- AWS SAM CLI 1.156.0
- Azure CLI 2.84.0
- Azure CLI (azure-devops) 1.0.2
- GitHub CLI 2.89.0
- Google Cloud CLI 564.0.0
- GitHub CLI 2.88.1
- Google Cloud CLI 561.0.0
### Java
| Version | Environment Variable |
@@ -133,22 +133,22 @@ Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
- Stack 3.9.3
### Rust Tools
- Cargo 1.94.1
- Rust 1.94.1
- Rustdoc 1.94.1
- Cargo 1.94.0
- Rust 1.94.0
- Rustdoc 1.94.0
- Rustup 1.29.0
#### Packages
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 147.0.7727.55
- ChromeDriver 147.0.7727.56
- Chromium 147.0.7727.0
- Microsoft Edge 147.0.3912.60
- Microsoft Edge WebDriver 147.0.3912.60
- Selenium server 4.43.0
- Mozilla Firefox 149.0.2
- Google Chrome 146.0.7680.164
- ChromeDriver 146.0.7680.165
- Chromium 146.0.7680.0
- Microsoft Edge 146.0.3856.72
- Microsoft Edge WebDriver 146.0.3856.72
- Selenium server 4.41.0
- Mozilla Firefox 148.0.2
- Geckodriver 0.36.0
#### Environment variables
@@ -189,19 +189,19 @@ Use the following command as a part of your job to start the service: 'sudo syst
- 1.22.12
- 1.23.12
- 1.24.13
- 1.25.9
- 1.25.8
#### Node.js
- 20.20.2
- 22.22.2
- 24.14.1
- 20.20.1
- 22.22.1
- 24.14.0
#### Python
- 3.10.20
- 3.11.15
- 3.12.13
- 3.13.13
- 3.14.4
- 3.13.12
- 3.14.3
#### PyPy
- 3.9.19 [PyPy 7.3.16]
@@ -209,8 +209,8 @@ Use the following command as a part of your job to start the service: 'sudo syst
- 3.11.15 [PyPy 7.3.21]
#### Ruby
- 3.2.11
- 3.3.11
- 3.2.10
- 3.3.10
- 3.4.9
- 4.0.2
@@ -230,17 +230,17 @@ Use the following command as a part of your job to start the service: 'sudo syst
| nginx | 1.24.0 | /etc/nginx/nginx.conf | inactive | 80 |
### Android
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 12.0 |
| Android SDK Build-tools | 37.0.0<br>36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platform-Tools | 37.0.0 |
| Android SDK Platforms | android-37.0 (rev 1)<br>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 Support Repository | 47.0.0 |
| CMake | 3.31.5<br>4.1.2 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 12.0 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platform-Tools | 37.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 Support Repository | 47.0.0 |
| CMake | 3.31.5<br>4.1.2 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
#### Environment variables
| Name | Value |
@@ -266,7 +266,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
| coreutils | 9.4-3ubuntu6.2 |
| curl | 8.5.0-2ubuntu10.8 |
| dbus | 1.14.10-4ubuntu4.1 |
| dnsutils | 1:9.18.39-0ubuntu0.24.04.3 |
| dnsutils | 1:9.18.39-0ubuntu0.24.04.2 |
| dpkg | 1.22.6ubuntu6.5 |
| dpkg-dev | 1.22.6ubuntu6.5 |
| fakeroot | 1.33-1 |
@@ -284,7 +284,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
| jq | 1.7.1-3ubuntu0.24.04.1 |
| libnss3-tools | 2:3.98-1ubuntu0.1 |
| libsqlite3-dev | 3.45.1-1ubuntu2.5 |
| libssl-dev | 3.0.13-0ubuntu3.9 |
| libssl-dev | 3.0.13-0ubuntu3.7 |
| libtool | 2.4.7-7build1 |
| libyaml-dev | 0.2.5-1build1 |
| locales | 2.39-0ubuntu8.7 |
@@ -302,7 +302,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
| patchelf | 0.18.0-1.1build1 |
| pigz | 2.8-1 |
| pkg-config | 1.8.1-2build1 |
| pollinate | 4.33-3.1ubuntu1.3 |
| pollinate | 4.33-3.1ubuntu1.1 |
| python-is-python3 | 3.11.4-1 |
| rpm | 4.18.2+dfsg-2.1build2 |
| rsync | 3.2.7-1ubuntu1.2 |
@@ -313,14 +313,14 @@ Use the following command as a part of your job to start the service: 'sudo syst
| sshpass | 1.09-1 |
| sudo | 1.9.15p5-3ubuntu5.24.04.2 |
| swig | 4.2.0-2ubuntu1 |
| systemd-coredump | 255.4-1ubuntu8.15 |
| systemd-coredump | 255.4-1ubuntu8.12 |
| tar | 1.35+dfsg-3build1 |
| telnet | 0.17+2.5-3ubuntu4.1 |
| texinfo | 7.1-3build2 |
| time | 1.9-0.2build1 |
| tk | 8.6.14build1 |
| tree | 2.1.1-2ubuntu3.24.04.2 |
| tzdata | 2026a-0ubuntu0.24.04.1 |
| tzdata | 2025b-0ubuntu0.24.04.1 |
| unzip | 6.0-28ubuntu4.1 |
| upx | 4.2.2-3 |
| wget | 1.21.4-1ubuntu4.1 |
@@ -52,16 +52,6 @@ mkdir -p $rules_directory
touch $netfilter_rule
echo 'ACTION=="add", SUBSYSTEM=="module", KERNEL=="nf_conntrack", RUN+="/usr/sbin/sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1"' | tee -a $netfilter_rule
# https://github.com/actions/runner-images/issues/13770
# https://github.com/ravendb/ravendb/discussions/22410
# Linux kernel 6.17 changed read_ahead_kb default from 128 to 4096 on Azure VMs
# where disks are presented as rotational (ROTA=1). This floods the page cache
# with unused data during random-access I/O and causes memory exhaustion and thrashing.
if is_ubuntu24; then
readahead_rule='/etc/udev/rules.d/99-readahead.rules'
echo 'ACTION=="add|change", KERNEL=="sd*", ATTR{queue/read_ahead_kb}="128"' | tee "$readahead_rule"
fi
# Create symlink for tests running
chmod +x $HELPER_SCRIPTS/invoke-tests.sh
ln -s $HELPER_SCRIPTS/invoke-tests.sh /usr/local/bin/invoke_tests
@@ -1,45 +0,0 @@
#!/bin/bash -e
################################################################################
## File: install-awf.sh
## Desc: Install Agent Workflow Firewall JS bundle (most recent 3 versions)
## Supply chain security: AWF - checksum validation
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/install.sh
# Number of versions to install (current + 2 previous)
NUM_VERSIONS=3
# Get the most recent stable releases (exclude pre-releases, beta and release without assets)
releases=$(curl -fsSL "https://api.github.com/repos/github/gh-aw-firewall/releases?per_page=10")
versions=$(echo "$releases" | jq -r '[.[] | select(.assets | length > 0) | select(.prerelease == false) | select(.tag_name | test(".*-[a-z]|beta") | not)] | .[:'"$NUM_VERSIONS"'] | .[].tag_name')
if [[ -z "$versions" ]]; then
echo "Error: Unable to find AWF releases."
exit 1
fi
for tag in $versions; do
version="${tag#v}"
echo "Installing AWF JS bundle version $version to toolcache..."
# Download the JS bundle
bundle_url="https://github.com/github/gh-aw-firewall/releases/download/${tag}/awf-bundle.js"
bundle_path=$(download_with_retry "$bundle_url")
# Supply chain security - AWF
checksums_url="https://github.com/github/gh-aw-firewall/releases/download/${tag}/checksums.txt"
external_hash=$(get_checksum_from_url "$checksums_url" "awf-bundle.js" "SHA256")
use_checksum_comparison "$bundle_path" "$external_hash"
# Install to toolcache
awf_toolcache_path="$AGENT_TOOLSDIRECTORY/agentic-workflow-firewall-js/$version/x64"
mkdir -p "$awf_toolcache_path"
cp "$bundle_path" "$awf_toolcache_path/awf-bundle.js"
# Mark installation complete
touch "$AGENT_TOOLSDIRECTORY/agentic-workflow-firewall-js/$version/x64.complete"
done
invoke_tests "Tools" "AWF"
@@ -22,25 +22,3 @@ Describe "fwupd removed" {
$systemctlOutput | Should -Not -Match "active"
}
}
# https://github.com/actions/runner-images/issues/13770
# Linux kernel 6.17 changed read_ahead_kb from 128 to 4096 on Azure VMs, causing I/O thrashing
Describe "ReadAhead udev rule" -Skip:(-not (Test-IsUbuntu24)) {
It "udev rule file exists" {
"/etc/udev/rules.d/99-readahead.rules" | Should -Exist
}
It "udev rule contains correct read_ahead_kb value" {
$content = Get-Content "/etc/udev/rules.d/99-readahead.rules" -Raw
$content | Should -Match 'ATTR\{queue/read_ahead_kb\}="128"'
}
It "All sd* devices have read_ahead_kb set to 128" {
$devices = Get-ChildItem "/sys/block/sd*/queue/read_ahead_kb" -ErrorAction SilentlyContinue
$devices | Should -Not -BeNullOrEmpty -Because "there should be at least one sd* block device"
foreach ($dev in $devices) {
$value = (Get-Content $dev.FullName).Trim()
$value | Should -Be "128" -Because "read_ahead_kb for $($dev.FullName) should be 128 to prevent I/O thrashing"
}
}
}
@@ -409,22 +409,3 @@ project(NinjaTest NONE)
Remove-Item -Path "/tmp/ninjaproject" -Recurse -Force
}
}
Describe "AWF" -Skip:(Test-IsUbuntu22) {
It "AWF toolcache directory exists" {
$awfPath = Join-Path $env:AGENT_TOOLSDIRECTORY "agentic-workflow-firewall-js"
$awfPath | Should -Exist
}
It "At least 3 versions are installed" {
$awfPath = Join-Path $env:AGENT_TOOLSDIRECTORY "agentic-workflow-firewall-js"
(Get-ChildItem -Path $awfPath -Directory).Count | Should -BeGreaterOrEqual 3
}
It "AWF JS bundle exists" {
$awfPath = Join-Path $env:AGENT_TOOLSDIRECTORY "agentic-workflow-firewall-js"
$latestVersion = Get-ChildItem -Path $awfPath -Directory | Sort-Object -Property { [version]$_.Name } -Descending | Select-Object -First 1
$bundlePath = Join-Path $latestVersion.FullName "x64" "awf-bundle.js"
$bundlePath | Should -Exist
}
}
@@ -110,7 +110,6 @@ provisioner "shell" {
"${path.root}/../scripts/build/install-swift.sh",
"${path.root}/../scripts/build/install-cmake.sh",
"${path.root}/../scripts/build/install-codeql-bundle.sh",
"${path.root}/../scripts/build/install-awf.sh",
"${path.root}/../scripts/build/install-container-tools.sh",
"${path.root}/../scripts/build/install-dotnetcore-sdk.sh",
"${path.root}/../scripts/build/install-microsoft-edge.sh",
+1 -1
View File
@@ -73,7 +73,7 @@
"java": {
"default": "11",
"versions": [ "8", "11", "17", "21", "25"],
"maven": "3.9.15"
"maven": "3.9.14"
},
"android": {
"cmdline-tools": "commandlinetools-linux-9477386_latest.zip",
+1 -1
View File
@@ -71,7 +71,7 @@
"java": {
"default": "17",
"versions": [ "8", "11", "17", "21", "25"],
"maven": "3.9.15"
"maven": "3.9.14"
},
"android": {
"cmdline-tools": "commandlinetools-linux-11076708_latest.zip",
-391
View File
@@ -1,391 +0,0 @@
# Windows 11 Enterprise
- OS Version: 10.0.26200 Build 8246
- Image Version: 20260419.19.1
## Windows features
- Windows Subsystem for Linux (WSLv1): Enabled
## Installed Software
### Language and Runtime
- Bash 5.2.37(1)-release
- Go 1.24.13
- Julia 1.12.0
- Kotlin 2.3.20
- LLVM 20.1.6
- Node 24.15.0
- Perl 5.32.1
- PHP 8.4.20
- Python 3.13.13
- Ruby 3.4.9
### Package Management
- Chocolatey 2.7.1
- Composer 2.9.7
- Helm 4.1.3
- NPM 11.12.1
- NuGet 7.3.1.1
- pip 26.0.1 (python 3.13)
- Pipx 1.11.1
- RubyGems 3.6.9
- Vcpkg (build from commit 256acc6401)
- Yarn 1.22.22
#### Environment variables
| Name | Value |
| ----------------------- | -------- |
| VCPKG_INSTALLATION_ROOT | C:\vcpkg |
### Project Management
- Ant 1.10.16
- Gradle 9.4
- Maven 3.9.15
- sbt 1.12.9
### Tools
- 7zip 26.00
- aria2 1.37.0
- azcopy 10.32.2
- Bazel 9.0.2
- Bazelisk 1.28.1
- Bicep 0.42.1
- CMake 4.3.1
- CodeQL Action Bundle 2.25.2
- Git 2.53.0.windows.3
- Git LFS 3.7.1
- ImageMagick 7.1.2-19
- InnoSetup 6.7.1
- jq 1.8.1
- Kind 0.31.0
- Kubectl 1.35.4
- Mercurial 6.3.1
- gcc 14.2.0
- gdb 16.2
- GNU Binutils 2.44
- Newman 6.2.2
- NSIS 3.10
- OpenSSL 3.6.2
- Packer 1.15.0
- Pulumi 3.231.0
- R 4.5.3
- Stack 3.9.3
- Swig 4.3.1
- VSWhere 3.1.7
- WinAppDriver 1.2.2009.02003
- yamllint 1.38.0
- Ninja 1.13.2
### CLI Tools
- Alibaba Cloud CLI 3.3.8
- AWS CLI 2.34.30
- AWS SAM CLI 1.158.0
- AWS Session Manager CLI 1.2.804.0
- Azure CLI 2.85.0
- Azure DevOps CLI extension 1.0.2
- GitHub CLI 2.90.0
### Rust Tools
- Cargo 1.95.0
- Rust 1.95.0
- Rustdoc 1.95.0
- Rustup 1.29.0
#### Packages
- bindgen 0.72.1
- cargo-audit 0.22.1
- cargo-outdated 0.19.0
- cbindgen 0.29.2
- Clippy 0.1.95
- Rustfmt 1.9.0
### Browsers and Drivers
- Google Chrome 147.0.7727.102
- Chrome Driver 147.0.7727.57
- Microsoft Edge 147.0.3912.72
- Microsoft Edge Driver 147.0.3912.72
- Mozilla Firefox 149.0.2
- Gecko Driver 0.36.0
- IE Driver 4.14.0.0
- Selenium server 4.43.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 |
| --------------------- | -------------------- |
| 21.0.10+7.0 (default) | JAVA_HOME_21_AARCH64 |
| 23.0.2+7 | JAVA_HOME_23_AARCH64 |
### Cached Tools
#### Go
- 1.22.12
- 1.23.12
- 1.24.13
- 1.25.9
#### Node.js
- 20.20.2
- 22.22.2
- 24.15.0
#### Python
- 3.12.10
- 3.13.13
- 3.14.4
#### Ruby
- 3.4.9
### Database tools
- Azure CosmosDb Emulator 2.14.27.0
- DacFx 170.3.93.6
- MySQL 8.0.45.0
- SQL OLEDB Driver 18 18.7.5.0
- SQL OLEDB Driver 19 19.4.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.8 | C:\tools\nginx-1.29.8\conf\nginx.conf | nginx | Stopped | 80 |
### Visual Studio Enterprise 2022
| Name | Version | Path |
| ----------------------------- | ------------- | -------------------------------------------------------- |
| Visual Studio Enterprise 2022 | 17.14.37203.1 | C:\Program Files\Microsoft Visual Studio\2022\Enterprise |
#### Workloads, components and extensions
| Package | Version |
| ------------------------------------------------------------------------- | --------------- |
| android | 35.0.78.0 |
| Component.Android.NDK.R23C | 17.14.36510.44 |
| Component.Android.SDK.MAUI | 17.14.36510.44 |
| Component.Dotfuscator | 17.14.36510.44 |
| Component.Linux.CMake | 17.14.36510.44 |
| Component.Linux.RemoteFileExplorer | 17.14.36510.44 |
| Component.MDD.Android | 17.14.36804.6 |
| Component.MDD.Linux | 17.14.36510.44 |
| Component.Microsoft.VisualStudio.RazorExtension | 17.14.36510.44 |
| Component.Microsoft.VisualStudio.Tools.Applications.amd64 | 17.1.37110.1 |
| Component.Microsoft.VisualStudio.Web.AzureFunctions | 17.14.36510.44 |
| Component.Microsoft.Web.LibraryManager | 17.14.36510.44 |
| Component.Microsoft.WebTools.BrowserLink.WebLivePreview | 17.14.2.50506 |
| Component.Microsoft.Windows.DriverKit | 10.0.26100.16 |
| Component.OpenJDK | 17.14.36510.44 |
| Component.Unreal | 17.14.36510.44 |
| Component.Unreal.Android | 17.14.36510.44 |
| Component.Unreal.Debugger | 17.14.36907.17 |
| Component.Unreal.Ide | 17.14.36510.44 |
| Component.VisualStudio.GitHub.Copilot | 17.14.37202.16 |
| Component.VSInstallerProjects2022_arm64 | 3.0.0 |
| Component.Xamarin | 17.14.36510.44 |
| ComponentGroup.Microsoft.NET.AppModernization | 17.14.37203.1 |
| ios | 26.0.9752.0 |
| maccatalyst | 26.0.9752.0 |
| maui.blazor | 9.0.111.6930 |
| maui.core | 9.0.111.6930 |
| maui.windows | 9.0.111.6930 |
| Microsoft.Component.ClickOnce | 17.14.36510.44 |
| Microsoft.Component.CodeAnalysis.SDK | 17.14.36510.44 |
| Microsoft.Component.MSBuild | 17.14.36510.44 |
| Microsoft.Component.NetFX.Native | 17.14.36510.44 |
| Microsoft.Component.VC.Runtime.UCRTSDK | 17.14.36510.44 |
| Microsoft.ComponentGroup.ClickOnce.Publish | 17.14.36510.44 |
| Microsoft.Net.Component.4.5.2.TargetingPack | 17.14.36510.44 |
| Microsoft.Net.Component.4.6.2.TargetingPack | 17.14.36510.44 |
| Microsoft.Net.Component.4.6.TargetingPack | 17.14.36510.44 |
| Microsoft.Net.Component.4.7.1.TargetingPack | 17.14.36510.44 |
| Microsoft.Net.Component.4.7.2.SDK | 17.14.36510.44 |
| Microsoft.Net.Component.4.7.2.TargetingPack | 17.14.36510.44 |
| Microsoft.Net.Component.4.7.TargetingPack | 17.14.36510.44 |
| Microsoft.Net.Component.4.8.1.SDK | 17.14.36510.44 |
| Microsoft.Net.Component.4.8.1.TargetingPack | 17.14.36510.44 |
| Microsoft.Net.Component.4.8.SDK | 17.14.36510.44 |
| Microsoft.Net.Component.4.8.TargetingPack | 17.14.36510.44 |
| Microsoft.Net.ComponentGroup.4.8.1.DeveloperTools | 17.14.36510.44 |
| Microsoft.Net.ComponentGroup.4.8.DeveloperTools | 17.14.36510.44 |
| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 17.14.36510.44 |
| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 17.14.36510.44 |
| microsoft.net.runtime.android | 9.0.1526.17522 |
| microsoft.net.runtime.android.aot | 9.0.1526.17522 |
| microsoft.net.runtime.android.aot.net8 | 9.0.1526.17522 |
| microsoft.net.runtime.android.net8 | 9.0.1526.17522 |
| microsoft.net.runtime.ios | 9.0.1526.17522 |
| microsoft.net.runtime.maccatalyst | 9.0.1526.17522 |
| microsoft.net.runtime.mono.tooling | 9.0.1526.17522 |
| microsoft.net.runtime.mono.tooling.net8 | 9.0.1526.17522 |
| microsoft.net.sdk.emscripten | 9.0.14.17501 |
| Microsoft.NetCore.Component.DevelopmentTools | 17.14.36510.44 |
| Microsoft.NetCore.Component.Runtime.8.0 | 17.14.37202.16 |
| Microsoft.NetCore.Component.Runtime.9.0 | 17.14.37202.16 |
| Microsoft.NetCore.Component.SDK | 17.14.37202.16 |
| Microsoft.NetCore.Component.Web | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.AppInsights.Tools | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.AspNet | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.AspNet45 | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.CoreEditor | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.CppBuildInsights | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.Debugger.JustInTime | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.DiagnosticTools | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.DockerTools | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.DotNetModelBuilder | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.DslTools | 17.14.37111.13 |
| Microsoft.VisualStudio.Component.EntityFramework | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.FSharp | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.FSharp.WebTemplates | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.Graphics | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.HLSL | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.IISExpress | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.IntelliCode | 17.14.36621.7 |
| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.LiveUnitTesting | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.ManagedDesktop.Core | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.MSODBC.SQL | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.Node.Tools | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.NuGet | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.NuGet.BuildTools | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.PortableLibrary | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.Roslyn.Compiler | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.Roslyn.LanguageServices | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.SQL.CLR | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.SQL.DataSources | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.SQL.SSDT | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.TestTools.CodedUITest | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.TestTools.WebLoadTest | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.TextTemplating | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.TypeScript.TSServer | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.Unity | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.UWP.VC.ARM64 | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.UWP.VC.ARM64EC | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64 | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.ASAN | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.ATL | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM64 | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.ATL.Spectre | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.ATLMFC | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.CLI.Support | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.CMake.Project | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.CoreIde | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.DiagnosticTools | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.Llvm.Clang | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.MFC.ARM64 | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.Redist.14.Latest | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.Redist.MSM | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64EC.Spectre | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.Tools.ARM | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.Tools.ARM64EC | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.Vcpkg | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.VSSDK | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.Web | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.WebDeploy | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.Windows10SDK | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.Windows10SDK.19041 | 17.14.36809.9 |
| Microsoft.VisualStudio.Component.Windows11SDK.22621 | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.Windows11SDK.26100 | 17.14.37011.9 |
| Microsoft.VisualStudio.Component.Windows11Sdk.WindowsPerformanceToolkit | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.WindowsAppSdkSupport.CSharp | 17.14.36510.44 |
| Microsoft.VisualStudio.Component.WslDebugging | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.AzureFunctions | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.Maui.All | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Android | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Blazor | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.Maui.iOS | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.Maui.MacCatalyst | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Shared | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.Maui.Windows | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 17.14.36802.14 |
| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142 | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64 | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.Web | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.Web.CloudTools | 17.14.36614.30 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.WindowsAppDevelopment.Prerequisites | 17.14.36510.44 |
| Microsoft.VisualStudio.ComponentGroup.WindowsAppSDK.Cs | 17.14.36510.44 |
| Microsoft.VisualStudio.Workload.CoreEditor | 17.14.36015.10 |
| Microsoft.VisualStudio.Workload.ManagedDesktop | 17.14.36518.2 |
| Microsoft.VisualStudio.Workload.ManagedGame | 17.14.36301.6 |
| Microsoft.VisualStudio.Workload.NativeCrossPlat | 17.14.36716.0 |
| Microsoft.VisualStudio.Workload.NativeDesktop | 17.14.36517.7 |
| Microsoft.VisualStudio.Workload.NativeGame | 17.14.36331.10 |
| Microsoft.VisualStudio.Workload.NetCrossPlat | 17.14.36518.2 |
| Microsoft.VisualStudio.Workload.NetWeb | 17.14.37202.16 |
| Microsoft.VisualStudio.Workload.Node | 17.14.36517.7 |
| Microsoft.VisualStudio.Workload.Universal | 17.14.36331.10 |
| Microsoft.VisualStudio.Workload.VisualStudioExtension | 17.14.36015.10 |
| runtimes.ios | 9.0.1526.17522 |
| runtimes.maccatalyst | 9.0.1526.17522 |
| wasm.tools | 9.0.1526.17522 |
| SSIS.MicrosoftDataToolsIntegrationServices | 2.2 |
| VisualStudioClient.MicrosoftVisualStudio2022InstallerProjectsArm64 | 3.0.0 |
| Windows Driver Kit | 10.1.26100.6584 |
| Windows Driver Kit Visual Studio Extension | 10.0.26100.16 |
| Windows Software Development Kit | 10.1.26100.7705 |
#### 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 | x86 | 14.50.35719 |
| Microsoft Visual C++ 2022 Debug Runtime | x86 | 14.44.35211 |
| Microsoft Visual C++ 2022 Minimum Runtime | x86 | 14.50.35719 |
#### Installed Windows SDKs
- 10.0.19041.0
- 10.0.22621.0
- 10.0.26100.0
### .NET Core Tools
- .NET Core SDK: 6.0.136, 6.0.203, 6.0.321, 6.0.428, 8.0.126, 8.0.206, 8.0.319, 8.0.420, 9.0.116, 9.0.205, 9.0.313, 10.0.106, 10.0.202
- .NET Framework: 4.7.2, 4.8, 4.8.1
- Microsoft.AspNetCore.App: 6.0.5, 6.0.26, 6.0.36, 8.0.6, 8.0.22, 8.0.26, 9.0.6, 9.0.15, 10.0.6
- Microsoft.NETCore.App: 6.0.5, 6.0.26, 6.0.36, 8.0.6, 8.0.22, 8.0.26, 9.0.6, 9.0.15, 10.0.6
- Microsoft.WindowsDesktop.App: 6.0.5, 6.0.26, 6.0.36, 8.0.6, 8.0.22, 8.0.26, 9.0.6, 9.0.15, 10.0.6
- nbgv 3.9.50+6feeb89450
### PowerShell Tools
- PowerShell 7.4.14
#### Powershell Modules
- Az: 12.5.0
- AWSPowershell: 5.0.197
- DockerMsftProvider: 1.0.0.8
- MarkdownPS: 1.10
- Microsoft.Graph: 2.36.1
- Pester: 3.4.0, 5.7.1
- PowerShellGet: 1.0.0.1, 2.2.5
- PSScriptAnalyzer: 1.25.0
- PSWindowsUpdate: 2.2.1.5
- SqlServer: 22.4.5.1
- VSSetup: 2.2.16
+61 -61
View File
@@ -5,7 +5,7 @@
***
# Windows Server 2022
- OS Version: 10.0.20348 Build 4893
- Image Version: 20260413.111.1
- Image Version: 20260317.73.1
## Windows features
- Windows Subsystem for Linux (WSLv1): Enabled
@@ -18,23 +18,23 @@
- Julia 1.12.0
- Kotlin 2.3.20
- LLVM 20.1.8
- Node 20.20.2
- Node 20.20.1
- Perl 5.32.1
- PHP 8.5.5
- PHP 8.5.4
- Python 3.12.10
- Ruby 3.3.11
- Ruby 3.3.10
### Package Management
- Chocolatey 2.7.1
- Chocolatey 2.6.0
- Composer 2.9.5
- Helm 4.1.3
- Miniconda 26.1.1 (pre-installed on the image but not added to PATH)
- NPM 10.8.2
- NuGet 7.3.0.70
- pip 26.0.1 (python 3.12)
- Pipx 1.11.1
- Pipx 1.9.0
- RubyGems 3.5.22
- Vcpkg (build from commit b80e006657)
- Vcpkg (build from commit d90a9b159c)
- Yarn 1.22.22
#### Environment variables
@@ -44,41 +44,41 @@
| CONDA | C:\Miniconda |
### Project Management
- Ant 1.10.16
- Ant 1.10.15
- Gradle 9.4
- Maven 3.9.14
- sbt 1.12.9
- sbt 1.12.6
### Tools
- 7zip 26.00
- aria2 1.37.0
- azcopy 10.32.2
- Bazel 9.0.2
- azcopy 10.32.1
- Bazel 9.0.1
- Bazelisk 1.28.1
- Bicep 0.42.1
- Bicep 0.41.2
- Cabal 3.16.1.0
- CMake 3.31.6
- CodeQL Action Bundle 2.25.1
- CodeQL Action Bundle 2.24.3
- Docker 29.1.5
- Docker Compose v2 2.40.3
- Docker-wincred 0.9.5
- ghc 9.14.1
- Git 2.53.0.windows.2
- Git LFS 3.7.1
- ImageMagick 7.1.2-18
- ImageMagick 7.1.2-17
- InnoSetup 6.7.1
- jq 1.8.1
- Kind 0.31.0
- Kubectl 1.35.3
- Kubectl 1.35.2
- Mercurial 6.3.1
- gcc 14.2.0
- gdb 16.2
- GNU Binutils 2.44
- Newman 6.2.2
- NSIS 3.10
- OpenSSL 3.6.2
- OpenSSL 3.6.1
- Packer 1.15.0
- Pulumi 3.230.0
- Pulumi 3.226.0
- R 4.5.3
- Service Fabric SDK 10.1.2493.9590
- Stack 3.9.3
@@ -92,37 +92,37 @@
- Ninja 1.13.2
### CLI Tools
- Alibaba Cloud CLI 3.3.4
- AWS CLI 2.34.27
- AWS SAM CLI 1.158.0
- AWS Session Manager CLI 1.2.804.0
- Azure CLI 2.85.0
- Alibaba Cloud CLI 3.3.1
- AWS CLI 2.34.10
- AWS SAM CLI 1.155.2
- AWS Session Manager CLI 1.2.792.0
- Azure CLI 2.84.0
- Azure DevOps CLI extension 1.0.2
- GitHub CLI 2.89.0
- GitHub CLI 2.88.1
### Rust Tools
- Cargo 1.94.1
- Rust 1.94.1
- Rustdoc 1.94.1
- Cargo 1.94.0
- Rust 1.94.0
- Rustdoc 1.94.0
- Rustup 1.29.0
#### Packages
- bindgen 0.72.1
- cargo-audit 0.22.1
- cargo-outdated 0.18.0
- cargo-outdated 0.17.0
- cbindgen 0.29.2
- Clippy 0.1.94
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 147.0.7727.56
- Chrome Driver 147.0.7727.56
- Microsoft Edge 147.0.3912.60
- Microsoft Edge Driver 147.0.3912.60
- Mozilla Firefox 149.0.2
- Google Chrome 146.0.7680.80
- Chrome Driver 146.0.7680.80
- Microsoft Edge 146.0.3856.59
- Microsoft Edge Driver 146.0.3856.62
- Mozilla Firefox 148.0.2
- Gecko Driver 0.36.0
- IE Driver 4.14.0.0
- Selenium server 4.43.0
- Selenium server 4.41.0
#### Environment variables
| Name | Value |
@@ -164,19 +164,19 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
- 1.22.12
- 1.23.12
- 1.24.13
- 1.25.9
- 1.25.8
#### Node.js
- 20.20.2
- 22.22.2
- 24.14.1
- 20.20.1
- 22.22.1
- 24.14.0
#### Python
- 3.10.11
- 3.11.9
- 3.12.10
- 3.13.13
- 3.14.4
- 3.13.12
- 3.14.3
#### PyPy
- 2.7.18 [PyPy 7.3.21]
@@ -186,8 +186,8 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
- 3.10.16 [PyPy 7.3.19]
#### Ruby
- 3.2.11
- 3.3.11
- 3.2.10
- 3.3.10
- 3.4.9
- 4.0.2
@@ -217,13 +217,13 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
- SQL OLEDB Driver 18 18.7.5.0
- SQL OLEDB Driver 19 19.4.1.0
- SQLPS 1.0
- MongoDB Shell (mongosh) 2.8.2
- MongoDB Shell (mongosh) 2.8.1
### Web Servers
| Name | Version | ConfigFile | ServiceName | ServiceStatus | ListenPort |
| ------ | ------- | ------------------------------------- | ----------- | ------------- | ---------- |
| Apache | 2.4.55 | C:\tools\Apache24\conf\httpd.conf | Apache | Stopped | 80 |
| Nginx | 1.29.8 | C:\tools\nginx-1.29.8\conf\nginx.conf | nginx | Stopped | 80 |
| Nginx | 1.29.6 | C:\tools\nginx-1.29.6\conf\nginx.conf | nginx | Stopped | 80 |
### Visual Studio Enterprise 2022
| Name | Version | Path |
@@ -242,7 +242,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
| Component.MDD.Android | 17.14.36804.6 |
| Component.MDD.Linux | 17.14.36510.44 |
| Component.Microsoft.VisualStudio.RazorExtension | 17.14.36510.44 |
| Component.Microsoft.VisualStudio.Tools.Applications.amd64 | 17.1.37110.1 |
| Component.Microsoft.VisualStudio.Tools.Applications.amd64 | 17.0.36522.0 |
| Component.Microsoft.VisualStudio.Web.AzureFunctions | 17.14.36510.44 |
| Component.Microsoft.Web.LibraryManager | 17.14.36510.44 |
| Component.Microsoft.WebTools.BrowserLink.WebLivePreview | 17.14.2.50506 |
@@ -455,7 +455,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
| wasm.tools | 9.0.1426.11910 |
| ProBITools.MicrosoftAnalysisServicesModelingProjects2022 | 4.0.0 |
| ProBITools.MicrosoftReportProjectsforVisualStudio2022 | 4.0.0 |
| SSIS.MicrosoftDataToolsIntegrationServices | 2.2 |
| SSIS.MicrosoftDataToolsIntegrationServices | 2.1.2 |
| VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects | 3.0.0 |
| Windows Driver Kit | 10.1.26100.4202 |
| Windows Driver Kit Visual Studio Extension | 10.0.26100.16 |
@@ -489,34 +489,34 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
- nbgv 3.9.50+6feeb89450
### PowerShell Tools
- PowerShell 7.4.14
- PowerShell 7.4.13
#### Powershell Modules
- Az: 14.6.0
- AWSPowershell: 5.0.195
- AWSPowershell: 5.0.176
- DockerMsftProvider: 1.0.0.8
- MarkdownPS: 1.10
- Microsoft.Graph: 2.36.1
- Microsoft.Graph: 2.36.0
- Pester: 3.4.0, 5.7.1
- PowerShellGet: 1.0.0.1, 2.2.5
- PSScriptAnalyzer: 1.25.0
- 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 | 8.0 |
| Android Emulator | 36.5.10 |
| Android SDK Build-tools | 37.0.0<br>36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0<br>32.0.0 |
| Android SDK Platforms | android-37.0 (rev 1)<br>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)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 37.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.22.1<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 |
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 8.0 |
| Android Emulator | 36.4.10 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0<br>32.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)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 37.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.22.1<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 |
+60 -60
View File
@@ -5,7 +5,7 @@
***
# Windows Server 2025
- OS Version: 10.0.26100 Build 32522
- Image Version: 20260413.84.1
- Image Version: 20260317.61.1
## Windows features
- Windows Subsystem for Linux (WSLv1): Enabled
@@ -19,23 +19,23 @@
- Julia 1.12.0
- Kotlin 2.3.20
- LLVM 20.1.8
- Node 22.22.2
- Node 22.22.1
- Perl 5.42.0
- PHP 8.5.5
- PHP 8.5.4
- Python 3.12.10
- Ruby 3.3.11
- Ruby 3.3.10
### Package Management
- Chocolatey 2.7.1
- Chocolatey 2.6.0
- Composer 2.9.5
- Helm 4.1.3
- Miniconda 26.1.1 (pre-installed on the image but not added to PATH)
- NPM 10.9.7
- NPM 10.9.4
- NuGet 7.3.0.70
- pip 26.0.1 (python 3.12)
- Pipx 1.11.1
- Pipx 1.9.0
- RubyGems 3.5.22
- Vcpkg (build from commit b80e006657)
- Vcpkg (build from commit d90a9b159c)
- Yarn 1.22.22
#### Environment variables
@@ -45,39 +45,39 @@
| CONDA | C:\Miniconda |
### Project Management
- Ant 1.10.16
- Ant 1.10.15
- Gradle 9.4
- Maven 3.9.14
- sbt 1.12.9
- sbt 1.12.6
### Tools
- 7zip 26.00
- aria2 1.37.0
- azcopy 10.32.2
- Bazel 9.0.2
- azcopy 10.32.1
- Bazel 9.0.1
- Bazelisk 1.28.1
- Bicep 0.42.1
- Bicep 0.41.2
- Cabal 3.16.1.0
- CMake 3.31.6
- CodeQL Action Bundle 2.25.1
- CodeQL Action Bundle 2.24.3
- Docker 29.1.5
- Docker Compose v2 2.40.3
- Docker-wincred 0.9.5
- ghc 9.14.1
- Git 2.53.0.windows.2
- Git LFS 3.7.1
- ImageMagick 7.1.2-18
- ImageMagick 7.1.2-17
- InnoSetup 6.7.1
- jq 1.8.1
- Kind 0.31.0
- Kubectl 1.35.3
- Kubectl 1.35.2
- gcc 15.2.0
- gdb 17.1
- GNU Binutils 2.46
- Newman 6.2.2
- OpenSSL 3.6.2
- OpenSSL 3.6.1
- Packer 1.15.0
- Pulumi 3.230.0
- Pulumi 3.226.0
- R 4.5.3
- Service Fabric SDK 10.1.2493.9590
- Stack 3.9.3
@@ -90,17 +90,17 @@
- Ninja 1.13.2
### CLI Tools
- AWS CLI 2.34.27
- AWS SAM CLI 1.158.0
- AWS Session Manager CLI 1.2.804.0
- Azure CLI 2.85.0
- AWS CLI 2.34.10
- AWS SAM CLI 1.155.2
- AWS Session Manager CLI 1.2.792.0
- Azure CLI 2.84.0
- Azure DevOps CLI extension 1.0.2
- GitHub CLI 2.89.0
- GitHub CLI 2.88.1
### Rust Tools
- Cargo 1.94.1
- Rust 1.94.1
- Rustdoc 1.94.1
- Cargo 1.94.0
- Rust 1.94.0
- Rustdoc 1.94.0
- Rustup 1.29.0
#### Packages
@@ -108,14 +108,14 @@
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 147.0.7727.56
- Chrome Driver 147.0.7727.56
- Microsoft Edge 146.0.3856.109
- Microsoft Edge Driver 146.0.3856.117
- Mozilla Firefox 149.0.2
- Google Chrome 146.0.7680.80
- Chrome Driver 146.0.7680.80
- Microsoft Edge 146.0.3856.59
- Microsoft Edge Driver 146.0.3856.62
- Mozilla Firefox 148.0.2
- Gecko Driver 0.36.0
- IE Driver 4.14.0.0
- Selenium server 4.43.0
- Selenium server 4.41.0
#### Environment variables
| Name | Value |
@@ -157,27 +157,27 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
- 1.22.12
- 1.23.12
- 1.24.13
- 1.25.9
- 1.25.8
#### Node.js
- 20.20.2
- 22.22.2
- 24.14.1
- 20.20.1
- 22.22.1
- 24.14.0
#### Python
- 3.10.11
- 3.11.9
- 3.12.10
- 3.13.13
- 3.14.4
- 3.13.12
- 3.14.3
#### PyPy
- 3.9.19 [PyPy 7.3.16]
- 3.10.16 [PyPy 7.3.19]
#### Ruby
- 3.2.11
- 3.3.11
- 3.2.10
- 3.3.10
- 3.4.9
- 4.0.2
@@ -207,13 +207,13 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
- SQL OLEDB Driver 18 18.7.5.0
- SQL OLEDB Driver 19 19.4.1.0
- SQLPS 1.0
- MongoDB Shell (mongosh) 2.8.2
- MongoDB Shell (mongosh) 2.8.1
### Web Servers
| Name | Version | ConfigFile | ServiceName | ServiceStatus | ListenPort |
| ------ | ------- | ------------------------------------- | ----------- | ------------- | ---------- |
| Apache | 2.4.55 | C:\tools\Apache24\conf\httpd.conf | Apache | Stopped | 80 |
| Nginx | 1.29.8 | C:\tools\nginx-1.29.8\conf\nginx.conf | nginx | Stopped | 80 |
| Nginx | 1.29.6 | C:\tools\nginx-1.29.6\conf\nginx.conf | nginx | Stopped | 80 |
### Visual Studio Enterprise 2022
| Name | Version | Path |
@@ -232,7 +232,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
| Component.MDD.Android | 17.14.36804.6 |
| Component.MDD.Linux | 17.14.36510.44 |
| Component.Microsoft.VisualStudio.RazorExtension | 17.14.36510.44 |
| Component.Microsoft.VisualStudio.Tools.Applications.amd64 | 17.1.37110.1 |
| Component.Microsoft.VisualStudio.Tools.Applications.amd64 | 17.0.36522.0 |
| Component.Microsoft.VisualStudio.Web.AzureFunctions | 17.14.36510.44 |
| Component.Microsoft.Web.LibraryManager | 17.14.36510.44 |
| Component.Microsoft.WebTools.BrowserLink.WebLivePreview | 17.14.2.50506 |
@@ -439,7 +439,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
| wasm.tools | 9.0.1426.11910 |
| ProBITools.MicrosoftAnalysisServicesModelingProjects2022 | 4.0.0 |
| ProBITools.MicrosoftReportProjectsforVisualStudio2022 | 4.0.0 |
| SSIS.MicrosoftDataToolsIntegrationServices | 2.2 |
| SSIS.MicrosoftDataToolsIntegrationServices | 2.1.2 |
| VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects | 3.0.0 |
| Windows Driver Kit Visual Studio Extension | 10.0.26100.16 |
| Windows Software Development Kit | 10.1.26100.7705 |
@@ -469,34 +469,34 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
- nbgv 3.9.50+6feeb89450
### PowerShell Tools
- PowerShell 7.4.14
- PowerShell 7.4.13
#### Powershell Modules
- Az: 14.6.0
- AWSPowershell: 5.0.195
- AWSPowershell: 5.0.176
- DockerMsftProvider: 1.0.0.8
- MarkdownPS: 1.10
- Microsoft.Graph: 2.36.1
- Microsoft.Graph: 2.36.0
- Pester: 3.4.0, 5.7.1
- PowerShellGet: 1.0.0.1, 2.2.5
- PSScriptAnalyzer: 1.25.0
- 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 | 16.0 |
| Android Emulator | 36.5.10 |
| Android SDK Build-tools | 37.0.0<br>36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platforms | android-37.0 (rev 1)<br>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 | 37.0.0 |
| 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 |
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.4.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 | 37.0.0 |
| 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 |
+64 -64
View File
@@ -5,7 +5,7 @@
***
# Windows Server 2025
- OS Version: 10.0.26100 Build 32522
- Image Version: 20260412.71.1
- Image Version: 20260317.44.1
## Windows features
- Windows Subsystem for Linux (WSLv1): Enabled
@@ -19,23 +19,23 @@
- Julia 1.12.0
- Kotlin 2.3.20
- LLVM 20.1.8
- Node 22.22.2
- Node 22.22.1
- Perl 5.42.0
- PHP 8.5.5
- PHP 8.5.4
- Python 3.12.10
- Ruby 3.3.11
- Ruby 3.3.10
### Package Management
- Chocolatey 2.7.1
- Chocolatey 2.6.0
- Composer 2.9.5
- Helm 4.1.3
- Miniconda 26.1.1 (pre-installed on the image but not added to PATH)
- NPM 10.9.7
- NPM 10.9.4
- NuGet 7.3.0.70
- pip 26.0.1 (python 3.12)
- Pipx 1.11.1
- Pipx 1.9.0
- RubyGems 3.5.22
- Vcpkg (build from commit 0b88aacde4)
- Vcpkg (build from commit d90a9b159c)
- Yarn 1.22.22
#### Environment variables
@@ -45,39 +45,39 @@
| CONDA | C:\Miniconda |
### Project Management
- Ant 1.10.16
- Ant 1.10.15
- Gradle 9.4
- Maven 3.9.14
- sbt 1.12.9
- sbt 1.12.6
### Tools
- 7zip 26.00
- aria2 1.37.0
- azcopy 10.32.2
- Bazel 9.0.2
- azcopy 10.32.1
- Bazel 9.0.1
- Bazelisk 1.28.1
- Bicep 0.42.1
- Bicep 0.41.2
- Cabal 3.16.1.0
- CMake 4.3.1
- CodeQL Action Bundle 2.25.1
- CMake 4.2.3
- CodeQL Action Bundle 2.24.3
- Docker 29.1.5
- Docker Compose v2 2.40.3
- Docker-wincred 0.9.5
- ghc 9.14.1
- Git 2.53.0.windows.2
- Git LFS 3.7.1
- ImageMagick 7.1.2-18
- ImageMagick 7.1.2-17
- InnoSetup 6.7.1
- jq 1.8.1
- Kind 0.31.0
- Kubectl 1.35.3
- Kubectl 1.35.2
- gcc 15.2.0
- gdb 17.1
- GNU Binutils 2.46
- Newman 6.2.2
- OpenSSL 3.6.2
- OpenSSL 3.6.1
- Packer 1.15.0
- Pulumi 3.230.0
- Pulumi 3.226.0
- R 4.5.3
- Service Fabric SDK 10.1.2493.9590
- Stack 3.9.3
@@ -90,17 +90,17 @@
- Ninja 1.13.2
### CLI Tools
- AWS CLI 2.34.27
- AWS SAM CLI 1.158.0
- AWS Session Manager CLI 1.2.804.0
- Azure CLI 2.85.0
- AWS CLI 2.34.10
- AWS SAM CLI 1.155.2
- AWS Session Manager CLI 1.2.792.0
- Azure CLI 2.84.0
- Azure DevOps CLI extension 1.0.2
- GitHub CLI 2.89.0
- GitHub CLI 2.88.1
### Rust Tools
- Cargo 1.94.1
- Rust 1.94.1
- Rustdoc 1.94.1
- Cargo 1.94.0
- Rust 1.94.0
- Rustdoc 1.94.0
- Rustup 1.29.0
#### Packages
@@ -108,14 +108,14 @@
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 147.0.7727.56
- Chrome Driver 147.0.7727.56
- Microsoft Edge 146.0.3856.109
- Microsoft Edge Driver 146.0.3856.117
- Mozilla Firefox 149.0.2
- Google Chrome 146.0.7680.80
- Chrome Driver 146.0.7680.80
- Microsoft Edge 146.0.3856.59
- Microsoft Edge Driver 146.0.3856.62
- Mozilla Firefox 148.0.2
- Gecko Driver 0.36.0
- IE Driver 4.14.0.0
- Selenium server 4.43.0
- Selenium server 4.41.0
#### Environment variables
| Name | Value |
@@ -157,27 +157,27 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
- 1.22.12
- 1.23.12
- 1.24.13
- 1.25.9
- 1.25.8
#### Node.js
- 20.20.2
- 22.22.2
- 24.14.1
- 20.20.1
- 22.22.1
- 24.14.0
#### Python
- 3.10.11
- 3.11.9
- 3.12.10
- 3.13.13
- 3.14.4
- 3.13.12
- 3.14.3
#### PyPy
- 3.9.19 [PyPy 7.3.16]
- 3.10.16 [PyPy 7.3.19]
#### Ruby
- 3.2.11
- 3.3.11
- 3.2.10
- 3.3.10
- 3.4.9
- 4.0.2
@@ -207,18 +207,18 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
- SQL OLEDB Driver 18 18.7.5.0
- SQL OLEDB Driver 19 19.4.1.0
- SQLPS 1.0
- MongoDB Shell (mongosh) 2.8.2
- MongoDB Shell (mongosh) 2.8.1
### Web Servers
| Name | Version | ConfigFile | ServiceName | ServiceStatus | ListenPort |
| ------ | ------- | ------------------------------------- | ----------- | ------------- | ---------- |
| Apache | 2.4.55 | C:\tools\Apache24\conf\httpd.conf | Apache | Stopped | 80 |
| Nginx | 1.29.8 | C:\tools\nginx-1.29.8\conf\nginx.conf | nginx | Stopped | 80 |
| Nginx | 1.29.6 | C:\tools\nginx-1.29.6\conf\nginx.conf | nginx | Stopped | 80 |
### Visual Studio Enterprise 2026
| Name | Version | Path |
| ----------------------------- | ------------- | ------------------------------------------------------ |
| Visual Studio Enterprise 2026 | 18.4.11626.88 | C:\Program Files\Microsoft Visual Studio\18\Enterprise |
| Name | Version | Path |
| ----------------------------- | -------------- | ------------------------------------------------------ |
| Visual Studio Enterprise 2026 | 18.4.11612.150 | C:\Program Files\Microsoft Visual Studio\18\Enterprise |
#### Workloads, components and extensions
| Package | Version |
@@ -231,7 +231,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
| Component.MDD.Linux | 18.4.11505.171 |
| Component.Microsoft.NET.AppModernization | 18.4.11602.120 |
| Component.Microsoft.VisualStudio.RazorExtension | 18.4.11505.171 |
| Component.Microsoft.VisualStudio.Tools.Applications.amd64 | 17.1.37110.1 |
| Component.Microsoft.VisualStudio.Tools.Applications.amd64 | 17.0.36522.0 |
| Component.Microsoft.VisualStudio.Web.AzureFunctions | 18.4.11505.171 |
| Component.Microsoft.Web.LibraryManager | 18.4.11505.171 |
| Component.Microsoft.Windows.DriverKit | 10.0.26100.16 |
@@ -421,7 +421,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
| wasm.tools | 10.1.526.15411 |
| ProBITools.MicrosoftAnalysisServicesModelingProjects2022 | 4.0.0 |
| ProBITools.MicrosoftReportProjectsforVisualStudio2022 | 4.0.0 |
| SSIS.MicrosoftDataToolsIntegrationServices | 2.2 |
| SSIS.MicrosoftDataToolsIntegrationServices | 2.1.2 |
| VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects | 3.0.0 |
| Windows Driver Kit Visual Studio Extension | 10.0.26100.16 |
| Windows Software Development Kit | 10.1.26100.7705 |
@@ -451,34 +451,34 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
- nbgv 3.9.50+6feeb89450
### PowerShell Tools
- PowerShell 7.4.14
- PowerShell 7.4.13
#### Powershell Modules
- Az: 14.6.0
- AWSPowershell: 5.0.194
- AWSPowershell: 5.0.176
- DockerMsftProvider: 1.0.0.8
- MarkdownPS: 1.10
- Microsoft.Graph: 2.36.1
- Microsoft.Graph: 2.36.0
- Pester: 3.4.0, 5.7.1
- PowerShellGet: 1.0.0.1, 2.2.5
- PSScriptAnalyzer: 1.25.0
- 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.5.10 |
| Android SDK Build-tools | 37.0.0<br>36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platforms | android-37.0 (rev 1)<br>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 | 37.0.0 |
| 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 |
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 19.0 |
| Android Emulator | 36.4.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 | 37.0.0 |
| 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 |
@@ -44,7 +44,7 @@ function Disable-WindowsUpdate {
Add-Content -Path $profile.AllUsersAllHosts -Value '$ErrorActionPreference="Stop"'
Write-Host "Disable Server Manager on Logon"
Get-ScheduledTask -TaskName ServerManager -ErrorAction SilentlyContinue | Disable-ScheduledTask
Get-ScheduledTask -TaskName ServerManager | Disable-ScheduledTask
Write-Host "Disable 'Allow your PC to be discoverable by other PCs' popup"
New-Item -Path HKLM:\System\CurrentControlSet\Control\Network -Name NewNetworkWindowOff -Force
@@ -15,28 +15,20 @@ $imageMinorVersion = $imageVersionComponents[1]
$imageDataFile = $env:IMAGEDATA_FILE
$githubUrl = "https://github.com/actions/runner-images/blob"
if ((Test-IsWin25-X64) -and $env:INSTALL_VS_2026) {
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-X64) {
} 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-X64) {
} elseif (Test-IsWin22) {
$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-IsWin11-Arm64) -and $env:INSTALL_VS_2026) {
$imageLabel = "windows-11-vs2026-arm64"
$softwareUrl = "${githubUrl}/win11-vs2026-arm64/$imageMajorVersion.$imageMinorVersion/images/windows/Windows11-VS2026-Arm64-Readme.md"
$releaseUrl = "https://github.com/actions/runner-images/releases/tag/win11-vs2026-arm64%2F$imageMajorVersion.$imageMinorVersion"
} elseif (Test-IsWin11-Arm64) {
$imageLabel = "windows-11-arm64"
$softwareUrl = "${githubUrl}/win11-arm64/$imageMajorVersion.$imageMinorVersion/images/windows/Windows11-Arm64-Readme.md"
$releaseUrl = "https://github.com/actions/runner-images/releases/tag/win11-arm64%2F$imageMajorVersion.$imageMinorVersion"
} else {
throw "Invalid platform version is found. Either Windows Server 2022, 2025 or Windows 11 are required"
throw "Invalid platform version is found. Either Windows Server 2022 or 2025 are required"
}
$json = @"
@@ -2,8 +2,7 @@
$shellPath = "C:\shells"
New-Item -Path $shellPath -ItemType Directory | Out-Null
if (Test-IsX64) {
# add a wrapper for C:\msys64\usr\bin\bash.exe
# add a wrapper for C:\msys64\usr\bin\bash.exe
@'
@echo off
setlocal
@@ -12,7 +11,6 @@ IF NOT DEFINED MSYSTEM set MSYSTEM=mingw64
set CHERE_INVOKING=1
C:\msys64\usr\bin\bash.exe -leo pipefail %*
'@ | Out-File -FilePath "$shellPath\msys2bash.cmd" -Encoding ascii
}
# gitbash <--> C:\Program Files\Git\bin\bash.exe
New-Item -ItemType SymbolicLink -Path "$shellPath\gitbash.exe" -Target "$env:ProgramFiles\Git\bin\bash.exe" | Out-Null
@@ -6,7 +6,7 @@
# Set default version to 1 for WSL (aka LXSS - Linux Subsystem)
# The value should be set in the default user registry hive
# https://github.com/actions/runner-images/issues/5760
if (Test-IsWin22-X64) {
if (Test-IsWin22) {
Write-Host "Setting WSL default version to 1"
Mount-RegistryHive `
@@ -37,7 +37,7 @@ if ($LASTEXITCODE -ne 0) {
}
# Enable inheritance for the entire C:\ drive
if (Test-IsWin25-X64) {
if (Test-IsWin25) {
cmd /c "icacls C:\ /inheritance:e /c /q 2>&1" | Out-Null
if ($LASTEXITCODE -ne 0) {
throw "Failed to enable inheritance for C:\ drive"
@@ -101,11 +101,11 @@ $servicesToDisable = @(
'wuauserv'
'DiagTrack'
'dmwappushservice'
$(if(-not (Test-IsWin25-X64)){'PcaSvc'})
$(if(-not (Test-IsWin25)){'PcaSvc'})
'SysMain'
'gupdate'
'gupdatem'
$(if(-not (Test-IsWin25-X64)){'StorSvc'})
$(if(-not (Test-IsWin25)){'StorSvc'})
) | Get-Service -ErrorAction SilentlyContinue
Stop-Service $servicesToDisable
$servicesToDisable.WaitForStatus('Stopped', "00:01:00")
@@ -4,12 +4,6 @@
## Desc: Configure Toolset
################################################################################
if ( Test-IsArm64 ) {
$envVarTemplate = "GOROOT_{0}_{1}_AARCH64"
} else {
$envVarTemplate = "GOROOT_{0}_{1}_X64"
}
$toolEnvConfigs = @{
Python = @{
pathTemplates = @(
@@ -21,7 +15,7 @@ $toolEnvConfigs = @{
pathTemplates = @(
"{0}\bin"
)
envVarTemplate = $envVarTemplate
envVarTemplate = "GOROOT_{0}_{1}_X64"
}
}
@@ -27,8 +27,8 @@ if ($LASTEXITCODE -ne 0) {
throw "Failed to copy HKCU\Software\Microsoft\VisualStudio to HKLM\DEFAULT\Software\Microsoft\VisualStudio"
}
# TortoiseSVN not installed on Windows 2025 and Windows 11 due to Sysprep issues
if (Test-IsWin22-X64) {
# TortoiseSVN not installed on Windows 2025 image due to Sysprep issues
if (-not (Test-IsWin25)) {
# disable TSVNCache.exe
$registryKeyPath = 'HKCU:\Software\TortoiseSVN'
if (-not(Test-Path -Path $registryKeyPath)) {
@@ -42,7 +42,7 @@ if (Test-IsWin22-X64) {
}
}
# Accept by default "Send Diagnostic data to Microsoft" consent.
if (Test-IsWin25-X64) {
if (Test-IsWin25) {
$registryKeyPath = 'HKLM:\DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Privacy'
New-ItemProperty -Path $registryKeyPath -Name PrivacyConsentPresentationVersion -PropertyType DWORD -Value 3 | Out-Null
New-ItemProperty -Path $registryKeyPath -Name PrivacyConsentSettingsValidMask -PropertyType DWORD -Value 4 | Out-Null
@@ -52,7 +52,7 @@ if (Test-IsWin25-X64) {
Dismount-RegistryHive "HKLM\DEFAULT"
# Remove the "installer" (var.install_user) user profile for Windows 2025 image
if (Test-IsWin25-X64) {
if (Test-IsWin25) {
Get-CimInstance -ClassName Win32_UserProfile | where-object {$_.LocalPath -match $env:INSTALL_USER} | Remove-CimInstance -Confirm:$false
& net user $env:INSTALL_USER /DELETE
}
@@ -8,6 +8,7 @@ $avPreference = @(
@{DisableArchiveScanning = $true}
@{DisableAutoExclusions = $true}
@{DisableBehaviorMonitoring = $true}
@{DisableBlockAtFirstSeen = $true}
@{DisableCatchupFullScan = $true}
@{DisableCatchupQuickScan = $true}
@{DisableIntrusionPreventionSystem = $true}
@@ -29,13 +30,6 @@ $avPreference += @(
@{EnableNetworkProtection = "Disabled"}
)
# DisableBlockAtFirstSeen=1 is flagged as a threat by defender and gets remediated (removed) on Windows 11 during build
# Running defender scan later causes false positive alert on older remediation event
# Set this preference only for Windows Servers
if (-not (Test-IsWin11-Arm64)) {
$avPreference += @{DisableBlockAtFirstSeen = $true}
}
$avPreference | Foreach-Object {
$avParams = $_
Set-MpPreference @avParams
@@ -4,10 +4,7 @@
################################################################################
# Stop w3svc service
$w3svcService = Get-Service -Name "w3svc" -ErrorAction SilentlyContinue
if ($w3svcService) {
Stop-Service $w3svcService
}
Stop-Service -Name w3svc
# Install latest apache in chocolatey
$installDir = "C:\tools"
@@ -18,10 +15,7 @@ Stop-Service -Name Apache
Set-Service -Name Apache -StartupType Disabled
# Start w3svc service
$w3svcService = Get-Service -Name "w3svc" -ErrorAction SilentlyContinue
if ($w3svcService) {
Start-Service $w3svcService
}
Start-Service -Name w3svc
# Invoke Pester Tests
Invoke-PesterTests -TestFile "Apache"
@@ -1,31 +0,0 @@
################################################################################
## File: Install-CMake.ps1
## Desc: Install CMake (ARM64 only; x64 is installed via Choco)
## Supply chain security: CMake - checksum validation
################################################################################
# Install CMake
$downloadUrl = Resolve-GithubReleaseAssetUrl `
-Repo "Kitware/CMake" `
-Version "latest" `
-UrlMatchPattern "cmake-*-windows-arm64.msi"
#region Supply chain security - CMake
$packageName = Split-Path $downloadUrl -Leaf
$checksumsUrl = Resolve-GithubReleaseAssetUrl `
-Repo "Kitware/CMake" `
-Version "latest" `
-UrlMatchPattern "cmake-*-SHA-256.txt"
$externalHash = Get-ChecksumFromUrl -Type "SHA256" `
-Url $checksumsUrl `
-FileName $packageName
#endregion
Install-Binary `
-Url $downloadUrl `
-ExtraInstallArgs @("ADD_CMAKE_TO_PATH=System") `
-ExpectedSHA256Sum $externalHash
Update-Environment
Invoke-PesterTests -TestFile "Tools" -TestName "CMake"
@@ -3,15 +3,9 @@
## Desc: Install Google Chrome browser and Chrome WebDriver
################################################################################
if (Test-IsArm64) {
$browserDownloadUrl = "https://dl.google.com/tag/s/dl/chrome/install/googlechromestandaloneenterprise_arm64.msi"
} else {
$browserDownloadUrl = "https://dl.google.com/tag/s/dl/chrome/install/googlechromestandaloneenterprise64.msi"
}
# Download and install latest Chrome browser
Install-Binary `
-Url $browserDownloadUrl `
-Url 'https://dl.google.com/tag/s/dl/chrome/install/googlechromestandaloneenterprise64.msi' `
-ExpectedSubject 'CN=Google LLC, O=Google LLC, L=Mountain View, S=California, C=US, SERIALNUMBER=3582691, OID.2.5.4.15=Private Organization, OID.1.3.6.1.4.1.311.60.2.1.2=Delaware, OID.1.3.6.1.4.1.311.60.2.1.3=US'
# Prepare firewall rules
@@ -41,7 +41,7 @@ if ($LastExitCode -ne 0) {
# https://github.com/Azure/azure-cli/issues/18766
New-Item -ItemType SymbolicLink -Path "C:\Windows\SysWOW64\docker.exe" -Target "C:\Windows\System32\docker.exe"
if (-not (Test-IsWin25-X64)) {
if (-not (Test-IsWin25)) {
Write-Host "Download docker images"
$dockerImages = (Get-ToolsetContent).docker.images
foreach ($dockerImage in $dockerImages) {
@@ -82,14 +82,9 @@ function Install-DotnetSDK {
# If installation failed, tests will fail anyway
#region Supply chain security
if (Test-IsArm64) {
$dotnetArch = "arm64"
} else {
$dotnetArch = "x64"
}
$releasesJsonUri = "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/${DotnetVersion}/releases.json"
$releasesData = (Invoke-DownloadWithRetry $releasesJsonUri) | Get-Item | Get-Content | ConvertFrom-Json
$distributorFileHash = $releasesData.releases.sdks.Where({ $_.version -eq $SDKVersion }).files.Where({ $_.name -eq "dotnet-sdk-win-$dotnetArch.zip" }).hash
$distributorFileHash = $releasesData.releases.sdks.Where({ $_.version -eq $SDKVersion }).files.Where({ $_.name -eq 'dotnet-sdk-win-x64.zip' }).hash
Test-FileChecksum $zipPath -ExpectedSHA512Sum $distributorFileHash
#endregion
}
@@ -102,9 +97,11 @@ $installScriptPath = Invoke-DownloadWithRetry -Url "https://dot.net/v1/dotnet-in
# Visual Studio 2022 pre-creates sdk-manifests/8.0.100 folder, causing dotnet-install to skip manifests creation
# https://github.com/actions/runner-images/issues/11402
$sdkManifestPath = "C:\Program Files\dotnet\sdk-manifests\8.0.100"
if (Test-Path $sdkManifestPath) {
Move-Item -Path $sdkManifestPath -Destination $env:TEMP_DIR -ErrorAction Stop
if ((Test-IsWin22) -or (Test-IsWin25)) {
$sdkManifestPath = "C:\Program Files\dotnet\sdk-manifests\8.0.100"
if (Test-Path $sdkManifestPath) {
Move-Item -Path $sdkManifestPath -Destination $env:TEMP_DIR -ErrorAction Stop
}
}
# Install and warm up dotnet
@@ -125,10 +122,12 @@ foreach ($dotnetVersion in $dotnetToolset.versions) {
# Replace manifests inside sdk-manifests/8.0.100 folder with ones from Visual Studio
# https://github.com/actions/runner-images/issues/11402
if (Test-Path "${env:TEMP_DIR}\8.0.100") {
Get-ChildItem -Path "${env:TEMP_DIR}\8.0.100" | ForEach-Object {
Remove-Item -Path "$sdkManifestPath\$($_.BaseName)" -Recurse -Force | Out-Null
Move-Item -Path $_.FullName -Destination $sdkManifestPath -Force -ErrorAction Stop
if ((Test-IsWin22) -or (Test-IsWin25)) {
if (Test-Path "${env:TEMP_DIR}\8.0.100") {
Get-ChildItem -Path "${env:TEMP_DIR}\8.0.100" | ForEach-Object {
Remove-Item -Path "$sdkManifestPath\$($_.BaseName)" -Recurse -Force | Out-Null
Move-Item -Path $_.FullName -Destination $sdkManifestPath -Force -ErrorAction Stop
}
}
}
@@ -3,12 +3,6 @@
## Desc: Install Edge WebDriver and configure Microsoft Edge
################################################################################
if (Test-IsArm64) {
$driverArch = "arm64"
} else {
$driverArch = "win64"
}
# Disable Edge auto-updates
Rename-Item -Path "C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe" -NewName "Disabled_MicrosoftEdgeUpdate.exe" -ErrorAction Stop
@@ -26,7 +20,7 @@ $versionInfoFile = Invoke-DownloadWithRetry -Url $versionInfoUrl -Path "$edgeDri
$latestVersion = Get-Content -Path $versionInfoFile
Write-Host "Download Microsoft Edge WebDriver..."
$downloadUrl = "https://msedgedriver.microsoft.com/$latestVersion/edgedriver_$driverArch.zip"
$downloadUrl = "https://msedgedriver.microsoft.com/$latestVersion/edgedriver_win64.zip"
$archivePath = Invoke-DownloadWithRetry $downloadUrl
Write-Host "Expand Microsoft Edge WebDriver archive..."
@@ -4,25 +4,17 @@
## Supply chain security: Firefox browser - checksum validation
################################################################################
if (Test-IsArm64) {
$browserArch = "win64-aarch64"
$driverArch = "win-aarch64"
} else {
$browserArch = "win64"
$driverArch = "win64"
}
# Install and configure Firefox browser
Write-Host "Get the latest Firefox version..."
$versionsManifest = Invoke-RestMethod "https://product-details.mozilla.org/1.0/firefox_versions.json"
Write-Host "Install Firefox browser..."
$installerUrl = "https://download.mozilla.org/?product=firefox-$($versionsManifest.LATEST_FIREFOX_VERSION)&os=$browserArch&lang=en-US"
$installerUrl = "https://download.mozilla.org/?product=firefox-$($versionsManifest.LATEST_FIREFOX_VERSION)&os=win64&lang=en-US"
$hashUrl = "https://archive.mozilla.org/pub/firefox/releases/$($versionsManifest.LATEST_FIREFOX_VERSION)/SHA256SUMS"
$externalHash = Get-ChecksumFromUrl -Type "SHA256" `
-Url $hashUrl `
-FileName "$browserArch/en-US/Firefox Setup*exe"
-FileName "win64/en-US/Firefox Setup*exe"
Install-Binary -Type EXE `
-Url $installerUrl `
@@ -54,7 +46,7 @@ Write-Host "Download Gecko WebDriver WebDriver..."
$geckoDriverDownloadUrl = Resolve-GithubReleaseAssetUrl `
-Repo "mozilla/geckodriver" `
-Version $geckoDriverVersion `
-UrlMatchPattern "geckodriver-*-$driverArch.zip"
-UrlMatchPattern "geckodriver-*-win64.zip"
$geckoDriverArchPath = Invoke-DownloadWithRetry $geckoDriverDownloadUrl
Write-Host "Expand Gecko WebDriver archive..."
+2 -7
View File
@@ -4,17 +4,12 @@
## Supply chain security: Git - checksum validation, Hub CLI - managed by package manager
################################################################################
if (Test-IsArm64) {
$gitArch = "arm64"
} else {
$gitArch = "64-bit"
}
# Install the latest version of Git for Windows
$downloadUrl = Resolve-GithubReleaseAssetUrl `
-Repo "git-for-windows/git" `
-Version "latest" `
-UrlMatchPattern "Git-*-$gitArch.exe"
-UrlMatchPattern "Git-*-64-bit.exe"
$externalHash = Get-ChecksumFromGithubRelease `
-Repo "git-for-windows/git" `
@@ -4,17 +4,12 @@
## Supply chain security: GitHub CLI - checksum validation
################################################################################
if (Test-IsArm64) {
$ghArch = "arm64"
} else {
$ghArch = "amd64"
}
Write-Host "Get the latest gh version..."
$downloadUrl = Resolve-GithubReleaseAssetUrl `
-Repo "cli/cli" `
-Version "latest" `
-UrlMatchPattern "gh_*_windows_$ghArch.msi"
-UrlMatchPattern "gh_*_windows_amd64.msi"
$checksumsUrl = Resolve-GithubReleaseAssetUrl `
-Repo "cli/cli" `
@@ -30,7 +30,7 @@ Add-MachinePathItem "$cabalDir\bin"
Update-Environment
# Get 1 or 3 latest versions of GHC depending on the OS version
If (Test-IsWin25-X64) {
If (Test-IsWin25) {
$numberOfVersions = 1
} else {
$numberOfVersions = 3
@@ -19,8 +19,8 @@ function Set-JavaPath {
exit 1
}
Write-Host "Set 'JAVA_HOME_${Version}_$($Architecture.ToUpper())' environmental variable as $javaPath"
[Environment]::SetEnvironmentVariable("JAVA_HOME_${Version}_$($Architecture.ToUpper())", $javaPath, "Machine")
Write-Host "Set 'JAVA_HOME_${Version}_X64' environmental variable as $javaPath"
[Environment]::SetEnvironmentVariable("JAVA_HOME_${Version}_X64", $javaPath, "Machine")
if ($Default) {
# Clean up any other Java folders from PATH to make sure that they won't conflict with each other
@@ -91,12 +91,6 @@ function Install-JavaJDK {
New-Item -ItemType File -Path $javaVersionPath -Name "$Architecture.complete" | Out-Null
}
if (Test-IsArm64) {
$javaArch = "aarch64"
} else {
$javaArch = "x64"
}
$toolsetJava = (Get-ToolsetContent).java
$defaultVersion = $toolsetJava.default
$jdkVersionsToInstall = $toolsetJava.versions
@@ -104,12 +98,12 @@ $jdkVersionsToInstall = $toolsetJava.versions
foreach ($jdkVersionToInstall in $jdkVersionsToInstall) {
$isDefaultVersion = $jdkVersionToInstall -eq $defaultVersion
Install-JavaJDK -JDKVersion $jdkVersionToInstall -Architecture $javaArch
Install-JavaJDK -JDKVersion $jdkVersionToInstall
if ($isDefaultVersion) {
Set-JavaPath -Version $jdkVersionToInstall -Architecture $javaArch -Default
Set-JavaPath -Version $jdkVersionToInstall -Default
} else {
Set-JavaPath -Version $jdkVersionToInstall -Architecture $javaArch
Set-JavaPath -Version $jdkVersionToInstall
}
}
+3 -29
View File
@@ -1,36 +1,10 @@
################################################################################
## File: Install-LLVM.ps1
## Desc: Install the stable version of llvm and clang compilers
## Desc: Install the latest stable version of llvm and clang compilers
################################################################################
$llvmVersion = (Get-ToolsetContent).llvm.version
if (Test-IsArm64) {
$installDir = "C:\Program Files\LLVM"
Write-Host "Resolve LLVM $llvmVersion ARM64 download URL"
$downloadUrl = Resolve-GithubReleaseAssetUrl `
-Repository "llvm/llvm-project" `
-Version $llvmVersion `
-UrlMatchPattern "clang*llvm-*-aarch64-pc-windows-msvc.tar.xz"
Write-Host "Download LLVM $llvmVersion ARM64 archive"
$archivePath = Invoke-DownloadWithRetry $downloadUrl
Write-Host "Extract LLVM archive"
$tarPath = $archivePath -replace '\.xz$'
Expand-7ZipArchive -Path $archivePath -DestinationPath (Split-Path $archivePath)
Expand-7ZipArchive -Path $tarPath -DestinationPath $env:TEMP_DIR
Write-Host "Install LLVM to $installDir"
$extractedDir = Get-ChildItem -Path $env:TEMP_DIR -Directory -Filter "clang+llvm-*" | Select-Object -First 1
Move-Item -Path $extractedDir.FullName -Destination $installDir -Force
Add-MachinePathItem (Join-Path $installDir "bin")
Update-Environment
} else {
$latestChocoVersion = Resolve-ChocoPackageVersion -PackageName "llvm" -TargetVersion $llvmVersion
Install-ChocoPackage llvm -ArgumentList '--version', $latestChocoVersion
}
$latestChocoVersion = Resolve-ChocoPackageVersion -PackageName "llvm" -TargetVersion $llvmVersion
Install-ChocoPackage llvm -ArgumentList '--version', $latestChocoVersion
Invoke-PesterTests -TestFile "LLVM"
@@ -9,16 +9,14 @@ if ($LASTEXITCODE -ne 0) {
throw "Installation of Microsoft.PowerShell.Utility.Activities failed with exit code $LASTEXITCODE"
}
if (Test-IsX64) {
Write-Host "NGen: update x64 native images..."
& $env:SystemRoot\Microsoft.NET\Framework64\v4.0.30319\ngen.exe update | Out-Null
if ($LASTEXITCODE -ne 0) {
throw "Update of x64 native images failed with exit code $LASTEXITCODE"
}
Write-Host "NGen: update x86 native images..."
& $env:SystemRoot\Microsoft.NET\Framework\v4.0.30319\ngen.exe update | Out-Null
if ($LASTEXITCODE -ne 0) {
throw "Update of x86 native images failed with exit code $LASTEXITCODE"
}
Write-Host "NGen: update x64 native images..."
& $env:SystemRoot\Microsoft.NET\Framework64\v4.0.30319\ngen.exe update | Out-Null
if ($LASTEXITCODE -ne 0) {
throw "Update of x64 native images failed with exit code $LASTEXITCODE"
}
Write-Host "NGen: update x86 native images..."
& $env:SystemRoot\Microsoft.NET\Framework\v4.0.30319\ngen.exe update | Out-Null
if ($LASTEXITCODE -ne 0) {
throw "Update of x86 native images failed with exit code $LASTEXITCODE"
}
@@ -4,10 +4,7 @@
################################################################################
# Stop w3svc service
$w3svcService = Get-Service -Name "w3svc" -ErrorAction SilentlyContinue
if ($w3svcService) {
Stop-Service $w3svcService
}
Stop-Service -Name w3svc
# Install latest nginx in chocolatey
$installDir = "C:\tools"
@@ -18,10 +15,7 @@ Stop-Service -Name nginx
Set-Service -Name nginx -StartupType Disabled
# Start w3svc service
$w3svcService = Get-Service -Name "w3svc" -ErrorAction SilentlyContinue
if ($w3svcService) {
Start-Service $w3svcService
}
Start-Service -Name w3svc
# Invoke Pester Tests
Invoke-PesterTests -TestFile "Nginx"
@@ -1,24 +0,0 @@
################################################################################
## File: Install-Ninja.ps1
## Desc: Install Ninja build system (ARM64 only; x64 is installed via Choco)
################################################################################
$installDir = "C:\Tools\Ninja"
Write-Host "Resolve Ninja latest ARM64 download URL"
$downloadUrl = Resolve-GithubReleaseAssetUrl `
-Repository "ninja-build/ninja" `
-Version "latest" `
-UrlMatchPattern "ninja-winarm64.zip"
Write-Host "Download Ninja ARM64 archive"
$zipPath = Invoke-DownloadWithRetry $downloadUrl
Write-Host "Install Ninja to $installDir"
New-Item -ItemType Directory -Path $installDir -Force | Out-Null
Expand-7ZipArchive -Path $zipPath -DestinationPath $installDir
Add-MachinePathItem $installDir
Update-Environment
Invoke-PesterTests -TestFile "Tools" -TestName "Ninja"
@@ -7,18 +7,12 @@
$prefixPath = 'C:\npm\prefix'
$cachePath = 'C:\npm\cache'
if (Test-IsArm64) {
$nodeArch = "arm64"
} else {
$nodeArch = "x64"
}
New-Item -Path $prefixPath -Force -ItemType Directory
New-Item -Path $cachePath -Force -ItemType Directory
$defaultVersion = (Get-ToolsetContent).node.default
$nodeVersion = (Get-GithubReleasesByVersion -Repo "nodejs/node" -Version "${defaultVersion}").version | Select-Object -First 1
$downloadUrl = "https://nodejs.org/dist/v${nodeVersion}/node-v${nodeVersion}-${nodeArch}.msi"
$downloadUrl = "https://nodejs.org/dist/v${nodeVersion}/node-v${nodeVersion}-x64.msi"
$packageName = Split-Path $downloadUrl -Leaf
$externalHash = Get-ChecksumFromUrl -Type "SHA256" `
@@ -4,12 +4,7 @@
## Supply chain security: checksum validation
################################################################################
if (Test-IsArm64) {
$openSSLArch = "ARM"
} else {
$openSSLArch = "INTEL"
}
$arch = 'INTEL'
$bits = '64'
$light = $false
$installerType = "exe"
@@ -27,7 +22,7 @@ $installerHash = $null
foreach ($key in $installerNames) {
$installer = $installersAvailable.$key
if (($installer.light -eq $light) -and ($installer.arch -eq $openSSLArch) -and ($installer.bits -eq $bits) -and ($installer.installer -eq $installerType) -and ($installer.basever -like $version)) {
if (($installer.light -eq $light) -and ($installer.arch -eq $arch) -and ($installer.bits -eq $bits) -and ($installer.installer -eq $installerType) -and ($installer.basever -like $version)) {
$installerUrl = $installer.url
$installerHash = $installer.sha512
}
@@ -6,12 +6,6 @@
$ErrorActionPreference = "Stop"
if (Test-IsArm64) {
$pwshArch = "arm64"
} else {
$pwshArch = "x64"
}
$tempDir = Join-Path ([System.IO.Path]::GetTempPath()) ([System.IO.Path]::GetRandomFileName())
New-Item -ItemType Directory -Path $tempDir -Force -ErrorAction SilentlyContinue | Out-Null
try {
@@ -24,7 +18,7 @@ try {
$releases = $metadata.LTSReleaseTag -replace '^v'
foreach ($release in $releases) {
if ($release -like "${pwshMajorMinor}*") {
$downloadUrl = "https://github.com/PowerShell/PowerShell/releases/download/v${release}/PowerShell-${release}-win-${pwshArch}.msi"
$downloadUrl = "https://github.com/PowerShell/PowerShell/releases/download/v${release}/PowerShell-${release}-win-x64.msi"
break
}
}
+1 -8
View File
@@ -6,13 +6,6 @@
Install-ChocoPackage R.Project
Install-ChocoPackage rtools
if (Test-IsArm64) {
$rscriptPathPattern = "C:\Program Files (x86)\R\*\bin\x64"
} else {
$rscriptPathPattern = "C:\Program Files\R\*\bin\x64"
}
$rscriptPath = Resolve-Path $rscriptPathPattern
$rscriptPath = Resolve-Path "C:\Program Files\R\*\bin\x64"
Add-MachinePathItem $rscriptPath
Invoke-PesterTests -TestFile "Tools" -TestName "R"
+2 -15
View File
@@ -63,14 +63,6 @@ function Set-DefaultRubyVersion {
Add-MachinePathItem -PathItem $rubyDir | Out-Null
}
if (Test-IsArm64) {
$downloadArch = "arm"
$toolcacheArch = "aarch64"
} else {
$downloadArch = "x64"
$toolcacheArch = "x64"
}
# Install Ruby
$rubyTools = (Get-ToolsetContent).toolcache | Where-Object { $_.name -eq "Ruby" }
$rubyToolVersions = $rubyTools.versions
@@ -81,14 +73,9 @@ foreach ($rubyVersion in $rubyToolVersions) {
$downloadUrl = Resolve-GithubReleaseAssetUrl `
-Repo "oneclick/rubyinstaller2" `
-Version "$rubyVersion*" `
-UrlMatchPattern "*-${downloadArch}.7z"
-UrlMatchPattern "*-x64.7z"
$packagePath = Invoke-DownloadWithRetry $downloadUrl
if (Test-IsArm64) {
Install-Ruby -PackagePath $packagePath -Architecture $toolcacheArch
} else {
Install-Ruby -PackagePath $packagePath -Architecture $toolcacheArch
}
Install-Ruby -PackagePath $packagePath
}
Set-DefaultRubyVersion -Version $rubyTools.default -Arch $rubyTools.arch
+8 -19
View File
@@ -4,22 +4,16 @@
## Supply chain security: checksum validation for bootstrap, managed by rustup for workloads
################################################################################
if (Test-IsArm64) {
$rustArch = "aarch64"
} else {
$rustArch = "x86_64"
}
# Rust Env
$env:RUSTUP_HOME = "C:\Users\Default\.rustup"
$env:CARGO_HOME = "C:\Users\Default\.cargo"
# Download the latest rustup-init.exe for Windows
# Download the latest rustup-init.exe for Windows x64
# See https://rustup.rs/#
$rustupPath = Invoke-DownloadWithRetry "https://static.rust-lang.org/rustup/dist/${rustArch}-pc-windows-msvc/rustup-init.exe"
$rustupPath = Invoke-DownloadWithRetry "https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe"
#region Supply chain security
$distributorFileHash = (Invoke-RestMethod -Uri "https://static.rust-lang.org/rustup/dist/${rustArch}-pc-windows-msvc/rustup-init.exe.sha256").Trim()
$distributorFileHash = (Invoke-RestMethod -Uri 'https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe.sha256').Trim()
Test-FileChecksum $rustupPath -ExpectedSHA256Sum $distributorFileHash
#endregion
@@ -34,23 +28,18 @@ Add-DefaultPathItem "%USERPROFILE%\.cargo\bin"
# Add Rust binaries to the path
$env:Path += ";$env:CARGO_HOME\bin"
if (Test-IsArm64) {
rustup target add aarch64-pc-windows-msvc
} else {
# Add i686 target for building 32-bit binaries
rustup target add i686-pc-windows-msvc
# Add i686 target for building 32-bit binaries
rustup target add i686-pc-windows-msvc
# Add target for building mingw-w64 binaries
rustup target add x86_64-pc-windows-gnu
}
# Add target for building mingw-w64 binaries
rustup target add x86_64-pc-windows-gnu
# Install common tools
rustup component add rustfmt clippy
if ($LASTEXITCODE -ne 0) {
throw "Rust component installation failed with exit code $LASTEXITCODE"
}
if ((Test-IsWin22-X64) -or (Test-IsWin11-Arm64)) {
if (-not (Test-IsWin25)) {
cargo install --locked bindgen-cli cbindgen cargo-audit cargo-outdated
if ($LASTEXITCODE -ne 0) {
throw "Rust tools installation failed with exit code $LASTEXITCODE"
@@ -4,12 +4,6 @@
################################################################################
$vsToolset = (Get-ToolsetContent).visualStudio
if (Test-IsArm64) {
$vsArch = "arm64"
} else {
$vsArch = "x64"
}
# Install Visual Studio for Windows 22 and 25 with InstallChannel
Install-VisualStudio `
-Version $vsToolset.subversion `
@@ -17,8 +11,7 @@ Install-VisualStudio `
-Channel $vsToolset.channel `
-InstallChannelUri $vsToolset.installChannelUri `
-RequiredComponents $vsToolset.workloads `
-ExtraArgs "--allWorkloads --includeRecommended --remove Component.CPython3.x64" `
-Architecture $vsArch
-ExtraArgs "--allWorkloads --includeRecommended --remove Component.CPython3.x64"
# Find the version of VS installed for this instance
# Only supports a single instance
@@ -34,7 +27,7 @@ $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-IsWin22-X64) {
if (Test-IsWin22) {
# Install Windows 10 SDK version 10.0.17763
Install-Binary -Type EXE `
-Url 'https://go.microsoft.com/fwlink/p/?LinkID=2033908' `
@@ -49,7 +42,7 @@ Install-Binary -Type EXE `
-ExpectedSubject $(Get-MicrosoftPublisher)
# Enable Windows Desktop Debuggers (cdb.exe) on Windows Server 2025
if (Test-IsWin25-X64) {
if (Test-IsWin25) {
$installerEntry = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* `
| Where-Object { $_.DisplayName -match "Windows Software Development Kit" } `
| Sort-Object DisplayVersion -Descending | Select-Object -First 1
+1 -4
View File
@@ -4,12 +4,9 @@
################################################################################
# Requires Windows SDK with the same version number as the WDK
if (Test-IsWin22-X64) {
if (Test-IsWin22) {
# SDK is available through Visual Studio
$wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2324617"
} elseif (Test-IsWin11-Arm64) {
# SDK is available through Visual Studio
$wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2335869"
} else {
throw "Invalid version of Visual Studio is found. Windows Server 2022 is required"
}
@@ -49,7 +49,7 @@ if ($LASTEXITCODE -ne 0) {
throw "Failed to clean npm cache"
}
if (Test-IsWin25-X64) {
if (Test-IsWin25) {
$directoriesToCompact = @(
"C:\Program Files (x86)\Android",
"C:\Program Files\dotnet",
@@ -21,7 +21,7 @@ Import-Module (Join-Path $PSScriptRoot "SoftwareReport.VisualStudio.psm1") -Disa
$softwareReport = [SoftwareReport]::new($(Build-OSInfoSection))
$optionalFeatures = $softwareReport.Root.AddHeader("Windows features")
$optionalFeatures.AddToolVersion("Windows Subsystem for Linux (WSLv1):", "Enabled")
if (Test-IsWin25-X64) {
if (Test-IsWin25) {
$optionalFeatures.AddToolVersion("Windows Subsystem for Linux (Default, WSLv2):", $(Get-WSL2Version))
}
$installedSoftware = $softwareReport.Root.AddHeader("Installed Software")
@@ -44,9 +44,7 @@ $packageManagement = $installedSoftware.AddHeader("Package Management")
$packageManagement.AddToolVersion("Chocolatey", $(Get-ChocoVersion))
$packageManagement.AddToolVersion("Composer", $(Get-ComposerVersion))
$packageManagement.AddToolVersion("Helm", $(Get-HelmVersion))
if (Test-IsX64) {
$packageManagement.AddToolVersion("Miniconda", $(Get-CondaVersion))
}
$packageManagement.AddToolVersion("Miniconda", $(Get-CondaVersion))
$packageManagement.AddToolVersion("NPM", $(Get-NPMVersion))
$packageManagement.AddToolVersion("NuGet", $(Get-NugetVersion))
$packageManagement.AddToolVersion("pip", $(Get-PipVersion))
@@ -72,17 +70,13 @@ $tools.AddToolVersion("azcopy", $(Get-AzCopyVersion))
$tools.AddToolVersion("Bazel", $(Get-BazelVersion))
$tools.AddToolVersion("Bazelisk", $(Get-BazeliskVersion))
$tools.AddToolVersion("Bicep", $(Get-BicepVersion))
if (Test-IsX64) {
$tools.AddToolVersion("Cabal", $(Get-CabalVersion))
}
$tools.AddToolVersion("Cabal", $(Get-CabalVersion))
$tools.AddToolVersion("CMake", $(Get-CMakeVersion))
$tools.AddToolVersion("CodeQL Action Bundle", $(Get-CodeQLBundleVersion))
if (Test-IsX64) {
$tools.AddToolVersion("Docker", $(Get-DockerVersion))
$tools.AddToolVersion("Docker Compose v2", $(Get-DockerComposeVersionV2))
$tools.AddToolVersion("Docker-wincred", $(Get-DockerWincredVersion))
$tools.AddToolVersion("ghc", $(Get-GHCVersion))
}
$tools.AddToolVersion("Docker", $(Get-DockerVersion))
$tools.AddToolVersion("Docker Compose v2", $(Get-DockerComposeVersionV2))
$tools.AddToolVersion("Docker-wincred", $(Get-DockerWincredVersion))
$tools.AddToolVersion("ghc", $(Get-GHCVersion))
$tools.AddToolVersion("Git", $(Get-GitVersion))
$tools.AddToolVersion("Git LFS", $(Get-GitLFSVersion))
$tools.AddToolVersion("ImageMagick", $(Get-ImageMagickVersion))
@@ -90,42 +84,36 @@ $tools.AddToolVersion("InnoSetup", $(Get-InnoSetupVersion))
$tools.AddToolVersion("jq", $(Get-JQVersion))
$tools.AddToolVersion("Kind", $(Get-KindVersion))
$tools.AddToolVersion("Kubectl", $(Get-KubectlVersion))
if (-not (Test-IsWin25-X64)) {
if (-not (Test-IsWin25)) {
$tools.AddToolVersion("Mercurial", $(Get-MercurialVersion))
}
$tools.AddToolVersion("gcc", $(Get-GCCVersion))
$tools.AddToolVersion("gdb", $(Get-GDBVersion))
$tools.AddToolVersion("GNU Binutils", $(Get-GNUBinutilsVersion))
$tools.AddToolVersion("Newman", $(Get-NewmanVersion))
if (-not (Test-IsWin25-X64)) {
if (-not (Test-IsWin25)) {
$tools.AddToolVersion("NSIS", $(Get-NSISVersion))
}
$tools.AddToolVersion("OpenSSL", $(Get-OpenSSLVersion))
$tools.AddToolVersion("Packer", $(Get-PackerVersion))
$tools.AddToolVersion("Pulumi", $(Get-PulumiVersion))
$tools.AddToolVersion("R", $(Get-RVersion))
if (Test-IsX64) {
$tools.AddToolVersion("Service Fabric SDK", $(Get-ServiceFabricSDKVersion))
}
$tools.AddToolVersion("Service Fabric SDK", $(Get-ServiceFabricSDKVersion))
$tools.AddToolVersion("Stack", $(Get-StackVersion))
if (Test-IsWin22-X64) {
if (-not (Test-IsWin25)) {
$tools.AddToolVersion("Subversion (SVN)", $(Get-SVNVersion))
}
$tools.AddToolVersion("Swig", $(Get-SwigVersion))
$tools.AddToolVersion("VSWhere", $(Get-VSWhereVersion))
$tools.AddToolVersion("WinAppDriver", $(Get-WinAppDriver))
if (Test-IsX64) {
$tools.AddToolVersion("WiX Toolset", $(Get-WixVersion))
}
$tools.AddToolVersion("WiX Toolset", $(Get-WixVersion))
$tools.AddToolVersion("yamllint", $(Get-YAMLLintVersion))
if (Test-IsX64) {
$tools.AddToolVersion("zstd", $(Get-ZstdVersion))
}
$tools.AddToolVersion("zstd", $(Get-ZstdVersion))
$tools.AddToolVersion("Ninja", $(Get-NinjaVersion))
# CLI Tools
$cliTools = $installedSoftware.AddHeader("CLI Tools")
if (-not (Test-IsWin25-X64)) {
if (-not (Test-IsWin25)) {
$cliTools.AddToolVersion("Alibaba Cloud CLI", $(Get-AlibabaCLIVersion))
}
$cliTools.AddToolVersion("AWS CLI", $(Get-AWSCLIVersion))
@@ -144,7 +132,7 @@ $rustTools.AddToolVersion("Rustdoc", $(Get-RustdocVersion))
$rustTools.AddToolVersion("Rustup", $(Get-RustupVersion))
$rustToolsPackages = $rustTools.AddHeader("Packages")
if (-not (Test-IsWin25-X64)) {
if (-not (Test-IsWin25)) {
$rustToolsPackages.AddToolVersion("bindgen", $(Get-BindgenVersion))
$rustToolsPackages.AddToolVersion("cargo-audit", $(Get-CargoAuditVersion))
$rustToolsPackages.AddToolVersion("cargo-outdated", $(Get-CargoOutdatedVersion))
@@ -162,32 +150,26 @@ $browsersAndWebdrivers.AddHeader("Environment variables").AddTable($(Build-Brows
$installedSoftware.AddHeader("Java").AddTable($(Get-JavaVersions))
# Shells
if (Test-IsX64) {
$installedSoftware.AddHeader("Shells").AddTable($(Get-ShellTarget))
}
$installedSoftware.AddHeader("Shells").AddTable($(Get-ShellTarget))
# MSYS2
if (Test-IsX64) {
$msys2 = $installedSoftware.AddHeader("MSYS2")
$msys2.AddToolVersion("Pacman", $(Get-PacmanVersion))
$msys2 = $installedSoftware.AddHeader("MSYS2")
$msys2.AddToolVersion("Pacman", $(Get-PacmanVersion))
$notes = @'
$notes = @'
Location: C:\msys64
Note: MSYS2 is pre-installed on image but not added to PATH.
'@
$msys2.AddHeader("Notes").AddNote($notes)
}
$msys2.AddHeader("Notes").AddNote($notes)
# Cached Tools
$installedSoftware.AddHeader("Cached Tools").AddNodes($(Build-CachedToolsSection))
# Databases
if (Test-IsX64) {
$databases = $installedSoftware.AddHeader("Databases")
$databases.AddHeader("PostgreSQL").AddTable($(Get-PostgreSQLTable))
$databases.AddHeader("MongoDB").AddTable($(Get-MongoDBTable))
}
$databases = $installedSoftware.AddHeader("Databases")
$databases.AddHeader("PostgreSQL").AddTable($(Get-PostgreSQLTable))
$databases.AddHeader("MongoDB").AddTable($(Get-MongoDBTable))
# Database tools
$databaseTools = $installedSoftware.AddHeader("Database tools")
@@ -196,10 +178,9 @@ $databaseTools.AddToolVersion("DacFx", $(Get-DacFxVersion))
$databaseTools.AddToolVersion("MySQL", $(Get-MySQLVersion))
$databaseTools.AddToolVersion("SQL OLEDB Driver 18", $(Get-SQLOLEDBDriver18Version))
$databaseTools.AddToolVersion("SQL OLEDB Driver 19", $(Get-SQLOLEDBDriver19Version))
if (Test-IsX64) {
$databaseTools.AddToolVersion("SQLPS", $(Get-SQLPSVersion))
$databaseTools.AddToolVersion("MongoDB Shell (mongosh)", $(Get-MongoshVersion))
}
$databaseTools.AddToolVersion("SQLPS", $(Get-SQLPSVersion))
$databaseTools.AddToolVersion("MongoDB Shell (mongosh)", $(Get-MongoshVersion))
# Web Servers
$installedSoftware.AddHeader("Web Servers").AddTable($(Build-WebServersSection))
@@ -235,15 +216,13 @@ $psModules.AddNodes($(Get-PowerShellModules))
# Android
if (Test-IsX64) {
$android = $installedSoftware.AddHeader("Android")
$android.AddTable($(Build-AndroidTable))
$android = $installedSoftware.AddHeader("Android")
$android.AddTable($(Build-AndroidTable))
$android.AddHeader("Environment variables").AddTable($(Build-AndroidEnvironmentTable))
}
$android.AddHeader("Environment variables").AddTable($(Build-AndroidEnvironmentTable))
# Cached Docker images
if (Test-IsWin22-X64) {
if (-not (Test-IsWin25)) {
$installedSoftware.AddHeader("Cached Docker images").AddTable($(Get-CachedDockerImagesTableData))
}
@@ -34,7 +34,7 @@ function Build-CachedToolsSection
[ToolVersionsListNode]::new("Go", $(Get-ToolcacheGoVersions), '^\d+\.\d+', 'List'),
[ToolVersionsListNode]::new("Node.js", $(Get-ToolcacheNodeVersions), '^\d+', 'List'),
[ToolVersionsListNode]::new("Python", $(Get-ToolcachePythonVersions), '^\d+\.\d+', 'List'),
$(if (-not (Test-IsWin11-Arm64)) { [ToolVersionsListNode]::new("PyPy", $(Get-ToolcachePyPyVersions), '^\d+\.\d+', 'List') }),
[ToolVersionsListNode]::new("PyPy", $(Get-ToolcachePyPyVersions), '^\d+\.\d+', 'List'),
[ToolVersionsListNode]::new("Ruby", $(Get-ToolcacheRubyVersions), '^\d+\.\d+', 'List')
) | Where-Object { $_ }
)
}
@@ -297,9 +297,9 @@ function Build-PackageManagementEnvironmentTable {
"Name" = "VCPKG_INSTALLATION_ROOT"
"Value" = $env:VCPKG_INSTALLATION_ROOT
},
$(if (-not (Test-IsWin11-Arm64)) { [PSCustomObject] @{
[PSCustomObject] @{
"Name" = "CONDA"
"Value" = $env:CONDA
} })
) | Where-Object { $_ }
}
)
}
@@ -1,10 +1,6 @@
function Get-JavaVersions {
$defaultJavaPath = $env:JAVA_HOME
if (Test-IsArm64) {
$javaVersions = Get-Item env:JAVA_HOME_*_AARCH64
} else {
$javaVersions = Get-Item env:JAVA_HOME_*_X64
}
$javaVersions = Get-Item env:JAVA_HOME_*_X64
$sortRules = @{
Expression = { [Int32] $_.Name.Split("_")[2] }
Descending = $false
@@ -43,7 +43,7 @@ function Get-VisualStudioExtensions {
)
# WDK
if (-not (Test-IsWin25-X64)) {
if (-not (Test-IsWin25)) {
$wdkVersion = Get-WDKVersion
$wdkPackages = @(
@{Package = 'Windows Driver Kit'; Version = $wdkVersion }
@@ -25,12 +25,6 @@ Export-ModuleMember -Function @(
'Get-TCToolVersionPath'
'Test-IsWin25'
'Test-IsWin22'
'Test-IsWin11'
'Test-IsArm64'
'Test-IsX64'
'Test-IsWin25-X64'
'Test-IsWin22-X64'
'Test-IsWin11-Arm64'
'Expand-7ZipArchive'
'Get-WindowsUpdateStates'
'Invoke-ScriptBlockWithRetry'
@@ -322,38 +322,6 @@ function Get-TCToolVersionPath {
return Join-Path $foundVersion $Arch
}
function Test-IsArm64 {
<#
.SYNOPSIS
Checks if the current Windows operating system is running on an ARM64 architecture.
.DESCRIPTION
This function uses the Get-CimInstance cmdlet to retrieve information
about the current Windows operating system. It then checks if the OSArchitecture
property of the Win32_OperatingSystem class contains the string "ARM 64-bit",
indicating that the operating system is running on an ARM64 processor.
.OUTPUTS
Returns $true if the current Windows operating system is running on ARM64.
Otherwise, returns $false.
#>
(Get-CimInstance -ClassName Win32_OperatingSystem).OSArchitecture -match "ARM 64-bit"
}
function Test-IsX64 {
<#
.SYNOPSIS
Checks if the current Windows operating system is running on an x64 architecture.
.DESCRIPTION
This function uses the Get-CimInstance cmdlet to retrieve information
about the current Windows operating system. It then checks if the OSArchitecture
property of the Win32_OperatingSystem class contains the string "x64",
indicating that the operating system is running on an x64 processor.
.OUTPUTS
Returns $true if the current Windows operating system is running on x64.
Otherwise, returns $false.
#>
(Get-CimInstance -ClassName Win32_OperatingSystem).OSArchitecture -eq "64-bit"
}
function Test-IsWin25 {
<#
.SYNOPSIS
@@ -388,63 +356,6 @@ function Test-IsWin22 {
(Get-CimInstance -ClassName Win32_OperatingSystem).Caption -match "2022"
}
function Test-IsWin11 {
<#
.SYNOPSIS
Checks if the current Windows operating system is Windows 11.
.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 "Windows 11",
indicating that the operating system is Windows 11.
.OUTPUTS
Returns $true if the current Windows operating system is Windows 11.
Otherwise, returns $false.
#>
(Get-CimInstance -ClassName Win32_OperatingSystem).Caption -match "Windows 11"
}
function Test-IsWin25-X64 {
<#
.SYNOPSIS
Checks if the current Windows operating system is Windows Server 2025 running on x64 architecture.
.DESCRIPTION
This function combines the checks from Test-IsWin25 and Test-IsX64 functions to determine if the current Windows operating system is Windows Server 2025 running on an x64 architecture.
.OUTPUTS
Returns $true if the current Windows operating system is Windows Server 2025 running on x64 architecture.
Otherwise, returns $false.
#>
(Test-IsWin25) -and (Test-IsX64)
}
function Test-IsWin22-X64 {
<#
.SYNOPSIS
Checks if the current Windows operating system is Windows Server 2022 running on x64 architecture.
.DESCRIPTION
This function combines the checks from Test-IsWin22 and Test-IsX64 functions to determine if the current Windows operating system is Windows Server 2022 running on an x64 architecture.
.OUTPUTS
Returns $true if the current Windows operating system is Windows Server 2022 running on x64 architecture.
Otherwise, returns $false.
#>
(Test-IsWin22) -and (Test-IsX64)
}
function Test-IsWin11-Arm64 {
<#
.SYNOPSIS
Checks if the current Windows operating system is Windows 11 running on ARM64 architecture.
.DESCRIPTION
This function combines the checks from Test-IsWin11 and Test-IsArm64 functions to determine if the current Windows operating system is Windows 11 running on an ARM64 architecture.
.OUTPUTS
Returns $true if the current Windows operating system is Windows 11 running on ARM64 architecture.
Otherwise, returns $false.
#>
(Test-IsWin11) -and (Test-IsArm64)
}
function Expand-7ZipArchive {
<#
.SYNOPSIS
@@ -32,8 +32,7 @@ Function Install-VisualStudio {
[Parameter(Mandatory)] [String] $Channel,
[String] $InstallChannelUri = "",
[Parameter(Mandatory)] [String[]] $RequiredComponents,
[String] $ExtraArgs = "",
[String] $Architecture = "x64"
[String] $ExtraArgs = ""
)
if ($env:INSTALL_VS_2026) {
@@ -62,7 +61,7 @@ Function Install-VisualStudio {
"channelUri" = $channelUri
"channelId" = $channelId
"productId" = $productId
"arch" = $Architecture
"arch" = "x64"
"add" = $RequiredComponents | ForEach-Object { "$_;includeRecommended" }
}
@@ -1,4 +1,4 @@
Describe "Android SDK" -Skip:(Test-IsArm64) {
Describe "Android SDK" {
$androidToolset = (Get-ToolsetContent).android
$androidInstalledPackages = Get-AndroidInstalledPackages
@@ -11,7 +11,7 @@ Describe "Azure DevOps CLI" {
}
}
Describe "Aliyun CLI" -Skip:(Test-IsWin25-X64) {
Describe "Aliyun CLI" -Skip:(Test-IsWin25) {
It "Aliyun CLI" {
"aliyun version" | Should -ReturnZeroExitCode
}
@@ -58,7 +58,7 @@ Describe "Pulumi" {
}
}
Describe "Svn" -Skip:(-not(Test-IsWin22-X64)) {
Describe "Svn" -Skip:(Test-IsWin25) {
It "svn" {
"svn --version --quiet" | Should -ReturnZeroExitCode
}
@@ -86,7 +86,7 @@ Describe "Julia" {
}
}
Describe "CMake" -Skip:(Test-IsArm64) {
Describe "CMake" {
It "cmake" {
"cmake --version" | Should -ReturnZeroExitCode
}
@@ -98,7 +98,7 @@ Describe "ImageMagick" {
}
}
Describe "Ninja" -Skip:(Test-IsArm64) {
Describe "Ninja" {
BeforeAll {
$ninjaProjectPath = $(Join-Path $env:TEMP_DIR "ninjaproject")
New-item -Path $ninjaProjectPath -ItemType Directory -Force
@@ -1,4 +1,4 @@
Describe "MongoDB" -Skip:(Test-IsWin11-Arm64) {
Describe "MongoDB" {
Context "Version" {
It "<ToolName>" -TestCases @(
@{ ToolName = "mongos" }
@@ -33,7 +33,7 @@ Describe "MongoDB" -Skip:(Test-IsWin11-Arm64) {
}
}
Describe "PostgreSQL" -Skip:(Test-IsWin11-Arm64) {
Describe "PostgreSQL" {
$psqlTests = @(
@{envVar = "PGROOT"; pgPath = Get-EnvironmentVariable "PGROOT" }
@{envVar = "PGBIN"; pgPath = Get-EnvironmentVariable "PGBIN" }
@@ -1,4 +1,4 @@
Describe "Docker" -Skip:(Test-IsWin11-Arm64) {
Describe "Docker" {
It "docker is installed" {
"docker --version" | Should -ReturnZeroExitCode
}
@@ -12,20 +12,20 @@ Describe "Docker" -Skip:(Test-IsWin11-Arm64) {
}
}
Describe "DockerCompose" -Skip:(Test-IsWin11-Arm64) {
Describe "DockerCompose" {
It "docker compose v2" {
"docker compose version" | Should -ReturnZeroExitCode
}
}
Describe "DockerWinCred" -Skip:(Test-IsWin11-Arm64) {
Describe "DockerWinCred" {
It "docker-wincred" {
"docker-credential-wincred version" | Should -ReturnZeroExitCode
}
}
Describe "DockerImages" -Skip:((Test-IsWin25-X64) -or (Test-IsWin11-Arm64)) {
Describe "DockerImages" -Skip:(Test-IsWin25) {
Context "docker images" {
$testCases = (Get-ToolsetContent).docker.images | ForEach-Object { @{ ImageName = $_ } }
+29 -25
View File
@@ -1,29 +1,33 @@
Describe "Haskell" -Skip:(Test-IsWin11-Arm64) {
BeforeDiscovery {
if (Test-IsWin11-Arm64) { return }
$ghcPackagesPath = "c:\ghcup\ghc"
[array] $ghcVersionList = Get-ChildItem -Path $ghcPackagesPath -Filter "*" | ForEach-Object { $_.Name.Trim() }
$ghcCount = $ghcVersionList.Count
$defaultGhcVersion = $ghcVersionList | Sort-Object { [Version] $_ } | Select-Object -Last 1
$ghcDefaultCases = @{
defaultGhcVersion = $defaultGhcVersion
defaultGhcShortVersion = ([version] $defaultGhcVersion).ToString(3)
Describe "Haskell" {
$ghcPackagesPath = "c:\ghcup\ghc"
[array] $ghcVersionList = Get-ChildItem -Path $ghcPackagesPath -Filter "*" | ForEach-Object { $_.Name.Trim() }
$ghcCount = $ghcVersionList.Count
$defaultGhcVersion = $ghcVersionList | Sort-Object {[Version] $_} | Select-Object -Last 1
$ghcDefaultCases = @{
defaultGhcVersion = $defaultGhcVersion
defaultGhcShortVersion = ([version] $defaultGhcVersion).ToString(3)
}
$ghcTestCases = $ghcVersionList | ForEach-Object {
$ghcVersion = $_
$ghcShortVersion = ([version] $ghcVersion).ToString(3)
$binGhcPath = Join-Path $ghcPackagesPath "$ghcShortVersion\bin\ghc.exe"
@{
ghcVersion = $ghcVersion
ghcShortVersion = $ghcShortVersion
binGhcPath = $binGhcPath
}
$ghcTestCases = $ghcVersionList | ForEach-Object {
$ghcVersion = $_
$ghcShortVersion = ([version] $ghcVersion).ToString(3)
$binGhcPath = Join-Path $ghcPackagesPath "$ghcShortVersion\bin\ghc.exe"
@{
ghcVersion = $ghcVersion
ghcShortVersion = $ghcShortVersion
binGhcPath = $binGhcPath
}
}
$ghcupEnvExists = @(
@{envVar = "GHCUP_INSTALL_BASE_PREFIX"}
@{envVar = "GHCUP_MSYS2"}
)
$numberOfVersions = if (Test-IsWin25-X64) { 1 } else { 3 }
}
$ghcupEnvExists = @(
@{envVar = "GHCUP_INSTALL_BASE_PREFIX"}
@{envVar = "GHCUP_MSYS2"}
)
If (Test-IsWin25) {
$numberOfVersions = 1
} else {
$numberOfVersions = 3
}
It "<envVar> environment variable exists" -TestCases $ghcupEnvExists {
+2 -10
View File
@@ -5,17 +5,9 @@ Describe "Java" {
[array] $testCases = $jdkVersions | ForEach-Object { @{Version = $_ } }
BeforeAll {
if (Test-IsArm64) {
$expectedArch = "AARCH64"
} else {
$expectedArch = "X64"
}
}
It "Java <DefaultJavaVersion> is default" -TestCases @(@{ DefaultJavaVersion = $defaultVersion }) {
$actualJavaPath = Get-EnvironmentVariable "JAVA_HOME"
$expectedJavaPath = Get-EnvironmentVariable "JAVA_HOME_${DefaultJavaVersion}_${expectedArch}"
$expectedJavaPath = Get-EnvironmentVariable "JAVA_HOME_${DefaultJavaVersion}_X64"
$actualJavaPath | Should -Not -BeNullOrEmpty
$expectedJavaPath | Should -Not -BeNullOrEmpty
@@ -32,7 +24,7 @@ Describe "Java" {
}
It "Java <Version>" -TestCases $testCases {
$javaVariableValue = Get-EnvironmentVariable "JAVA_HOME_${Version}_${expectedArch}"
$javaVariableValue = Get-EnvironmentVariable "JAVA_HOME_${Version}_X64"
$javaVariableValue | Should -Not -BeNullOrEmpty
$javaPath = Join-Path $javaVariableValue "bin\java"
+2 -2
View File
@@ -3,7 +3,7 @@ BeforeAll {
$originalPath = $env:PATH
}
Describe "MSYS2 packages" -Skip:(Test-IsWin11-Arm64) {
Describe "MSYS2 packages" {
BeforeEach {
$env:PATH = "$msys2Dir;$env:PATH"
}
@@ -31,7 +31,7 @@ Describe "MSYS2 packages" -Skip:(Test-IsWin11-Arm64) {
$mingwTypes = (Get-ToolsetContent).MsysPackages.mingw
foreach ($mingwType in $mingwTypes) {
Describe "$($mingwType.arch) packages" -Skip:(Test-IsWin11-Arm64) {
Describe "$($mingwType.arch) packages" {
$tools = $mingwType.runtime_packages
$execDir = Join-Path "C:\msys64" $mingwType.exec_dir | Join-Path -ChildPath "bin"
@@ -1,4 +1,4 @@
Describe "Miniconda" -Skip:(Test-IsWin11-Arm64) {
Describe "Miniconda" {
It "Miniconda Environment variables is set. " {
${env:CONDA} | Should -Not -BeNullOrEmpty
}
@@ -11,4 +11,4 @@ Describe "Miniconda" -Skip:(Test-IsWin11-Arm64) {
$condaPath | Should -Exist
"$condaPath --version" | Should -ReturnZeroExitCode
}
}
}
+1 -1
View File
@@ -5,7 +5,7 @@ Describe "Rust" {
$env:Path += ";$env:CARGO_HOME\bin"
}
if (Test-IsWin25-X64) {
if (Test-IsWin25) {
$rustTools = @(
@{ToolName = "rustup"; binPath = "C:\Users\Default\.cargo\bin\rustup.exe"}
@{ToolName = "rustc"; binPath = "C:\Users\Default\.cargo\bin\rustc.exe"}
+2 -2
View File
@@ -1,9 +1,9 @@
Describe "Shell" {
$shellTestCases = @(
@{Name = "C:\shells\gitbash.exe"; Target = "$env:ProgramFiles\Git\bin\bash.exe"},
$(if (-not (Test-IsWin11-Arm64)) { @{Name = "C:\shells\msys2bash.cmd"; Target = $null} }),
@{Name = "C:\shells\msys2bash.cmd"; Target = $null}
@{Name = "C:\shells\wslbash.exe"; Target = "$env:SystemRoot\System32\bash.exe"}
) | Where-Object { $_ }
)
It "<Name> target to <Target>" -TestCases $shellTestCases {
(Get-Item $Name).Target | Should -BeExactly $Target
+4 -38
View File
@@ -56,7 +56,7 @@ Describe "DACFx" {
}
}
Describe "Mercurial" -Skip:(Test-IsWin25-X64) {
Describe "Mercurial" -Skip:(Test-IsWin25) {
It "Mercurial" {
"hg --version" | Should -ReturnZeroExitCode
}
@@ -96,7 +96,7 @@ Describe "NET48" {
}
}
Describe "NSIS" -Skip:(Test-IsWin25-X64) {
Describe "NSIS" -Skip:(Test-IsWin25) {
It "NSIS" {
"makensis /VERSION" | Should -ReturnZeroExitCode
}
@@ -118,7 +118,7 @@ Describe "Sbt" {
}
}
Describe "ServiceFabricSDK" -Skip:(Test-IsWin11-Arm64) {
Describe "ServiceFabricSDK" {
It "PowerShell Module" {
# Ignore PowerShell version check if running in PowerShell Core
# https://github.com/microsoft/service-fabric/issues/1343
@@ -160,7 +160,7 @@ Describe "WebPlatformInstaller" {
}
}
Describe "Zstd" -Skip:(Test-IsWin11-Arm64) {
Describe "Zstd" {
It "zstd" {
"zstd -V" | Should -ReturnZeroExitCode
}
@@ -213,37 +213,3 @@ Describe "OpenSSL" {
Get-ChildItem -Path "$env:SystemRoot\System32" -Filter "libssl-*.dll" -File -ErrorAction SilentlyContinue | Should -BeNullOrEmpty
}
}
Describe "CMake" {
It "cmake" {
"cmake --version" | Should -ReturnZeroExitCode
}
}
Describe "Ninja" {
BeforeAll {
$ninjaProjectPath = $(Join-Path $env:TEMP_DIR "ninjaproject")
New-item -Path $ninjaProjectPath -ItemType Directory -Force
@'
cmake_minimum_required(VERSION 3.10)
project(NinjaTest NONE)
'@ | Out-File -FilePath "$ninjaProjectPath/CMakeLists.txt" -Encoding utf8
$ninjaProjectBuildPath = $(Join-Path $ninjaProjectPath "build")
New-item -Path $ninjaProjectBuildPath -ItemType Directory -Force
Set-Location $ninjaProjectBuildPath
}
It "Make a simple ninja project" {
"cmake -GNinja $ninjaProjectPath" | Should -ReturnZeroExitCode
}
It "build.ninja file should exist" {
$buildFilePath = $(Join-Path $ninjaProjectBuildPath "build.ninja")
$buildFilePath | Should -Exist
}
It "Ninja" {
"ninja --version" | Should -ReturnZeroExitCode
}
}
@@ -3,6 +3,10 @@ $toolsExecutables = @{
@{ Binary = "python.exe"; Arguments = "--version" },
@{ Binary = "Scripts\pip.exe"; Arguments = "--version" }
)
PyPy = @(
@{ Binary = "python.exe"; Arguments = "--version" },
@{ Binary = "Scripts\pip.exe"; Arguments = "--version" }
)
Node = @(
@{ Binary = "node.exe"; Arguments = "--version" },
@{ Binary = "npm"; Arguments = "--version" }
@@ -15,13 +19,6 @@ $toolsExecutables = @{
)
}
if (Test-IsX64) {
$toolsExecutables.Add("PyPy", @(
@{ Binary = "python.exe"; Arguments = "--version" },
@{ Binary = "Scripts\pip.exe"; Arguments = "--version" }
))
}
function Get-ToolExecutables {
Param ([String] $Name)
if ($toolsExecutables.ContainsKey($Name)) { $toolsExecutables[$Name] } else { @() }
@@ -25,7 +25,7 @@ Describe "Visual Studio" {
}
}
Describe "Windows 10 SDK" -Skip:((Test-IsWin25-X64) -or (Test-IsWin11-Arm64)) {
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
}
+1 -1
View File
@@ -1,4 +1,4 @@
Describe "WDK" -Skip:(Test-IsWin25-X64) {
Describe "WDK" -Skip:(Test-IsWin25) {
It "WDK exists" {
$regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$installedApplications = Get-ItemProperty -Path $regKey
@@ -79,15 +79,12 @@ Describe "Windows Updates" {
if ( $Title -match "Microsoft Defender Antivirus" ) {
$expect = "Installed", "Failed", "Running"
}
if ( $Title -match "MicrosoftWindows.Client.WebExperience" ) {
$expect = "Installed", "Failed", "Running"
}
$State | Should -BeIn $expect
}
}
Describe "WSL2" -Skip:((Test-IsWin22-X64) -or (Test-IsWin11-Arm64)) {
Describe "WSL2" -Skip:(Test-IsWin22) {
It "WSL status should return zero exit code" {
"wsl --status" | Should -ReturnZeroExitCode
}
+1 -1
View File
@@ -1,4 +1,4 @@
Describe "Wix" -Skip:(Test-IsWin11-Arm64) {
Describe "Wix" {
BeforeAll {
$regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$installedApplications = Get-ItemProperty -Path $regKey
@@ -1,282 +0,0 @@
build {
sources = ["source.azure-arm.image"]
name = "windows-11-arm64"
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-win-11-arm64.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 }"]
}
# Scheduled tasks spawned when using elevated_user provisioners requires the user to log in interactively on Windows Desktop
# Set AutoAdminLogon for elevated_user and reboot as a workaround
provisioner "powershell" {
inline = [
"Set-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name AutoAdminLogon -Value 1 -type String",
"Set-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name DefaultUsername -Value \"${var.install_user}\" -type String",
"Set-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name DefaultPassword -Value \"${var.install_password}\" -type String",
]
}
provisioner "windows-restart" {
check_registry = true
restart_timeout = "10m"
}
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}"]
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" {
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-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}"]
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-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-CMake.ps1",
"${path.root}/../scripts/build/Install-Ninja.ps1",
"${path.root}/../scripts/build/Install-JavaTools.ps1",
"${path.root}/../scripts/build/Install-Kotlin.ps1",
"${path.root}/../scripts/build/Install-OpenSSL.ps1",
"${path.root}/../scripts/build/Install-LLVM.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-Toolset.ps1",
"${path.root}/../scripts/build/Configure-Toolset.ps1",
"${path.root}/../scripts/build/Install-NodeJS.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-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-Stack.ps1",
"${path.root}/../scripts/build/Install-AzureCosmosDbEmulator.ps1",
"${path.root}/../scripts/build/Install-Mercurial.ps1",
"${path.root}/../scripts/build/Install-NSIS.ps1",
"${path.root}/../scripts/build/Install-Vcpkg.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-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-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"
]
}
# Scheduled tasks spawned when using elevated_user provisioners requires the user to log in interactively on Windows Desktop
# Remove AutoAdminLogon after all elevated_user tasks are completed and reboot
provisioner "powershell" {
inline = [
"Remove-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name AutoAdminLogon",
"Remove-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name DefaultUsername",
"Remove-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name DefaultPassword",
]
}
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}/../Windows11-Arm64-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 } }"
]
}
}
@@ -1,282 +0,0 @@
build {
sources = ["source.azure-arm.image"]
name = "windows-11-vs2026-arm64"
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-win-11-vs2026-arm64.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 }"]
}
# Scheduled tasks spawned when using elevated_user provisioners requires the user to log in interactively on Windows Desktop
# Set AutoAdminLogon for elevated_user and reboot as a workaround
provisioner "powershell" {
inline = [
"Set-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name AutoAdminLogon -Value 1 -type String",
"Set-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name DefaultUsername -Value \"${var.install_user}\" -type String",
"Set-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name DefaultPassword -Value \"${var.install_password}\" -type String",
]
}
provisioner "windows-restart" {
check_registry = true
restart_timeout = "10m"
}
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-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-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-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-CMake.ps1",
"${path.root}/../scripts/build/Install-Ninja.ps1",
"${path.root}/../scripts/build/Install-JavaTools.ps1",
"${path.root}/../scripts/build/Install-Kotlin.ps1",
"${path.root}/../scripts/build/Install-OpenSSL.ps1",
"${path.root}/../scripts/build/Install-LLVM.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-Toolset.ps1",
"${path.root}/../scripts/build/Configure-Toolset.ps1",
"${path.root}/../scripts/build/Install-NodeJS.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-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-Stack.ps1",
"${path.root}/../scripts/build/Install-AzureCosmosDbEmulator.ps1",
"${path.root}/../scripts/build/Install-Mercurial.ps1",
"${path.root}/../scripts/build/Install-NSIS.ps1",
"${path.root}/../scripts/build/Install-Vcpkg.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-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-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"
]
}
# Scheduled tasks spawned when using elevated_user provisioners requires the user to log in interactively on Windows Desktop
# Remove AutoAdminLogon after all elevated_user tasks are completed and reboot
provisioner "powershell" {
inline = [
"Remove-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name AutoAdminLogon",
"Remove-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name DefaultUsername",
"Remove-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon' -Name DefaultPassword",
]
}
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}/../Windows11-VS2026-Arm64-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 } }"
]
}
}
@@ -11,14 +11,6 @@ locals {
"win25-vs2026" = {
source_image_marketplace_sku = "MicrosoftWindowsServer:WindowsServer:2025-Datacenter-g2"
os_disk_size_gb = 150
},
"win11-arm64" = {
source_image_marketplace_sku = "microsoftwindowsdesktop:windows11preview-arm64:win11-25h2-ent"
os_disk_size_gb = 256
},
"win11-vs2026-arm64" = {
source_image_marketplace_sku = "microsoftwindowsdesktop:windows11preview-arm64:win11-25h2-ent"
os_disk_size_gb = 256
}
}
@@ -1,315 +0,0 @@
{
"toolcache": [
{
"name": "Ruby",
"arch": "aarch64",
"platform" : "win32",
"versions": [
"3.4"
],
"default": "3.4"
},
{
"name": "Python",
"url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"3.13.*"
]
},
{
"name": "Python",
"url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json",
"arch": "arm64",
"platform" : "win32",
"versions": [
"3.12.*",
"3.13.*",
"3.14.*"
],
"default": "3.13.*"
},
{
"name": "node",
"url" : "https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json",
"arch": "arm64",
"platform" : "win32",
"versions": [
"20.*",
"22.*",
"24.*"
]
},
{
"name": "go",
"url" : "https://raw.githubusercontent.com/actions/go-versions/main/versions-manifest.json",
"arch": "arm64",
"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" },
{ "name": "VSSetup" },
{ "name": "Microsoft.Graph" },
{ "name": "AWSPowershell" }
],
"azureModules": [
{
"name": "az",
"versions": [
"12.5.0"
],
"zip_versions": [
]
}
],
"java": {
"default": "21",
"versions": [ "21", "23" ]
},
"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": [],
"additional_tools": [
"cmake;3.18.1",
"cmake;3.22.1"
],
"ndk": {
"default": "27",
"versions": [
"26", "27", "28"
]
}
},
"mingw": {
"version": "14.*",
"runtime": "ucrt"
},
"MsysPackages": {
"msys2": [],
"mingw": []
},
"windowsFeatures": [
{ "name": "Containers", "optionalFeature": true },
{ "name": "Microsoft-Windows-Subsystem-Linux", "optionalFeature": true },
{ "name": "VirtualMachinePlatform", "optionalFeature": true },
{ "name": "NetFx4-AdvSrvs", "optionalFeature": true },
{ "name": "Client-ProjFS", "optionalFeature": true },
{ "name": "Microsoft-Hyper-V-All", "optionalFeature": true },
{ "name": "Microsoft-Hyper-V", "optionalFeature": true },
{ "name": "Microsoft-Hyper-V-Tools-All", "optionalFeature": true },
{ "name": "Microsoft-Hyper-V-Hypervisor", "optionalFeature": true },
{ "name": "Microsoft-Hyper-V-Management-PowerShell", "optionalFeature": true }
],
"visualStudio": {
"version" : "2022",
"subversion" : "17",
"edition" : "Enterprise",
"channel": "release",
"installChannelUri": "",
"workloads": [
"Component.Dotfuscator",
"Component.Linux.CMake",
"Component.Unreal.Android",
"Component.Xamarin",
"Microsoft.Component.VC.Runtime.UCRTSDK",
"Microsoft.Net.Component.4.7.2.SDK",
"Microsoft.Net.Component.4.7.TargetingPack",
"Microsoft.Net.Component.4.7.2.TargetingPack",
"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.SQL.SSDT",
"Microsoft.VisualStudio.Component.PortableLibrary",
"Microsoft.VisualStudio.Component.TestTools.CodedUITest",
"Microsoft.VisualStudio.Component.TestTools.WebLoadTest",
"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.ARM",
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
"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.ARM64EC.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.ARM",
"Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
"Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.ASAN",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Component.Windows11SDK.26100",
"Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang",
"Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142",
"Microsoft.VisualStudio.ComponentGroup.Web.CloudTools",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.ManagedGame",
"Microsoft.VisualStudio.Workload.NativeCrossPlat",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NativeGame",
"Microsoft.VisualStudio.Workload.NetCrossPlat",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.Workload.Node",
"Microsoft.VisualStudio.Workload.Universal",
"Microsoft.VisualStudio.Workload.VisualStudioExtension",
"Component.MDD.Linux",
"Component.Microsoft.Windows.DriverKit",
"wasm.tools",
"Microsoft.Component.MSBuild"
],
"vsix": [
"SSIS.MicrosoftDataToolsIntegrationServices",
"VisualStudioClient.MicrosoftVisualStudio2022InstallerProjectsArm64"
]
},
"docker": {
"images": [
"mcr.microsoft.com/windows/servercore:ltsc2022",
"mcr.microsoft.com/windows/nanoserver:ltsc2022",
"mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2022",
"mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2022",
"mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2022"
],
"components": {
"docker": "26.1.3",
"compose": "2.27.1"
}
},
"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": [
"6.0",
"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": "strawberryperl" ,
"args": [ "--version", "5.32.1.1" ]
},
{ "name": "pulumi" },
{ "name": "swig" },
{ "name": "vswhere" },
{
"name": "julia",
"args": [ "--ia", "/DIR=C:\\Julia" ]
},
{ "name": "imagemagick" }
]
},
"node": {
"default": "24.*"
},
"maven": {
"version": "3.9"
},
"mysql": {
"version": "8.0"
},
"mongodb": {
"version": "5.0"
},
"nsis": {
"version": "3.10"
},
"llvm": {
"version": "20.1.6"
},
"php": {
"version": "8.4"
},
"postgresql": {
"version": "14"
},
"kotlin": {
"version": "latest"
},
"openssl": {
"version": "3.*"
},
"pwsh": {
"version": "7.4"
}
}
@@ -1,307 +0,0 @@
{
"toolcache": [
{
"name": "Ruby",
"arch": "aarch64",
"platform" : "win32",
"versions": [
"3.4"
],
"default": "3.4"
},
{
"name": "Python",
"url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json",
"arch": "x64",
"platform" : "win32",
"versions": [
"3.13.*"
]
},
{
"name": "Python",
"url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json",
"arch": "arm64",
"platform" : "win32",
"versions": [
"3.12.*",
"3.13.*",
"3.14.*"
],
"default": "3.13.*"
},
{
"name": "node",
"url" : "https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json",
"arch": "arm64",
"platform" : "win32",
"versions": [
"20.*",
"22.*",
"24.*"
]
},
{
"name": "go",
"url" : "https://raw.githubusercontent.com/actions/go-versions/main/versions-manifest.json",
"arch": "arm64",
"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" },
{ "name": "VSSetup" },
{ "name": "Microsoft.Graph" },
{ "name": "AWSPowershell" }
],
"azureModules": [
{
"name": "az",
"versions": [
"12.5.0"
],
"zip_versions": [
]
}
],
"java": {
"default": "21",
"versions": [ "21", "23" ]
},
"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": [],
"additional_tools": [
"cmake;3.18.1",
"cmake;3.22.1"
],
"ndk": {
"default": "27",
"versions": [
"26", "27", "28"
]
}
},
"mingw": {
"version": "14.*",
"runtime": "ucrt"
},
"MsysPackages": {
"msys2": [],
"mingw": []
},
"windowsFeatures": [
{ "name": "Containers", "optionalFeature": true },
{ "name": "Microsoft-Windows-Subsystem-Linux", "optionalFeature": true },
{ "name": "VirtualMachinePlatform", "optionalFeature": true },
{ "name": "NetFx4-AdvSrvs", "optionalFeature": true },
{ "name": "Client-ProjFS", "optionalFeature": true },
{ "name": "Microsoft-Hyper-V-All", "optionalFeature": true },
{ "name": "Microsoft-Hyper-V", "optionalFeature": true },
{ "name": "Microsoft-Hyper-V-Tools-All", "optionalFeature": true },
{ "name": "Microsoft-Hyper-V-Hypervisor", "optionalFeature": true },
{ "name": "Microsoft-Hyper-V-Management-PowerShell", "optionalFeature": true }
],
"visualStudio": {
"version" : "2026",
"subversion" : "18",
"edition" : "Enterprise",
"channel": "stable",
"installChannelUri": "",
"workloads": [
"Component.Linux.CMake",
"Component.Unreal.Android",
"Microsoft.Component.VC.Runtime.UCRTSDK",
"Microsoft.Net.Component.4.7.2.SDK",
"Microsoft.Net.Component.4.7.TargetingPack",
"Microsoft.Net.Component.4.7.2.TargetingPack",
"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.SQL.SSDT",
"Microsoft.VisualStudio.Component.PortableLibrary",
"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.Redist.MSM",
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre",
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM64EC.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.ARM64",
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
"Microsoft.VisualStudio.Component.Windows11SDK.26100",
"Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang",
"Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142",
"Microsoft.VisualStudio.ComponentGroup.Web.CloudTools",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.ManagedGame",
"Microsoft.VisualStudio.Workload.NativeCrossPlat",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.NativeGame",
"Microsoft.VisualStudio.Workload.NetCrossPlat",
"Microsoft.VisualStudio.Workload.NetWeb",
"Microsoft.VisualStudio.Workload.Node",
"Microsoft.VisualStudio.Workload.Universal",
"Microsoft.VisualStudio.Workload.VisualStudioExtension",
"Component.MDD.Linux",
"Component.Microsoft.Windows.DriverKit",
"wasm.tools",
"Microsoft.Component.MSBuild"
],
"vsix": [
"SSIS.MicrosoftDataToolsIntegrationServices",
"VisualStudioClient.MicrosoftVisualStudio2022InstallerProjectsArm64"
]
},
"docker": {
"images": [
"mcr.microsoft.com/windows/servercore:ltsc2022",
"mcr.microsoft.com/windows/nanoserver:ltsc2022",
"mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2022",
"mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2022",
"mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2022"
],
"components": {
"docker": "26.1.3",
"compose": "2.27.1"
}
},
"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": [
"6.0",
"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": "strawberryperl" ,
"args": [ "--version", "5.32.1.1" ]
},
{ "name": "pulumi" },
{ "name": "swig" },
{ "name": "vswhere" },
{
"name": "julia",
"args": [ "--ia", "/DIR=C:\\Julia" ]
},
{ "name": "imagemagick" }
]
},
"node": {
"default": "24.*"
},
"maven": {
"version": "3.9"
},
"mysql": {
"version": "8.0"
},
"mongodb": {
"version": "5.0"
},
"nsis": {
"version": "3.10"
},
"llvm": {
"version": "20.1.6"
},
"php": {
"version": "8.4"
},
"postgresql": {
"version": "14"
},
"kotlin": {
"version": "latest"
},
"openssl": {
"version": "3.*"
},
"pwsh": {
"version": "7.4"
}
}