diff --git a/.github/ISSUE_TEMPLATE/announcement.yml b/.github/ISSUE_TEMPLATE/announcement.yml index 28632ddd1..13cbb1f7c 100644 --- a/.github/ISSUE_TEMPLATE/announcement.yml +++ b/.github/ISSUE_TEMPLATE/announcement.yml @@ -26,19 +26,24 @@ body: placeholder: Description of who might be impacted by this change validations: required: true + - type: checkboxes + attributes: + label: Platforms affected + options: + - label: Azure DevOps + - label: GitHub Actions - type: checkboxes attributes: label: Virtual environments affected options: - label: Ubuntu 18.04 - label: Ubuntu 20.04 + - label: Ubuntu 22.04 - label: macOS 10.15 - label: macOS 11 - label: macOS 12 - label: Windows Server 2019 - label: Windows Server 2022 - validations: - required: true - type: textarea attributes: label: Mitigation ways diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 0ca377fdc..9dad29ae9 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -8,19 +8,24 @@ body: description: A clear and concise description of what the bug is, and why you consider it to be a bug. validations: required: true + - type: checkboxes + attributes: + label: Platforms affected + options: + - label: Azure DevOps + - label: GitHub Actions - type: checkboxes attributes: label: Virtual environments affected options: - label: Ubuntu 18.04 - label: Ubuntu 20.04 + - label: Ubuntu 22.04 - label: macOS 10.15 - label: macOS 11 - label: macOS 12 - label: Windows Server 2019 - label: Windows Server 2022 - validations: - required: true - type: textarea attributes: label: Image version and build link @@ -36,14 +41,20 @@ body: attributes: label: Is it regression? description: If yes, please, provide the latest image version where the issue didn't persist, and a link to the latest successful build. + validations: + required: true - type: textarea attributes: label: Expected behavior description: A description of what you expected to happen. + validations: + required: true - type: textarea attributes: label: Actual behavior description: A description of what is actually happening. + validations: + required: true - type: textarea attributes: label: Repro steps diff --git a/.github/ISSUE_TEMPLATE/tool-request.yml b/.github/ISSUE_TEMPLATE/tool-request.yml index af2e04785..90eaea4c9 100644 --- a/.github/ISSUE_TEMPLATE/tool-request.yml +++ b/.github/ISSUE_TEMPLATE/tool-request.yml @@ -44,22 +44,27 @@ body: label: URL for tool's homepage - type: textarea attributes: - label: Provide a basic test case to validate the tool's functionality. + label: Provide a basic test case to validate the tool's functionality. description: This will be automatically formatted into code. render: bash - type: checkboxes attributes: - label: Virtual environments affected + label: Platforms where you need the tool + options: + - label: Azure DevOps + - label: GitHub Actions + - type: checkboxes + attributes: + label: Virtual environments where you need the tool options: - label: Ubuntu 18.04 - label: Ubuntu 20.04 + - label: Ubuntu 22.04 - label: macOS 10.15 - label: macOS 11 - label: macOS 12 - label: Windows Server 2019 - label: Windows Server 2022 - validations: - required: true - type: textarea attributes: label: Can this tool be installed during the build? diff --git a/.gitignore b/.gitignore index a327f4562..e56257596 100644 --- a/.gitignore +++ b/.gitignore @@ -387,4 +387,7 @@ public .dynamodb/ # visual studio code launch configuration -launch.json \ No newline at end of file +launch.json + +# Ignore dynamic template +images/*/*-temp.json diff --git a/LICENSE b/LICENSE index 1606539a1..fac6e630f 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 GitHub +Copyright (c) 2022 GitHub Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index feaf0a9ac..84ea428e7 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ + # GitHub Actions Runner Images **Table of Contents** - [About](#about) @@ -9,16 +10,19 @@ - [FAQs](#faqs) + ## About This repository contains the source used to create the [runner images](https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners) for GitHub Actions hosted runners, as well as the VM images of [Microsoft-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#use-a-microsoft-hosted-agent) used for Azure Pipelines. To build a VM machine from this repo's source, see the [instructions](docs/create-image-and-azure-resources.md). ## Available Images | Image | YAML Label | Included Software | Rollout Progress of Latest Image Release | | --------------------|---------------------|--------------------|---------------------| +| Ubuntu 22.04 beta | `ubuntu-22.04` | [ubuntu-22.04] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu22&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu22&redirect=1) | Ubuntu 20.04 | `ubuntu-latest` or `ubuntu-20.04` | [ubuntu-20.04] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu20&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu20&redirect=1) | Ubuntu 18.04 | `ubuntu-18.04` | [ubuntu-18.04] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu18&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu18&redirect=1) +| macOS 12 | `macos-12`| [macOS-12] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-12&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-12&redirect=1) | macOS 11 | `macos-latest` or `macos-11`| [macOS-11] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-11&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-11&redirect=1) -| macOS 10.15 | `macos-10.15` | [macOS-10.15] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-10.15&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-10.15&redirect=1) +| macOS 10.15 deprecated | `macos-10.15` | [macOS-10.15] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-10.15&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-10.15&redirect=1) | Windows Server 2022 | `windows-latest` or `windows-2022` | [windows-2022] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2022&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2022&redirect=1) | | Windows Server 2019 | `windows-2019` | [windows-2019] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&redirect=1) | Windows Server 2016 | `windows-2016` | [windows-2016] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2016&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2016&redirect=1) @@ -27,12 +31,14 @@ This repository contains the source used to create the [runner images](https://h - In general the `-latest` label is used for the latest OS image version that is in GA - Before moving the`-latest` label to a new OS version we will announce the change and give sufficient lead time for users to update their workflows +[ubuntu-22.04]: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2204-Readme.md [ubuntu-20.04]: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md [ubuntu-18.04]: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-Readme.md [windows-2022]: https://github.com/actions/virtual-environments/blob/main/images/win/Windows2022-Readme.md [windows-2019]: https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md [windows-2016]: https://github.com/actions/virtual-environments/blob/main/images/win/Windows2016-Readme.md [macOS-11]: https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11-Readme.md +[macOS-12]: https://github.com/actions/virtual-environments/blob/main/images/macos/macos-12-Readme.md [macOS-10.15]: https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md [self-hosted runners]: https://help.github.com/en/actions/hosting-your-own-runners diff --git a/docs/create-image-and-azure-resources.md b/docs/create-image-and-azure-resources.md index ae25ed00f..5815eb15a 100644 --- a/docs/create-image-and-azure-resources.md +++ b/docs/create-image-and-azure-resources.md @@ -27,7 +27,7 @@ Detailed instruction can be found in [Azure documentation](https://docs.microsof #### How to prepare Windows build agent Local machine or [Azure VM](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/quick-create-cli) can be used as a build agent. -Download `packer` from https://www.packer.io/downloads, or install it via Chocolately. +Download `packer` from https://www.packer.io/downloads, or install it via [Chocolatey](https://chocolatey.org/): ``` choco install packer ``` @@ -61,7 +61,7 @@ Where: - `SubscriptionId` - The Azure subscription Id where resources will be created. - `ResourceGroupName` - The Azure resource group name where the Azure resources will be created. - `ImageGenerationRepositoryRoot` - The root path of the image generation repository source. -- `ImageType` - The type of the image being generated. Valid options are: "Windows2016", "Windows2019", "Windows2022", "Ubuntu1804", "Ubuntu2004". +- `ImageType` - The type of the image being generated. Valid options are: "Windows2016", "Windows2019", "Windows2022", "Ubuntu1804", "Ubuntu2004", "Ubuntu2204". - `AzureLocation` - The location of the resources being created in Azure. For example "East US". The function automatically creates all required Azure resources and kicks off packer image generation for the selected image type. @@ -72,6 +72,12 @@ For optional authentication via service principal make sure to provide the follo GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "myTestResourceGroup" -ImageGenerationRepositoryRoot "$pwd" -ImageType Ubuntu1804 -AzureLocation "East US" -AzureClientId {AADApplicationID} -AzureClientSecret {AADApplicationSecret} -AzureTenantId {AADTenantID} ``` +As extra options, you can add more params for permit to add Azure Tags on resources and enable https for Storage Account. It could be helpful on some tenants with hardenning policy. Params are — `EnableHttpsTrafficOnly` (Boolean) and `tags` (HashTable), so the whole command will be: + +``` +GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "myTestResourceGroup" -ImageGenerationRepositoryRoot "$pwd" -ImageType Ubuntu1804 -AzureLocation "East US" -EnableHttpsTrafficOnly $true -tags @{dept="devops";env="prod"} +``` + *Please, check synopsis of `GenerateResourcesAndImage` for details about non-mandatory parameters.* #### Generated VM Deployment @@ -104,7 +110,8 @@ The Packer template includes `variables` section containing user variables used - `build_resource_group_name` - Specify an existing resource group to run the build in it. 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 it. - `client_id` - The application ID of the AAD Service Principal. Requires `client_secret`. - `object_id` - The object ID for the AAD SP. Will be derived from the oAuth token if empty. -- `client_secret` - A password/secret registered for the AAD SP. +- `client_secret` - The password or secret for your service principal. +- `client_cert_path` - The location of a PEM file containing a certificate and private key for service principal. - `subscription_id` - The subscription to use. - `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`. - `resource_group` - Resource group under which the final artifact will be stored. diff --git a/helpers/CreateAzureVMFromPackerTemplate.ps1 b/helpers/CreateAzureVMFromPackerTemplate.ps1 index f5041f6c4..770161c2f 100644 --- a/helpers/CreateAzureVMFromPackerTemplate.ps1 +++ b/helpers/CreateAzureVMFromPackerTemplate.ps1 @@ -28,7 +28,7 @@ Function CreateAzureVMFromPackerTemplate { The location where the Azure virtual machine will be provisioned. Example: "eastus" .EXAMPLE - CreateAzureVMFromPackerTemplate -SubscriptionId {YourSubscriptionId} -ResourceGroupName {ResourceGroupName} -TemplateFile "C:\BuildVmImages\temporaryTemplate.json" -VirtualMachineName "testvm1" -AdminUsername "shady1" -AdminPassword "SomeSecurePassword1" -AzureLocation "eastus" + CreateAzureVMFromPackerTemplate -SubscriptionId {YourSubscriptionId} -ResourceGroupName {ResourceGroupName} -TemplateFile "C:\BuildVmImages\temporaryTemplate.json" -VirtualMachineName "testvm1" -AdminUsername "shady1" -AdminPassword "SomeSecurePassword1" -AzureLocation "eastus" #> param ( [Parameter(Mandatory = $True)] @@ -63,14 +63,14 @@ Function CreateAzureVMFromPackerTemplate { $networkId = ($nic | ConvertFrom-Json).NewNIC.id Write-Host "`nCreating a public IP address" - ($publicIp = az network public-ip create -g $ResourceGroupName -l $AzureLocation -n $publicIpName --allocation-method Static --sku Standard --version IPv4 --subscription $subscriptionId -o json) + ($publicIp = az network public-ip create -g $ResourceGroupName -l $AzureLocation -n $publicIpName --allocation-method Static --sku Basic --version IPv4 --subscription $subscriptionId -o json) $publicIpId = ($publicIp | ConvertFrom-Json).publicIp.id Write-Host "`nAdding the public IP to the NIC" az network nic ip-config update -g $ResourceGroupName -n ipconfig1 --nic-name $nicName --public-ip-address $publicIpId --subscription $subscriptionId Write-Host "`nCreating the VM" - az group deployment create -g $ResourceGroupName -n $VirtualMachineName --subscription $subscriptionId --template-file $templateFilePath --parameters vmSize=$vmSize vmName=$VirtualMachineName adminUserName=$AdminUsername adminPassword=$AdminPassword networkInterfaceId=$networkId - + az deployment group create -g $ResourceGroupName -n $VirtualMachineName --subscription $subscriptionId --template-file $templateFilePath --parameters vmSize=$vmSize vmName=$VirtualMachineName adminUserName=$AdminUsername adminPassword=$AdminPassword networkInterfaceId=$networkId + Write-Host "`nCreated in ${ResourceGroupName}:`n vnet ${vnetName}`n subnet ${subnetName}`n nic ${nicName}`n publicip ${publicIpName}`n vm ${VirtualMachineName}" } diff --git a/helpers/GenerateResourcesAndImage.ps1 b/helpers/GenerateResourcesAndImage.ps1 index 36515dcd5..f51c6cf0a 100644 --- a/helpers/GenerateResourcesAndImage.ps1 +++ b/helpers/GenerateResourcesAndImage.ps1 @@ -6,6 +6,7 @@ enum ImageType { Windows2022 = 2 Ubuntu1804 = 3 Ubuntu2004 = 4 + Ubuntu2204 = 5 } Function Get-PackerTemplatePath { @@ -32,6 +33,9 @@ Function Get-PackerTemplatePath { ([ImageType]::Ubuntu2004) { $relativeTemplatePath = Join-Path "linux" "ubuntu2004.json" } + ([ImageType]::Ubuntu2204) { + $relativeTemplatePath = Join-Path "linux" "ubuntu2204.pkr.hcl" + } default { throw "Unknown type of image" } } @@ -58,44 +62,34 @@ Function GenerateResourcesAndImage { <# .SYNOPSIS A helper function to help generate an image. - .DESCRIPTION Creates Azure resources and kicks off a packer image generation for the selected image type. - .PARAMETER SubscriptionId The Azure subscription Id where resources will be created. - .PARAMETER ResourceGroupName The Azure resource group name where the Azure resources will be created. - .PARAMETER ImageGenerationRepositoryRoot The root path of the image generation repository source. - .PARAMETER ImageType The type of the image being generated. Valid options are: {"Windows2016", "Windows2019", "Windows2022", "Ubuntu1804", "Ubuntu2004"}. - .PARAMETER AzureLocation The location of the resources being created in Azure. For example "East US". - .PARAMETER Force Delete the resource group if it exists without user confirmation. - .PARAMETER AzureClientId Client id needs to be provided for optional authentication via service principal. Example: "11111111-1111-1111-1111-111111111111" - .PARAMETER AzureClientSecret Client secret needs to be provided for optional authentication via service principal. Example: "11111111-1111-1111-1111-111111111111" - .PARAMETER AzureTenantId Tenant needs to be provided for optional authentication via service principal. Example: "11111111-1111-1111-1111-111111111111" - .PARAMETER RestrictToAgentIpAddress If set, access to the VM used by packer to generate the image is restricted to the public IP address this script is run from. This parameter cannot be used in combination with the virtual_network_name packer parameter. .PARAMETER AllowBlobPublicAccess The Azure storage account will be created with this option. - + .PARAMETER OnError + Specify how packer handles an error during image creation. .EXAMPLE GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\virtual-environments" -ImageType Ubuntu1804 -AzureLocation "East US" #> @@ -125,153 +119,201 @@ Function GenerateResourcesAndImage { [Parameter(Mandatory = $False)] [bool] $AllowBlobPublicAccess = $False, [Parameter(Mandatory = $False)] - [bool] $EnableHttpsTrafficOnly = $False + [bool] $EnableHttpsTrafficOnly = $False, + [Parameter(Mandatory = $False)] + [ValidateSet("abort","ask","cleanup","run-cleanup-provisioner")] + [string] $OnError = "ask", + [Parameter(Mandatory = $False)] + [hashtable] $Tags ) - $builderScriptPath = Get-PackerTemplatePath -RepositoryRoot $ImageGenerationRepositoryRoot -ImageType $ImageType - $ServicePrincipalClientSecret = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper() - $InstallPassword = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper() - - if ([string]::IsNullOrEmpty($AzureClientId)) - { - Connect-AzAccount - } else { - $AzSecureSecret = ConvertTo-SecureString $AzureClientSecret -AsPlainText -Force - $AzureAppCred = New-Object System.Management.Automation.PSCredential($AzureClientId, $AzSecureSecret) - Connect-AzAccount -ServicePrincipal -Credential $AzureAppCred -Tenant $AzureTenantId - } - Set-AzContext -SubscriptionId $SubscriptionId - - $alreadyExists = $true; try { - Get-AzResourceGroup -Name $ResourceGroupName - Write-Verbose "Resource group was found, will delete and recreate it." + $builderScriptPath = Get-PackerTemplatePath -RepositoryRoot $ImageGenerationRepositoryRoot -ImageType $ImageType + $ServicePrincipalClientSecret = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper() + $InstallPassword = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper() + + if ([string]::IsNullOrEmpty($AzureClientId)) + { + Connect-AzAccount + } else { + $AzSecureSecret = ConvertTo-SecureString $AzureClientSecret -AsPlainText -Force + $AzureAppCred = New-Object System.Management.Automation.PSCredential($AzureClientId, $AzSecureSecret) + Connect-AzAccount -ServicePrincipal -Credential $AzureAppCred -Tenant $AzureTenantId + } + Set-AzContext -SubscriptionId $SubscriptionId + + $alreadyExists = $true; + try { + Get-AzResourceGroup -Name $ResourceGroupName + Write-Verbose "Resource group was found, will delete and recreate it." + } + catch { + Write-Verbose "Resource group was not found, will create it." + $alreadyExists = $false; + } + + if ($alreadyExists) { + if($Force -eq $true) { + # Cleanup the resource group if it already exitsted before + Remove-AzResourceGroup -Name $ResourceGroupName -Force + New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation -Tag $tags + + } else { + $title = "Delete Resource Group" + $message = "The resource group you specified already exists. Do you want to clean it up?" + + $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", ` + "Delete the resource group including all resources." + + $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", ` + "Keep the resource group and continue." + + $stop = New-Object System.Management.Automation.Host.ChoiceDescription "&Stop", ` + "Stop the current action." + + $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no, $stop) + $result = $host.ui.PromptForChoice($title, $message, $options, 0) + + switch ($result) + { + 0 { Remove-AzResourceGroup -Name $ResourceGroupName -Force; New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation -Tag $tags } + 1 { <# Do nothing #> } + 2 { exit } + } + } + } else { + New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation -Tag $tags + } + + # This script should follow the recommended naming conventions for azure resources + $storageAccountName = if($ResourceGroupName.EndsWith("-rg")) { + $ResourceGroupName.Substring(0, $ResourceGroupName.Length -3) + } else { $ResourceGroupName } + + # Resource group names may contain special characters, that are not allowed in the storage account name + $storageAccountName = $storageAccountName.Replace("-", "").Replace("_", "").Replace("(", "").Replace(")", "").ToLower() + $storageAccountName += "001" + + + # Storage Account Name can only be 24 characters long + if ($storageAccountName.Length -gt 24){ + $storageAccountName = $storageAccountName.Substring(0, 24) + } + + if ($tags) { + New-AzStorageAccount -ResourceGroupName $ResourceGroupName -AccountName $storageAccountName -Location $AzureLocation -SkuName "Standard_LRS" -AllowBlobPublicAccess $AllowBlobPublicAccess -EnableHttpsTrafficOnly $EnableHttpsTrafficOnly -Tag $tags + } else { + New-AzStorageAccount -ResourceGroupName $ResourceGroupName -AccountName $storageAccountName -Location $AzureLocation -SkuName "Standard_LRS" -AllowBlobPublicAccess $AllowBlobPublicAccess -EnableHttpsTrafficOnly $EnableHttpsTrafficOnly + } + + if ([string]::IsNullOrEmpty($AzureClientId)) { + # Interactive authentication: A service principal is created during runtime. + $spDisplayName = [System.GUID]::NewGuid().ToString().ToUpper() + $startDate = Get-Date + $endDate = $startDate.AddYears(1) + + if ('Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential' -as [type]) { + $credentials = [Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential]@{ + StartDate = $startDate + EndDate = $endDate + Password = $ServicePrincipalClientSecret + } + $sp = New-AzADServicePrincipal -DisplayName $spDisplayName -PasswordCredential $credentials + $spClientId = $sp.ApplicationId + $azRoleParam = @{ + RoleDefinitionName = "Contributor" + ServicePrincipalName = $spClientId + } + } + + if ('Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphPasswordCredential' -as [type]) { + $credentials = [Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphPasswordCredential]@{ + StartDateTime = $startDate + EndDateTime = $endDate + } + $sp = New-AzADServicePrincipal -DisplayName $spDisplayName + $appCred = New-AzADAppCredential -ApplicationId $sp.AppId -PasswordCredentials $credentials + $spClientId = $sp.AppId + $azRoleParam = @{ + RoleDefinitionName = "Contributor" + PrincipalId = $sp.Id + } + $ServicePrincipalClientSecret = $appCred.SecretText + } + + Start-Sleep -Seconds $SecondsToWaitForServicePrincipalSetup + New-AzRoleAssignment @azRoleParam + Start-Sleep -Seconds $SecondsToWaitForServicePrincipalSetup + $sub = Get-AzSubscription -SubscriptionId $SubscriptionId + $tenantId = $sub.TenantId + + # Remove ADPrincipal after the script completed + $isCleanupADPrincipal = $true + } else { + # Parametrized Authentication via given service principal: The service principal with the data provided via the command line + # is used for all authentication purposes. + $spClientId = $AzureClientId + $credentials = $AzureAppCred + $ServicePrincipalClientSecret = $AzureClientSecret + $tenantId = $AzureTenantId + } + + Get-LatestCommit -ErrorAction SilentlyContinue + + $packerBinary = Get-Command "packer" + if (-not ($packerBinary)) { + throw "'packer' binary is not found on PATH" + } + + if ($RestrictToAgentIpAddress) { + $AgentIp = (Invoke-RestMethod http://ipinfo.io/json).ip + Write-Host "Restricting access to packer generated VM to agent IP Address: $AgentIp" + } + + if ($builderScriptPath.Contains("pkr.hcl")) { + if ($AgentIp) { + $AgentIp = '[ \"{0}\" ]' -f $AgentIp + } else { + $AgentIp = "[]" + } + } + + if ($Tags) { + $builderScriptPath_temp = $builderScriptPath.Replace(".json", "-temp.json") + $packer_script = Get-Content -Path $builderScriptPath | ConvertFrom-Json + $packer_script.builders | Add-Member -Name "azure_tags" -Value $Tags -MemberType NoteProperty + $packer_script | ConvertTo-Json -Depth 3 | Out-File $builderScriptPath_temp + $builderScriptPath = $builderScriptPath_temp + } + + & $packerBinary build -on-error="$($OnError)" ` + -var "client_id=$($spClientId)" ` + -var "client_secret=$($ServicePrincipalClientSecret)" ` + -var "subscription_id=$($SubscriptionId)" ` + -var "tenant_id=$($tenantId)" ` + -var "location=$($AzureLocation)" ` + -var "resource_group=$($ResourceGroupName)" ` + -var "storage_account=$($storageAccountName)" ` + -var "install_password=$($InstallPassword)" ` + -var "allowed_inbound_ip_addresses=$($AgentIp)" ` + $builderScriptPath } catch { - Write-Verbose "Resource group was not found, will create it." - $alreadyExists = $false; + Write-Error $_ } + finally { + # Remove ADServicePrincipal and ADApplication + if ($isCleanupADPrincipal) { + Write-Host "`nRemoving ${spDisplayName}/${spClientId}:" + if (Get-AzADServicePrincipal -DisplayName $spDisplayName) { + Write-Host " [+] ADServicePrincipal" + Remove-AzADServicePrincipal -DisplayName $spDisplayName -Confirm:$false + } - if ($alreadyExists) { - if($Force -eq $true) { - # Cleanup the resource group if it already exitsted before - Remove-AzResourceGroup -Name $ResourceGroupName -Force - New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation - } else { - $title = "Delete Resource Group" - $message = "The resource group you specified already exists. Do you want to clean it up?" - - $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", ` - "Delete the resource group including all resources." - - $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", ` - "Keep the resource group and continue." - - $stop = New-Object System.Management.Automation.Host.ChoiceDescription "&Stop", ` - "Stop the current action." - - $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no, $stop) - $result = $host.ui.PromptForChoice($title, $message, $options, 0) - - switch ($result) - { - 0 { Remove-AzResourceGroup -Name $ResourceGroupName -Force; New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation } - 1 { <# Do nothing #> } - 2 { exit } + if (Get-AzADApplication -DisplayName $spDisplayName) { + Write-Host " [+] ADApplication" + Remove-AzADApplication -DisplayName $spDisplayName -Confirm:$false } } - } else { - New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation } - - # This script should follow the recommended naming conventions for azure resources - $storageAccountName = if($ResourceGroupName.EndsWith("-rg")) { - $ResourceGroupName.Substring(0, $ResourceGroupName.Length -3) - } else { $ResourceGroupName } - - # Resource group names may contain special characters, that are not allowed in the storage account name - $storageAccountName = $storageAccountName.Replace("-", "").Replace("_", "").Replace("(", "").Replace(")", "").ToLower() - $storageAccountName += "001" - - - # Storage Account Name can only be 24 characters long - if ($storageAccountName.Length -gt 24){ - $storageAccountName = $storageAccountName.Substring(0, 24) - } - - New-AzStorageAccount -ResourceGroupName $ResourceGroupName -AccountName $storageAccountName -Location $AzureLocation -SkuName "Standard_LRS" -AllowBlobPublicAccess $AllowBlobPublicAccess -EnableHttpsTrafficOnly $EnableHttpsTrafficOnly - - if ([string]::IsNullOrEmpty($AzureClientId)) { - # Interactive authentication: A service principal is created during runtime. - $spDisplayName = [System.GUID]::NewGuid().ToString().ToUpper() - $startDate = Get-Date - $endDate = $startDate.AddYears(1) - - if ('Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential' -as [type]) { - $credentials = [Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential]@{ - StartDate = $startDate - EndDate = $endDate - Password = $ServicePrincipalClientSecret - } - $sp = New-AzADServicePrincipal -DisplayName $spDisplayName -PasswordCredential $credentials - $spClientId = $sp.ApplicationId - $azRoleParam = @{ - RoleDefinitionName = "Contributor" - ServicePrincipalName = $spClientId - } - } - - if ('Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphPasswordCredential' -as [type]) { - $credentials = [Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphPasswordCredential]@{ - StartDateTime = $startDate - EndDateTime = $endDate - } - $sp = New-AzADServicePrincipal -DisplayName $spDisplayName - $appCred = New-AzADAppCredential -ApplicationId $sp.AppId -PasswordCredentials $credentials - $spClientId = $sp.AppId - $azRoleParam = @{ - RoleDefinitionName = "Contributor" - PrincipalId = $sp.Id - } - $ServicePrincipalClientSecret = $appCred.SecretText - } - - Start-Sleep -Seconds $SecondsToWaitForServicePrincipalSetup - New-AzRoleAssignment @azRoleParam - Start-Sleep -Seconds $SecondsToWaitForServicePrincipalSetup - $sub = Get-AzSubscription -SubscriptionId $SubscriptionId - $tenantId = $sub.TenantId - # "", "Note this variable-setting script for running Packer with these Azure resources in the future:", "==============================================================================================", "`$spClientId = `"$spClientId`"", "`$ServicePrincipalClientSecret = `"$ServicePrincipalClientSecret`"", "`$SubscriptionId = `"$SubscriptionId`"", "`$tenantId = `"$tenantId`"", "`$spObjectId = `"$spObjectId`"", "`$AzureLocation = `"$AzureLocation`"", "`$ResourceGroupName = `"$ResourceGroupName`"", "`$storageAccountName = `"$storageAccountName`"", "`$install_password = `"$install_password`"", "" - } else { - # Parametrized Authentication via given service principal: The service principal with the data provided via the command line - # is used for all authentication purposes. - $spClientId = $AzureClientId - $credentials = $AzureAppCred - $ServicePrincipalClientSecret = $AzureClientSecret - $tenantId = $AzureTenantId - } - - Get-LatestCommit -ErrorAction SilentlyContinue - - $packerBinary = Get-Command "packer" - if (-not ($packerBinary)) { - throw "'packer' binary is not found on PATH" - } - - if($RestrictToAgentIpAddress -eq $true) { - $AgentIp = (Invoke-RestMethod http://ipinfo.io/json).ip - Write-Host "Restricting access to packer generated VM to agent IP Address: $AgentIp" - } - - & $packerBinary build -on-error=ask ` - -var "client_id=$($spClientId)" ` - -var "client_secret=$($ServicePrincipalClientSecret)" ` - -var "subscription_id=$($SubscriptionId)" ` - -var "tenant_id=$($tenantId)" ` - -var "location=$($AzureLocation)" ` - -var "resource_group=$($ResourceGroupName)" ` - -var "storage_account=$($storageAccountName)" ` - -var "install_password=$($InstallPassword)" ` - -var "allowed_inbound_ip_addresses=$($AgentIp)" ` - $builderScriptPath } diff --git a/images.CI/linux-and-win/azure-pipelines/image-generation.yml b/images.CI/linux-and-win/azure-pipelines/image-generation.yml index 9cc38d5ef..2e31962fd 100644 --- a/images.CI/linux-and-win/azure-pipelines/image-generation.yml +++ b/images.CI/linux-and-win/azure-pipelines/image-generation.yml @@ -31,7 +31,10 @@ jobs: $ImageType = "${{ parameters.image_type }}" $TemplateDirectoryName = if ($ImageType.StartsWith("ubuntu")) { "linux" } else { "win" } $TemplateDirectoryPath = Join-Path "images" $TemplateDirectoryName | Resolve-Path - $TemplatePath = Join-Path $TemplateDirectoryPath "$ImageType.json" + $TemplatePath = Join-Path $TemplateDirectoryPath "$ImageType.pkr.hcl" + if ( -not (Test-Path $TemplatePath) ) { + $TemplatePath = Join-Path $TemplateDirectoryPath "$ImageType.json" + } Write-Host "##vso[task.setvariable variable=TemplateDirectoryPath;]$TemplateDirectoryPath" Write-Host "##vso[task.setvariable variable=TemplatePath;]$TemplatePath" diff --git a/images.CI/linux-and-win/azure-pipelines/ubuntu2204.yml b/images.CI/linux-and-win/azure-pipelines/ubuntu2204.yml new file mode 100644 index 000000000..8fc4c7b69 --- /dev/null +++ b/images.CI/linux-and-win/azure-pipelines/ubuntu2204.yml @@ -0,0 +1,20 @@ +schedules: +- cron: "0 0 * * *" + displayName: Daily + branches: + include: + - main + always: true + +trigger: none +pr: + autoCancel: true + branches: + include: + - main + +jobs: +- template: image-generation.yml + parameters: + image_type: ubuntu2204 + image_readme_name: Ubuntu2204-Readme.md \ No newline at end of file diff --git a/images.CI/linux-and-win/build-image.ps1 b/images.CI/linux-and-win/build-image.ps1 index 1ea82791c..67a14db5a 100644 --- a/images.CI/linux-and-win/build-image.ps1 +++ b/images.CI/linux-and-win/build-image.ps1 @@ -8,9 +8,9 @@ param( [String] [Parameter (Mandatory=$true)] $StorageAccount, [String] [Parameter (Mandatory=$true)] $SubscriptionId, [String] [Parameter (Mandatory=$true)] $TenantId, - [String] [Parameter (Mandatory=$true)] $VirtualNetworkName, - [String] [Parameter (Mandatory=$true)] $VirtualNetworkRG, - [String] [Parameter (Mandatory=$true)] $VirtualNetworkSubnet + [String] [Parameter (Mandatory=$false)] $VirtualNetworkName, + [String] [Parameter (Mandatory=$false)] $VirtualNetworkRG, + [String] [Parameter (Mandatory=$false)] $VirtualNetworkSubnet ) if (-not (Test-Path $TemplatePath)) @@ -19,7 +19,7 @@ if (-not (Test-Path $TemplatePath)) exit 1 } -$Image = [io.path]::GetFileNameWithoutExtension($TemplatePath) +$Image = [io.path]::GetFileName($TemplatePath).Split(".")[0] $TempResourceGroupName = "${ResourcesNamePrefix}_${Image}" $InstallPassword = [System.GUID]::NewGuid().ToString().ToUpper() @@ -59,4 +59,4 @@ packer build -var "capture_name_prefix=$ResourcesNamePrefix" ` $currentString = $_ $sensitiveString = $SensitiveData | Where-Object { $currentString -match $_ } $sensitiveString -eq $null - } \ No newline at end of file + } diff --git a/images.CI/linux-and-win/cleanup.ps1 b/images.CI/linux-and-win/cleanup.ps1 index e83acafa2..8f7b35d5c 100644 --- a/images.CI/linux-and-win/cleanup.ps1 +++ b/images.CI/linux-and-win/cleanup.ps1 @@ -14,10 +14,10 @@ $TempResourceGroupName = "${ResourcesNamePrefix}_${Image}" $groupExist = az group exists --name $TempResourceGroupName --subscription $SubscriptionId if ($groupExist -eq "true") { - $osDiskName = az group deployment list --resource-group $TempResourceGroupName --query "[].properties.parameters.osDiskName.value" -o tsv + $osDiskName = az deployment group list --resource-group $TempResourceGroupName --query "[].properties.parameters.osDiskName.value" -o tsv Write-Host "Found a match, deleting temporary files" az group delete --name $TempResourceGroupName --subscription $SubscriptionId --yes | Out-Null - Write-Host "Temporary group was deleted succesfully" + Write-Host "Temporary group was deleted successfully" Write-Host "Deleting OS disk" az storage remove --account-name $StorageAccount -c "images" -n "$osDiskName.vhd" --only-show-errors | Out-Null Write-Host "OS disk deleted" diff --git a/images.CI/linux-and-win/create-release.ps1 b/images.CI/linux-and-win/create-release.ps1 index 72d0db4e1..f32974c2d 100644 --- a/images.CI/linux-and-win/create-release.ps1 +++ b/images.CI/linux-and-win/create-release.ps1 @@ -26,6 +26,7 @@ $headers = @{ Authorization = "Basic ${base64AuthInfo}" } +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13 $NewRelease = Invoke-RestMethod $URL -Body $Body -Method "POST" -Headers $headers -ContentType "application/json" Write-Host "Created release: $($NewRelease._links.web.href)" \ No newline at end of file diff --git a/images.CI/macos/anka/Anka.Helpers.psm1 b/images.CI/macos/anka/Anka.Helpers.psm1 index dcf1550f2..7e57f36bd 100644 --- a/images.CI/macos/anka/Anka.Helpers.psm1 +++ b/images.CI/macos/anka/Anka.Helpers.psm1 @@ -197,7 +197,14 @@ function Wait-AnkaVMIPAddress { [int] $Seconds = 60 ) - $condition = { Get-AnkaVMIPAddress -VMName $VMName } + $condition = { + $vmStatus = Get-AnkaVMStatus -VMName $VMName + if ($vmStatus -eq "failed") { + Write-Host "`t [-] $VMName is in failed status" + exit 1 + } + Get-AnkaVMIPAddress -VMName $VMName + } $null = Invoke-WithRetry -BreakCondition $condition -RetryCount $RetryCount -Seconds $Seconds } diff --git a/images/linux/Ubuntu1804-Readme.md b/images/linux/Ubuntu1804-Readme.md index c5001ac9f..35eb7e541 100644 --- a/images/linux/Ubuntu1804-Readme.md +++ b/images/linux/Ubuntu1804-Readme.md @@ -1,44 +1,46 @@ | Announcements | |-| -| [[Ubuntu] PHP 7.1 will be removed from Ubuntu 18 on April, 18](https://github.com/actions/virtual-environments/issues/5326) | -| [[All OSs] Go versions less than 1.16 will be removed and the default will be set to 1.17 on April, 11](https://github.com/actions/virtual-environments/issues/5280) | +| [[all OSs] Android ndk-bundle along with old NDK versions will be deprecated on July, 24](https://github.com/actions/virtual-environments/issues/5879) | +| [(Public Beta) Ubuntu 22.04 is now available](https://github.com/actions/virtual-environments/issues/5490) | *** # Ubuntu 18.04.6 LTS -- Linux kernel version: 5.4.0-1074-azure -- Image Version: 20220410.2 +- Linux kernel version: 5.4.0-1086-azure +- Image Version: 20220717.1 ## Installed Software ### Language and Runtime - Bash 4.4.20(1)-release - Clang 9.0.0 - Clang-format 9.0.0 -- Erlang 24.3.3 (Eshell 12.3.1) -- Erlang rebar3 3.18.0 +- Clang-tidy 9.0.0 +- Dash 0.5.8-2.10 +- Erlang 25.0.2 (Eshell 13.0.2) +- Erlang rebar3 3.19.0 - GNU C++ 7.5.0, 9.4.0, 10.3.0 - GNU Fortran 7.5.0, 9.4.0, 10.3.0 -- Julia 1.7.2 -- Kotlin 1.6.20-release-275 -- Mono 6.12.0.122 (apt source repository: https://download.mono-project.com/repo/ubuntu stable-bionic main) -- MSBuild 16.6.0.15201 (from /usr/lib/mono/msbuild/15.0/bin/MSBuild.dll) -- Node 16.14.2 +- Julia 1.7.3 +- Kotlin 1.7.10-release-333 +- Mono 6.12.0.182 (apt source repository: https://download.mono-project.com/repo/ubuntu stable-bionic main) +- MSBuild 16.10.1.31701 (from /usr/lib/mono/msbuild/15.0/bin/MSBuild.dll) +- Node 16.16.0 - Perl 5.26.1 - Python 2.7.17 - Python3 3.6.9 - Ruby 2.5.1p57 -- Swift 5.6.1 +- Swift 5.6.2 ### Package Management - cpan 1.64 -- Helm 3.8.1 -- Homebrew 3.4.6 -- Miniconda 4.11.0 -- Npm 8.5.0 +- Helm 3.9.1 +- Homebrew 3.5.4 +- Miniconda 4.12.0 +- Npm 8.11.0 - Pip 9.0.1 - Pip3 9.0.1 - Pipx 1.0.0 - RubyGems 2.7.6 -- Vcpkg (build from master \) -- Yarn 1.22.18 +- Vcpkg (build from master \<68b7fec22>) +- Yarn 1.22.19 #### Environment variables | Name | Value | @@ -48,162 +50,166 @@ ### Project Management - Ant 1.10.5 -- Gradle 7.4.2 -- Maven 3.8.5 -- Sbt 1.6.2 +- Gradle 7.5 +- Maven 3.8.6 +- Sbt 1.7.1 ### Tools -- Ansible 2.11.10 +- Ansible 2.11.12 - apt-fast 1.9.12 -- AzCopy 10.14.1 (available by `azcopy` and `azcopy10` aliases) -- Bazel 5.1.1 -- Bazelisk 1.11.0 -- Bicep 0.5.6 -- Buildah 1.19.6 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) -- CMake 3.23.0 -- CodeQL Action Bundle 2.8.5 +- AzCopy 10.15.0 (available by `azcopy` and `azcopy10` aliases) +- Bazel 5.2.0 +- Bazelisk 1.12.0 +- Bicep 0.8.9 +- Buildah 1.22.3 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) +- CMake 3.23.2 +- CodeQL Action Bundle 2.10.0 +- Docker Amazon ECR Credential Helper 0.6.0 - Docker Compose v1 1.29.2 -- Docker Compose v2 2.4.1+azure-1 +- Docker Compose v2 2.6.1+azure-1 - Docker-Buildx 0.8.2 -- Docker-Moby Client 20.10.14+azure-1 -- Docker-Moby Server 20.10.14+azure-1 -- Git 2.35.1 (apt source repository: ppa:git-core/ppa) -- Git LFS 3.1.2 (apt source repository: https://packagecloud.io/install/repositories/github/git-lfs) +- Docker-Moby Client 20.10.17+azure-1 +- Docker-Moby Server 20.10.17+azure-1 +- Git 2.37.1 (apt source repository: ppa:git-core/ppa) +- Git LFS 3.2.0 (apt source repository: https://packagecloud.io/install/repositories/github/git-lfs) - Git-ftp 1.3.1 - Haveged 1.9.1 -- Heroku 7.60.1 -- HHVM (HipHop VM) 4.156.0 +- Heroku 7.60.2 +- HHVM (HipHop VM) 4.164.0 - jq 1.5 -- Kind 0.12.0 -- Kubectl 1.23.5 -- Kustomize 4.5.4 +- Kind 0.14.0 +- Kubectl 1.24.3 +- Kustomize 4.5.5 - Leiningen 2.9.8 - MediaInfo 17.12 - Mercurial 4.5.3 -- Minikube 1.25.2 -- n 8.1.0 +- Minikube 1.26.0 +- n 9.0.0 - Newman 5.3.2 - nvm 0.39.1 -- OpenSSL 1.1.1 11 Sep 2018 -- Packer 1.8.0 -- Parcel 2.4.1 +- OpenSSL 1.1.1-1ubuntu2.1~18.04.20 +- Packer 1.8.2 +- Parcel 2.6.2 - PhantomJS 2.1.1 -- Podman 3.0.1 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) -- Pulumi 3.28.0 -- R 4.1.3 -- Skopeo 1.2.2 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) +- Podman 3.4.2 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) +- Pulumi 3.36.0 +- R 4.2.0 +- Skopeo 1.5.0 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) - Sphinx Open Source Search Server 2.2.11 - SVN 1.9.7 -- Terraform 1.1.8 -- yamllint 1.26.3 -- yq 4.24.2 +- Terraform 1.2.5 +- yamllint 1.27.1 +- yq 4.26.1 - zstd 1.5.2 (homebrew) ### CLI Tools -- Alibaba Cloud CLI 3.0.116 -- AWS CLI 1.22.92 -- AWS CLI Session manager plugin 1.2.312.0 -- AWS SAM CLI 1.46.0 -- Azure CLI (azure-cli) 2.35.0 (installation method: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt) +- Alibaba Cloud CLI 3.0.124 +- AWS CLI 2.7.16 +- AWS CLI Session manager plugin 1.2.339.0 +- AWS SAM CLI 1.53.0 +- Azure CLI (azure-cli) 2.38.0 (installation method: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt) - Azure CLI (azure-devops) 0.25.0 -- GitHub CLI 2.7.0 +- GitHub CLI 2.14.2 - Google Cloud SDK 369.0.0 (apt source repository: https://packages.cloud.google.com/apt) - Hub CLI 2.14.2 -- Netlify CLI 9.16.4 -- OpenShift CLI 4.10.8 -- ORAS CLI 0.12.0 -- Vercel CLI 24.0.1 +- Netlify CLI 10.10.0 +- OpenShift CLI 4.10.22 +- ORAS CLI 0.13.0 +- Vercel CLI 27.1.5 ### Java | Version | Vendor | Environment Variable | | ------------------- | --------------- | -------------------- | -| 8.0.322+6 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | -| 11.0.14+1 | Eclipse Temurin | JAVA_HOME_11_X64 | +| 8.0.332+9 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | +| 11.0.15+10 | Eclipse Temurin | JAVA_HOME_11_X64 | | 12.0.2+10 | Adopt OpenJDK | JAVA_HOME_12_X64 | -| 17.0.2+8 | Eclipse Temurin | JAVA_HOME_17_X64 | +| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 | ### PHP -| Tool | Version | -| -------- | ---------------------------------------- | -| PHP | 7.1.33 7.2.34 7.3.33 7.4.28 8.0.17 8.1.4 | -| Composer | 2.2.9 | -| PHPUnit | 8.5.26 | +| Tool | Version | +| -------- | --------------------------------- | +| PHP | 7.2.34 7.3.33 7.4.30 8.0.21 8.1.8 | +| Composer | 2.3.10 | +| PHPUnit | 8.5.27 | ``` Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled. ``` ### Haskell - Cabal 3.6.2.0 -- GHC 9.2.2 -- GHCup 0.1.17.6 +- GHC 9.2.3 +- GHCup 0.1.17.8 - Stack 2.7.5 ### Rust Tools -- Cargo 1.60.0 -- Rust 1.60.0 -- Rustdoc 1.60.0 -- Rustup 1.24.3 +- Cargo 1.62.0 +- Rust 1.62.0 +- Rustdoc 1.62.0 +- Rustup 1.25.1 #### Packages -- Bindgen 0.59.2 -- Cargo audit 0.16.0 -- Cargo clippy 0.1.60 -- Cargo outdated -- Cbindgen 0.21.0 +- Bindgen 0.60.1 +- Cargo audit 0.17.0 +- Cargo clippy 0.1.62 +- Cargo outdated 0.11.1 +- Cbindgen 0.24.3 - Rustfmt 1.4.38 ### Browsers and Drivers -- Google Chrome 100.0.4896.75 -- ChromeDriver 100.0.4896.60 -- Mozilla Firefox 99.0 +- Google Chrome 103.0.5060.114 +- ChromeDriver 103.0.5060.53 +- Chromium 103.0.5060.0 +- Microsoft Edge 103.0.1264.62 (apt source repository: https://packages.microsoft.com/repos/edge) +- Microsoft Edge WebDriver 103.0.1264.62 +- Selenium server 4.3.0 +- Mozilla Firefox 102.0 - Geckodriver 0.31.0 -- Chromium 100.0.4896.0 -- Selenium server 4.1.0 #### Environment variables | Name | Value | | ----------------- | ----------------------------------- | | CHROMEWEBDRIVER | /usr/local/share/chrome_driver | +| EDGEWEBDRIVER | /usr/local/share/edge_driver | | GECKOWEBDRIVER | /usr/local/share/gecko_driver | | SELENIUM_JAR_PATH | /usr/share/java/selenium-server.jar | ### .NET Core SDK -- 3.1.120 3.1.202 3.1.302 3.1.417 5.0.104 5.0.212 5.0.303 5.0.406 6.0.201 +- 3.1.120 3.1.202 3.1.302 3.1.421 5.0.104 5.0.214 5.0.303 5.0.408 6.0.302 ### .NET tools -- nbgv 3.4.255+06fb9182bf +- nbgv 3.5.108+6e793d63d3 ### Databases -- MongoDB 5.0.7 (apt source repository: https://repo.mongodb.org/apt/ubuntu) +- MongoDB 5.0.9 (apt source repository: https://repo.mongodb.org/apt/ubuntu) - sqlite3 3.22.0 #### PostgreSQL -- PostgreSQL 14.2 (apt source repository: https://apt.postgresql.org/pub/repos/apt/) +- PostgreSQL 14.4 (apt source repository: https://apt.postgresql.org/pub/repos/apt/) - PostgreSQL Server (user:postgres) ``` PostgreSQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start postgresql.service' ``` #### MySQL -- MySQL 5.7.37 +- MySQL 5.7.38 - MySQL Server (user:root password:root) ``` MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service' ``` #### MS SQL Server Client Tools -- sqlcmd 17.9.0001.1 -- SqlPackage 16.0.5400.1 +- sqlcmd 17.10.0001.1 +- SqlPackage 16.0.6161.0 ### Cached Tools #### Go - 1.16.15 -- 1.17.8 -- 1.18.0 +- 1.17.12 +- 1.18.4 #### Node.js - 12.22.12 -- 14.19.1 -- 16.14.2 +- 14.20.0 +- 16.16.0 #### PyPy - 2.7.18 [PyPy 7.3.9] @@ -213,37 +219,38 @@ #### Python - 2.7.18 - 3.6.15 -- 3.7.12 -- 3.8.12 -- 3.9.12 -- 3.10.4 +- 3.7.13 +- 3.8.13 +- 3.9.13 +- 3.10.5 #### Ruby - 2.4.10 - 2.5.9 -- 2.6.9 -- 2.7.5 -- 3.0.3 +- 2.6.10 +- 2.7.6 +- 3.0.4 +- 3.1.2 #### Environment variables | Name | Value | Architecture | | --------------- | ----------------------------------- | ------------ | | GOROOT_1_16_X64 | /opt/hostedtoolcache/go/1.16.15/x64 | x64 | -| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.8/x64 | x64 | -| GOROOT_1_18_X64 | /opt/hostedtoolcache/go/1.18.0/x64 | x64 | +| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.12/x64 | x64 | +| GOROOT_1_18_X64 | /opt/hostedtoolcache/go/1.18.4/x64 | x64 | ### PowerShell Tools -- PowerShell 7.2.2 +- PowerShell 7.2.5 #### PowerShell Modules | Module | Version | | --------------- | ------- | | MarkdownPS | 1.9 | -| Microsoft.Graph | 1.9.3 | -| Pester | 5.3.1 | +| Microsoft.Graph | 1.10.0 | +| Pester | 5.3.3 | #### Az PowerShell Modules -- 7.1.0 3.1.0.zip 4.4.0.zip 5.9.0.zip 6.6.0.zip +- 7.5.0 3.1.0.zip 4.4.0.zip 5.9.0.zip 6.6.0.zip ### Web Servers | Name | Version | ConfigFile | ServiceStatus | ListenPort | @@ -252,29 +259,29 @@ | nginx | 1.14.0 | /etc/nginx/nginx.conf | inactive | 80 | ### Android -| Package Name | Version | -| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Android Command Line Tools | 4.0 | -| Android Emulator | 31.2.9 | -| Android SDK Build-tools | 32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3 | -| Android SDK Platform-Tools | 33.0.1 | -| Android SDK Platforms | android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3) | -| Android SDK Tools | 26.1.1 | -| Android Support Repository | 47.0.0 | -| CMake | 3.10.2
3.18.1 | -| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 | -| Google Play services | 49 | -| Google Repository | 58 | -| NDK | 21.4.7075529 (default)
23.1.7779620 | -| SDK Patch Applier v4 | 1 | +| Package Name | Version | +| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Android Command Line Tools | 7.0 | +| Android Emulator | 31.2.10 | +| Android SDK Build-tools | 33.0.0
32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3 | +| Android SDK Platform-Tools | 33.0.2 | +| Android SDK Platforms | android-33 (rev 2)
android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3) | +| Android SDK Tools | 26.1.1 | +| Android Support Repository | 47.0.0 | +| CMake | 3.10.2
3.18.1 | +| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 | +| Google Play services | 49 | +| Google Repository | 58 | +| NDK | 21.4.7075529
23.2.8568313 (default)
24.0.8215888 | +| SDK Patch Applier v4 | 1 | #### Environment variables | Name | Value | | ----------------------- | ------------------------------------------------------------------------------------ | | ANDROID_HOME | /usr/local/lib/android/sdk | -| ANDROID_NDK_HOME | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/21.4.7075529 | -| ANDROID_NDK_LATEST_HOME | /usr/local/lib/android/sdk/ndk/23.1.7779620 | -| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/21.4.7075529 | +| ANDROID_NDK_HOME | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/23.2.8568313 | +| ANDROID_NDK_LATEST_HOME | /usr/local/lib/android/sdk/ndk/24.0.8215888 | +| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/23.2.8568313 | | ANDROID_SDK_ROOT | /usr/local/lib/android/sdk | ### Cached Docker images @@ -283,22 +290,22 @@ | alpine:3.12 | sha256:c75ac27b49326926b803b9ed43bf088bc220d22556de1bc5f72d742c91398f69 | 2022-04-05 | | alpine:3.13 | sha256:ccf92aa53bc6c3b25be2ad0cce80baec1778f007f7e076b0ffbd1b225d0b3a9b | 2022-04-05 | | alpine:3.14 | sha256:06b5d462c92fc39303e6363c65e074559f8d6b1363250027ed5053557e3398c5 | 2022-04-05 | -| buildpack-deps:bullseye | sha256:b22e1a6daf16ea7e682e1d813aac528bb027f0772dc819716b4f41fbb06a3ffc | 2022-03-29 | -| buildpack-deps:buster | sha256:2c7b57f137d4ec1346ab226acd3eeac4f143ae2adc65a8abbd64489233065773 | 2022-03-29 | -| buildpack-deps:stretch | sha256:9cee83a572cc5f844548ee5f29eb0284772a162f312d7f049ad178207a0bae6d | 2022-03-29 | -| debian:10 | sha256:1b236b48c1ef66fa08535a5153266f4959bf58f948db3e68f7d678b651d8e33a | 2022-03-29 | -| debian:11 | sha256:87eefc7c15610cca61db5c0fd280911c6a737c0680d807432c0bd80cd0cca39b | 2022-03-29 | -| debian:9 | sha256:a8cc1744bbdd5266678e3e8b3e6387e45c053218438897e86876f2eb104e5534 | 2022-03-29 | -| moby/buildkit:latest | sha256:bd37f0b5567084cd6f4b1c73b7fed9e12258441d064cc2add29a7dd32243ff86 | 2022-04-07 | -| node:12 | sha256:461c7f8b5e042fa7f47620cbee7772e76ce3fa0891edaab29bf7ebf0e84b9a1a | 2022-03-31 | -| node:12-alpine | sha256:bbc10cf532971046b490806de40f5959fa3bdd0acb82955847bdb0ffd1ab4854 | 2022-04-05 | -| node:14 | sha256:b2d1c5df5e001b694115f64f4532c7eec2e5dbd73db6e0caacf0049bd0aed7d2 | 2022-03-31 | -| node:14-alpine | sha256:8845b4f88f64f8c56a39236648ba22946e806a6153c10911f77b70e5a2edb4ca | 2022-04-05 | -| node:16 | sha256:ffe804d6fcced29bcfc3477de079d03a9c2b0e4917e44bfeafb1a6b0f875e383 | 2022-03-31 | -| node:16-alpine | sha256:28bed508446db2ee028d08e76fb47b935defa26a84986ca050d2596ea67fd506 | 2022-04-05 | +| buildpack-deps:bullseye | sha256:4cbb6d56f192ea1868bdbc441269d0343c90b201c973931aaa6722300118d463 | 2022-07-12 | +| buildpack-deps:buster | sha256:3ab2863d37b2d037440b4a153a8fb3c79e935030fd47cef21b698688ce72f66e | 2022-07-12 | +| buildpack-deps:stretch | sha256:78e995165a5788c2f55aed6e548d8f6c1534830d4310c870408fccb2da8c5b2e | 2022-06-23 | +| debian:10 | sha256:0685c900f6e691bdda6980c0ed0779d20183bc58770059b64adb56cb8a3129f0 | 2022-07-12 | +| debian:11 | sha256:2ce44bbc00a79113c296d9d25524e15d423b23303fdbbe20190d2f96e0aeb251 | 2022-07-12 | +| debian:9 | sha256:c5c5200ff1e9c73ffbf188b4a67eb1c91531b644856b4aefe86a58d2f0cb05be | 2022-06-23 | +| moby/buildkit:latest | sha256:0dc312b04eac1b44cd2cad566deb1e886c753109208affbbec8384f381ff7f38 | 2022-05-06 | +| node:12 | sha256:01627afeb110b3054ba4a1405541ca095c8bfca1cb6f2be9479c767a2711879e | 2022-04-20 | +| node:12-alpine | sha256:d4b15b3d48f42059a15bd659be60afe21762aae9d6cbea6f124440895c27db68 | 2022-04-11 | +| node:14 | sha256:a086a11f7780399837ea0465ac8a8e8f14f2b66fe5a110fe0c24644d53a103c5 | 2022-07-12 | +| node:14-alpine | sha256:2af507df45e7c0a46c6b3001ce0dbc6924f7b39864d442045f781361a1971975 | 2022-07-08 | +| node:16 | sha256:2e1b4542d4a06e0e0442dc38af1f4828760aecc9db2b95e7df87f573640d98cd | 2022-07-12 | +| node:16-alpine | sha256:554142f9a6367f1fbd776a1b2048fab3a2cc7aa477d7fe9c00ce0f110aa45716 | 2022-07-08 | | ubuntu:16.04 | sha256:20858ebbc96215d6c3c574f781133ebffdc7c18d98af4f294cc4c04871a6fe61 | 2021-08-31 | -| ubuntu:18.04 | sha256:982d72c16416b09ffd2f71aa381f761422085eda1379dc66b668653607969e38 | 2022-04-05 | -| ubuntu:20.04 | sha256:9101220a875cee98b016668342c489ff0674f247f6ca20dfc91b91c0f28581ae | 2022-04-05 | +| ubuntu:18.04 | sha256:478caf1bec1afd54a58435ec681c8755883b7eb843a8630091890130b15a79af | 2022-06-06 | +| ubuntu:20.04 | sha256:fd92c36d3cb9b1d027c4d2a72c6bf0125da82425fc2ca37c414d4f010180dc19 | 2022-06-06 | ### Installed apt packages | Name | Version | @@ -312,44 +319,44 @@ | build-essential | 12.4ubuntu1 | | bzip2 | 1.0.6-8.1ubuntu0.2 | | coreutils | 8.28-1ubuntu1 | -| curl | 7.58.0-2ubuntu3.16 | -| dbus | 1.12.2-1ubuntu1.2 | +| curl | 7.58.0-2ubuntu3.19 | +| dbus | 1.12.2-1ubuntu1.3 | | dnsutils | 1:9.11.3+dfsg-1ubuntu1.17 | -| dpkg | 1.19.0.5ubuntu2.3 | +| dpkg | 1.19.0.5ubuntu2.4 | | fakeroot | 1.22-2ubuntu1 | | file | 1:5.32-2ubuntu0.4 | | flex | 2.6.4-6 | | ftp | 0.17-34 | -| gnupg2 | 2.2.4-1ubuntu1.4 | +| gnupg2 | 2.2.4-1ubuntu1.6 | | haveged | 1.9.1-6 | -| imagemagick | 8:6.9.7.4+dfsg-16ubuntu6.12 | +| imagemagick | 8:6.9.7.4+dfsg-16ubuntu6.13 | | iproute2 | 4.15.0-2ubuntu1.3 | | iputils-ping | 3:20161105-1ubuntu3 | | jq | 1.5+dfsg-2 | | lib32z1 | 1:1.2.11.dfsg-0ubuntu2.1 | | libc++-dev | 6.0-2 | | libc++abi-dev | 6.0-2 | -| libcurl3 | 7.58.0-2ubuntu3.16 | +| libcurl3 | 7.58.0-2ubuntu3.19 | | libgbm-dev | 20.0.8-0ubuntu1\~18.04.1 | | libgconf-2-4 | 3.2.6-4ubuntu1 | | libgsl-dev | 2.4+dfsg-6 | | libgtk-3-0 | 3.22.30-1ubuntu4 | | libmagic-dev | 1:5.32-2ubuntu0.4 | -| libmagickcore-dev | 8:6.9.7.4+dfsg-16ubuntu6.12 | -| libmagickwand-dev | 8:6.9.7.4+dfsg-16ubuntu6.12 | +| libmagickcore-dev | 8:6.9.7.4+dfsg-16ubuntu6.13 | +| libmagickwand-dev | 8:6.9.7.4+dfsg-16ubuntu6.13 | | libsecret-1-dev | 0.18.6-1 | -| libsqlite3-dev | 3.22.0-1ubuntu0.4 | +| libsqlite3-dev | 3.22.0-1ubuntu0.5 | | libtool | 2.4.6-2 | | libunwind8 | 1.2.1-8 | | libxkbfile-dev | 1:1.0.9-2 | | libxss1 | 1:1.2.2-1 | -| locales | 2.27-3ubuntu1.5 | +| locales | 2.27-3ubuntu1.6 | | m4 | 1.4.18-1 | | mediainfo | 17.12-1 | | mercurial | 4.5.3-1ubuntu2.2 | | net-tools | 1.60+git20161116.90da8a0-1ubuntu1 | | netcat | 1.10-41.1 | -| openssh-client | 1:7.6p1-4ubuntu0.6 | +| openssh-client | 1:7.6p1-4ubuntu0.7 | | p7zip-full | 16.02+dfsg-6 | | p7zip-rar | 16.02-2 | | parallel | 20161222-1 | @@ -362,10 +369,10 @@ | rsync | 3.1.2-2.1ubuntu1.4 | | shellcheck | 0.4.6-1 | | sphinxsearch | 2.2.11-2 | -| sqlite3 | 3.22.0-1ubuntu0.4 | -| ssh | 1:7.6p1-4ubuntu0.6 | +| sqlite3 | 3.22.0-1ubuntu0.5 | +| ssh | 1:7.6p1-4ubuntu0.7 | | sshpass | 1.06-1 | -| subversion | 1.9.7-4ubuntu1 | +| subversion | 1.9.7-4ubuntu1.1 | | sudo | 1.8.21p2-3ubuntu1.4 | | swig | 3.0.12-1 | | telnet | 0.17-41 | @@ -377,8 +384,8 @@ | upx | 3.94-4 | | wget | 1.19.4-1ubuntu2.2 | | xorriso | 1.4.8-3 | -| xvfb | 2:1.19.6-1ubuntu4.10 | -| xz-utils | 5.2.2-1.3 | +| xvfb | 2:1.19.6-1ubuntu4.11 | +| xz-utils | 5.2.2-1.3ubuntu0.1 | | zip | 3.0-11build1 | | zsync | 0.6.2-3ubuntu1 | diff --git a/images/linux/Ubuntu2004-Readme.md b/images/linux/Ubuntu2004-Readme.md index 16395d549..33a129822 100644 --- a/images/linux/Ubuntu2004-Readme.md +++ b/images/linux/Ubuntu2004-Readme.md @@ -1,44 +1,46 @@ | Announcements | |-| -| [[Ubuntu] PHP 7.1 will be removed from Ubuntu 18 on April, 18](https://github.com/actions/virtual-environments/issues/5326) | -| [[All OSs] Go versions less than 1.16 will be removed and the default will be set to 1.17 on April, 11](https://github.com/actions/virtual-environments/issues/5280) | +| [[all OSs] Android ndk-bundle along with old NDK versions will be deprecated on July, 24](https://github.com/actions/virtual-environments/issues/5879) | +| [(Public Beta) Ubuntu 22.04 is now available](https://github.com/actions/virtual-environments/issues/5490) | *** # Ubuntu 20.04.4 LTS -- Linux kernel version: 5.13.0-1021-azure -- Image Version: 20220410.2 +- Linux kernel version: 5.15.0-1014-azure +- Image Version: 20220717.1 ## Installed Software ### Language and Runtime - Bash 5.0.17(1)-release - Clang 10.0.0, 11.0.0, 12.0.0 - Clang-format 10.0.0, 11.0.0, 12.0.0 -- Erlang 24.3.3 (Eshell 12.3.1) -- Erlang rebar3 3.18.0 +- Clang-tidy 10.0.0, 11.0.0, 12.0.0 +- Dash 0.5.10.2-6 +- Erlang 25.0.2 (Eshell 13.0.2) +- Erlang rebar3 3.19.0 - GNU C++ 9.4.0, 10.3.0 - GNU Fortran 9.4.0, 10.3.0 -- Julia 1.7.2 -- Kotlin 1.6.20-release-275 -- Mono 6.12.0.122 (apt source repository: https://download.mono-project.com/repo/ubuntu stable-focal main) -- MSBuild 16.6.0.15201 (from /usr/lib/mono/msbuild/15.0/bin/MSBuild.dll) -- Node 16.14.2 +- Julia 1.7.3 +- Kotlin 1.7.10-release-333 +- Mono 6.12.0.182 (apt source repository: https://download.mono-project.com/repo/ubuntu stable-focal main) +- MSBuild 16.10.1.31701 (from /usr/lib/mono/msbuild/15.0/bin/MSBuild.dll) +- Node 16.16.0 - Perl 5.30.0 - Python 3.8.10 - Python3 3.8.10 - Ruby 2.7.0p0 -- Swift 5.6.1 +- Swift 5.6.2 ### Package Management - cpan 1.64 -- Helm 3.8.1 -- Homebrew 3.4.6 -- Miniconda 4.11.0 -- Npm 8.5.0 +- Helm 3.9.1 +- Homebrew 3.5.4 +- Miniconda 4.12.0 +- Npm 8.11.0 - Pip 20.0.2 - Pip3 20.0.2 -- Pipx 1.0.0 +- Pipx 1.1.0 - RubyGems 3.1.2 -- Vcpkg (build from master \) -- Yarn 1.22.18 +- Vcpkg (build from master \<68b7fec22>) +- Yarn 1.22.19 #### Environment variables | Name | Value | @@ -48,168 +50,172 @@ ### Project Management - Ant 1.10.7 -- Gradle 7.4.2 -- Lerna 4.0.0 -- Maven 3.8.5 -- Sbt 1.6.2 +- Gradle 7.5 +- Lerna 5.1.8 +- Maven 3.8.6 +- Sbt 1.7.1 ### Tools -- Ansible 2.12.4 +- Ansible 2.13.1 - apt-fast 1.9.12 -- AzCopy 10.14.1 (available by `azcopy` and `azcopy10` aliases) -- Bazel 5.1.1 -- Bazelisk 1.11.0 -- Bicep 0.5.6 -- Buildah 1.21.3 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) -- CMake 3.23.0 -- CodeQL Action Bundle 2.8.5 +- AzCopy 10.15.0 (available by `azcopy` and `azcopy10` aliases) +- Bazel 5.2.0 +- Bazelisk 1.12.0 +- Bicep 0.8.9 +- Buildah 1.22.3 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) +- CMake 3.23.2 +- CodeQL Action Bundle 2.10.0 +- Docker Amazon ECR Credential Helper 0.6.0 - Docker Compose v1 1.29.2 -- Docker Compose v2 2.4.1+azure-1 +- Docker Compose v2 2.6.1+azure-1 - Docker-Buildx 0.8.2 -- Docker-Moby Client 20.10.14+azure-1 -- Docker-Moby Server 20.10.14+azure-1 -- Fastlane 2.205.1 -- Git 2.35.1 (apt source repository: ppa:git-core/ppa) -- Git LFS 3.1.2 (apt source repository: https://packagecloud.io/install/repositories/github/git-lfs) +- Docker-Moby Client 20.10.17+azure-1 +- Docker-Moby Server 20.10.17+azure-1 +- Fastlane 2.207.0 +- Git 2.37.1 (apt source repository: ppa:git-core/ppa) +- Git LFS 3.2.0 (apt source repository: https://packagecloud.io/install/repositories/github/git-lfs) - Git-ftp 1.6.0 - Haveged 1.9.1 -- Heroku 7.60.1 -- HHVM (HipHop VM) 4.156.0 +- Heroku 7.60.2 +- HHVM (HipHop VM) 4.164.0 - jq 1.6 -- Kind 0.12.0 -- Kubectl 1.23.5 -- Kustomize 4.5.4 +- Kind 0.14.0 +- Kubectl 1.24.3 +- Kustomize 4.5.5 - Leiningen 2.9.8 - MediaInfo 19.09 - Mercurial 5.3.1 -- Minikube 1.25.2 -- n 8.1.0 +- Minikube 1.26.0 +- n 9.0.0 - Newman 5.3.2 - nvm 0.39.1 -- OpenSSL 1.1.1f 31 Mar 2020 -- Packer 1.8.0 -- Parcel 2.4.1 +- OpenSSL 1.1.1f-1ubuntu2.16 +- Packer 1.8.2 +- Parcel 2.6.2 - PhantomJS 2.1.1 - Podman 3.4.2 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) -- Pulumi 3.28.0 -- R 4.1.3 -- Skopeo 1.3.0 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) +- Pulumi 3.36.0 +- R 4.2.1 +- Skopeo 1.5.0 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) - Sphinx Open Source Search Server 2.2.11 - SVN 1.13.0 -- Terraform 1.1.8 -- yamllint 1.26.3 -- yq 4.24.2 +- Terraform 1.2.5 +- yamllint 1.27.1 +- yq 4.26.1 - zstd 1.5.2 (homebrew) ### CLI Tools -- Alibaba Cloud CLI 3.0.116 -- AWS CLI 2.5.4 -- AWS CLI Session manager plugin 1.2.312.0 -- AWS SAM CLI 1.46.0 -- Azure CLI (azure-cli) 2.35.0 (installation method: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt) +- Alibaba Cloud CLI 3.0.124 +- AWS CLI 2.7.16 +- AWS CLI Session manager plugin 1.2.339.0 +- AWS SAM CLI 1.53.0 +- Azure CLI (azure-cli) 2.38.0 (installation method: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt) - Azure CLI (azure-devops) 0.25.0 -- GitHub CLI 2.7.0 +- GitHub CLI 2.14.2 - Google Cloud SDK 369.0.0 (apt source repository: https://packages.cloud.google.com/apt) - Hub CLI 2.14.2 -- Netlify CLI 9.16.5 -- OpenShift CLI 4.10.8 -- ORAS CLI 0.12.0 -- Vercel CLI 24.0.1 +- Netlify CLI 10.10.0 +- OpenShift CLI 4.10.22 +- ORAS CLI 0.13.0 +- Vercel CLI 27.1.5 ### Java -| Version | Vendor | Environment Variable | -| ------------------- | --------------- | -------------------- | -| 8.0.322+6 | Eclipse Temurin | JAVA_HOME_8_X64 | -| 11.0.14+1 (default) | Eclipse Temurin | JAVA_HOME_11_X64 | -| 17.0.2+8 | Eclipse Temurin | JAVA_HOME_17_X64 | +| Version | Vendor | Environment Variable | +| -------------------- | --------------- | -------------------- | +| 8.0.332+9 | Eclipse Temurin | JAVA_HOME_8_X64 | +| 11.0.15+10 (default) | Eclipse Temurin | JAVA_HOME_11_X64 | +| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 | ### GraalVM -| Version | Environment variables | -| ----------- | --------------------- | -| CE 22.0.0.2 | GRAALVM_11_ROOT | +| Version | Environment variables | +| --------- | --------------------- | +| CE 22.1.0 | GRAALVM_11_ROOT | ### PHP | Tool | Version | | -------- | ------------------- | -| PHP | 7.4.28 8.0.17 8.1.4 | -| Composer | 2.3.4 | -| PHPUnit | 8.5.26 | +| PHP | 7.4.30 8.0.21 8.1.8 | +| Composer | 2.3.10 | +| PHPUnit | 8.5.27 | ``` Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled. ``` ### Haskell - Cabal 3.6.2.0 -- GHC 9.2.2 -- GHCup 0.1.17.6 +- GHC 9.2.3 +- GHCup 0.1.17.8 - Stack 2.7.5 ### Rust Tools -- Cargo 1.60.0 -- Rust 1.60.0 -- Rustdoc 1.60.0 -- Rustup 1.24.3 +- Cargo 1.62.0 +- Rust 1.62.0 +- Rustdoc 1.62.0 +- Rustup 1.25.1 #### Packages -- Bindgen 0.59.2 -- Cargo audit 0.16.0 -- Cargo clippy 0.1.60 -- Cargo outdated -- Cbindgen 0.21.0 +- Bindgen 0.60.1 +- Cargo audit 0.17.0 +- Cargo clippy 0.1.62 +- Cargo outdated 0.11.1 +- Cbindgen 0.24.3 - Rustfmt 1.4.38 ### Browsers and Drivers -- Google Chrome 100.0.4896.75 -- ChromeDriver 100.0.4896.60 -- Mozilla Firefox 99.0 +- Google Chrome 103.0.5060.114 +- ChromeDriver 103.0.5060.53 +- Chromium 103.0.5060.0 +- Microsoft Edge 103.0.1264.62 (apt source repository: https://packages.microsoft.com/repos/edge) +- Microsoft Edge WebDriver 103.0.1264.62 +- Selenium server 4.3.0 +- Mozilla Firefox 102.0 - Geckodriver 0.31.0 -- Chromium 100.0.4896.0 -- Selenium server 4.1.0 #### Environment variables | Name | Value | | ----------------- | ----------------------------------- | | CHROMEWEBDRIVER | /usr/local/share/chrome_driver | +| EDGEWEBDRIVER | /usr/local/share/edge_driver | | GECKOWEBDRIVER | /usr/local/share/gecko_driver | | SELENIUM_JAR_PATH | /usr/share/java/selenium-server.jar | ### .NET Core SDK -- 3.1.120 3.1.202 3.1.302 3.1.417 5.0.104 5.0.212 5.0.303 5.0.406 6.0.201 +- 3.1.120 3.1.202 3.1.302 3.1.421 5.0.104 5.0.214 5.0.303 5.0.408 6.0.302 ### .NET tools -- nbgv 3.4.255+06fb9182bf +- nbgv 3.5.108+6e793d63d3 ### Databases -- MongoDB 5.0.7 (apt source repository: https://repo.mongodb.org/apt/ubuntu) +- MongoDB 5.0.9 (apt source repository: https://repo.mongodb.org/apt/ubuntu) - sqlite3 3.31.1 #### PostgreSQL -- PostgreSQL 14.2 (apt source repository: https://apt.postgresql.org/pub/repos/apt/) +- PostgreSQL 14.4 (apt source repository: https://apt.postgresql.org/pub/repos/apt/) - PostgreSQL Server (user:postgres) ``` PostgreSQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start postgresql.service' ``` #### MySQL -- MySQL 8.0.28-0ubuntu0.20.04.3 +- MySQL 8.0.29-0ubuntu0.20.04.3 - MySQL Server (user:root password:root) ``` MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service' ``` #### MS SQL Server Client Tools -- sqlcmd 17.9.0001.1 -- SqlPackage 16.0.5400.1 +- sqlcmd 17.10.0001.1 +- SqlPackage 16.0.6161.0 ### Cached Tools #### Go - 1.16.15 -- 1.17.8 -- 1.18.0 +- 1.17.12 +- 1.18.4 #### Node.js - 12.22.12 -- 14.19.1 -- 16.14.2 +- 14.20.0 +- 16.16.0 #### PyPy - 2.7.18 [PyPy 7.3.9] @@ -221,37 +227,38 @@ #### Python - 2.7.18 - 3.6.15 -- 3.7.12 -- 3.8.12 -- 3.9.12 -- 3.10.4 +- 3.7.13 +- 3.8.13 +- 3.9.13 +- 3.10.5 #### Ruby - 2.5.9 -- 2.6.9 -- 2.7.5 -- 3.0.3 +- 2.6.10 +- 2.7.6 +- 3.0.4 +- 3.1.2 #### Environment variables | Name | Value | Architecture | | --------------- | ----------------------------------- | ------------ | | GOROOT_1_16_X64 | /opt/hostedtoolcache/go/1.16.15/x64 | x64 | -| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.8/x64 | x64 | -| GOROOT_1_18_X64 | /opt/hostedtoolcache/go/1.18.0/x64 | x64 | +| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.12/x64 | x64 | +| GOROOT_1_18_X64 | /opt/hostedtoolcache/go/1.18.4/x64 | x64 | ### PowerShell Tools -- PowerShell 7.2.2 +- PowerShell 7.2.5 #### PowerShell Modules | Module | Version | | ---------------- | ------- | | MarkdownPS | 1.9 | -| Microsoft.Graph | 1.9.3 | -| Pester | 5.3.1 | +| Microsoft.Graph | 1.10.0 | +| Pester | 5.3.3 | | PSScriptAnalyzer | 1.20.0 | #### Az PowerShell Modules -- 7.1.0 3.1.0.zip 4.4.0.zip 5.9.0.zip 6.6.0.zip +- 7.5.0 3.1.0.zip 4.4.0.zip 5.9.0.zip 6.6.0.zip ### Web Servers | Name | Version | ConfigFile | ServiceStatus | ListenPort | @@ -261,28 +268,28 @@ | nginx | 1.18.0 | /etc/nginx/nginx.conf | inactive | 80 | ### Android -| Package Name | Version | -| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Android Command Line Tools | 4.0 | -| Android Emulator | 31.2.9 | -| Android SDK Build-tools | 32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 | -| Android SDK Platform-Tools | 33.0.1 | -| Android SDK Platforms | android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) | -| Android SDK Tools | 26.1.1 | -| Android Support Repository | 47.0.0 | -| CMake | 3.10.2
3.18.1 | -| Google Play services | 49 | -| Google Repository | 58 | -| NDK | 21.4.7075529 (default)
22.1.7171670
23.1.7779620 | -| SDK Patch Applier v4 | 1 | +| Package Name | Version | +| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Android Command Line Tools | 7.0 | +| Android Emulator | 31.2.10 | +| Android SDK Build-tools | 33.0.0
32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 | +| Android SDK Platform-Tools | 33.0.2 | +| Android SDK Platforms | android-33 (rev 2)
android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) | +| Android SDK Tools | 26.1.1 | +| Android Support Repository | 47.0.0 | +| CMake | 3.10.2
3.18.1 | +| Google Play services | 49 | +| Google Repository | 58 | +| NDK | 21.4.7075529
23.2.8568313 (default)
24.0.8215888 | +| SDK Patch Applier v4 | 1 | #### Environment variables | Name | Value | | ----------------------- | ------------------------------------------------------------------------------------ | | ANDROID_HOME | /usr/local/lib/android/sdk | -| ANDROID_NDK_HOME | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/21.4.7075529 | -| ANDROID_NDK_LATEST_HOME | /usr/local/lib/android/sdk/ndk/23.1.7779620 | -| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/21.4.7075529 | +| ANDROID_NDK_HOME | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/23.2.8568313 | +| ANDROID_NDK_LATEST_HOME | /usr/local/lib/android/sdk/ndk/24.0.8215888 | +| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/23.2.8568313 | | ANDROID_SDK_ROOT | /usr/local/lib/android/sdk | ### Cached Docker images @@ -291,22 +298,22 @@ | alpine:3.12 | sha256:c75ac27b49326926b803b9ed43bf088bc220d22556de1bc5f72d742c91398f69 | 2022-04-05 | | alpine:3.13 | sha256:ccf92aa53bc6c3b25be2ad0cce80baec1778f007f7e076b0ffbd1b225d0b3a9b | 2022-04-05 | | alpine:3.14 | sha256:06b5d462c92fc39303e6363c65e074559f8d6b1363250027ed5053557e3398c5 | 2022-04-05 | -| buildpack-deps:bullseye | sha256:b22e1a6daf16ea7e682e1d813aac528bb027f0772dc819716b4f41fbb06a3ffc | 2022-03-29 | -| buildpack-deps:buster | sha256:2c7b57f137d4ec1346ab226acd3eeac4f143ae2adc65a8abbd64489233065773 | 2022-03-29 | -| buildpack-deps:stretch | sha256:9cee83a572cc5f844548ee5f29eb0284772a162f312d7f049ad178207a0bae6d | 2022-03-29 | -| debian:10 | sha256:1b236b48c1ef66fa08535a5153266f4959bf58f948db3e68f7d678b651d8e33a | 2022-03-29 | -| debian:11 | sha256:87eefc7c15610cca61db5c0fd280911c6a737c0680d807432c0bd80cd0cca39b | 2022-03-29 | -| debian:9 | sha256:a8cc1744bbdd5266678e3e8b3e6387e45c053218438897e86876f2eb104e5534 | 2022-03-29 | -| moby/buildkit:latest | sha256:bd37f0b5567084cd6f4b1c73b7fed9e12258441d064cc2add29a7dd32243ff86 | 2022-04-07 | -| node:12 | sha256:461c7f8b5e042fa7f47620cbee7772e76ce3fa0891edaab29bf7ebf0e84b9a1a | 2022-03-31 | -| node:12-alpine | sha256:bbc10cf532971046b490806de40f5959fa3bdd0acb82955847bdb0ffd1ab4854 | 2022-04-05 | -| node:14 | sha256:b2d1c5df5e001b694115f64f4532c7eec2e5dbd73db6e0caacf0049bd0aed7d2 | 2022-03-31 | -| node:14-alpine | sha256:8845b4f88f64f8c56a39236648ba22946e806a6153c10911f77b70e5a2edb4ca | 2022-04-05 | -| node:16 | sha256:ffe804d6fcced29bcfc3477de079d03a9c2b0e4917e44bfeafb1a6b0f875e383 | 2022-03-31 | -| node:16-alpine | sha256:28bed508446db2ee028d08e76fb47b935defa26a84986ca050d2596ea67fd506 | 2022-04-05 | +| buildpack-deps:bullseye | sha256:4cbb6d56f192ea1868bdbc441269d0343c90b201c973931aaa6722300118d463 | 2022-07-12 | +| buildpack-deps:buster | sha256:3ab2863d37b2d037440b4a153a8fb3c79e935030fd47cef21b698688ce72f66e | 2022-07-12 | +| buildpack-deps:stretch | sha256:78e995165a5788c2f55aed6e548d8f6c1534830d4310c870408fccb2da8c5b2e | 2022-06-23 | +| debian:10 | sha256:0685c900f6e691bdda6980c0ed0779d20183bc58770059b64adb56cb8a3129f0 | 2022-07-12 | +| debian:11 | sha256:2ce44bbc00a79113c296d9d25524e15d423b23303fdbbe20190d2f96e0aeb251 | 2022-07-12 | +| debian:9 | sha256:c5c5200ff1e9c73ffbf188b4a67eb1c91531b644856b4aefe86a58d2f0cb05be | 2022-06-23 | +| moby/buildkit:latest | sha256:0dc312b04eac1b44cd2cad566deb1e886c753109208affbbec8384f381ff7f38 | 2022-05-06 | +| node:12 | sha256:01627afeb110b3054ba4a1405541ca095c8bfca1cb6f2be9479c767a2711879e | 2022-04-20 | +| node:12-alpine | sha256:d4b15b3d48f42059a15bd659be60afe21762aae9d6cbea6f124440895c27db68 | 2022-04-11 | +| node:14 | sha256:a086a11f7780399837ea0465ac8a8e8f14f2b66fe5a110fe0c24644d53a103c5 | 2022-07-12 | +| node:14-alpine | sha256:2af507df45e7c0a46c6b3001ce0dbc6924f7b39864d442045f781361a1971975 | 2022-07-08 | +| node:16 | sha256:2e1b4542d4a06e0e0442dc38af1f4828760aecc9db2b95e7df87f573640d98cd | 2022-07-12 | +| node:16-alpine | sha256:554142f9a6367f1fbd776a1b2048fab3a2cc7aa477d7fe9c00ce0f110aa45716 | 2022-07-08 | | ubuntu:16.04 | sha256:20858ebbc96215d6c3c574f781133ebffdc7c18d98af4f294cc4c04871a6fe61 | 2021-08-31 | -| ubuntu:18.04 | sha256:982d72c16416b09ffd2f71aa381f761422085eda1379dc66b668653607969e38 | 2022-04-05 | -| ubuntu:20.04 | sha256:9101220a875cee98b016668342c489ff0674f247f6ca20dfc91b91c0f28581ae | 2022-04-05 | +| ubuntu:18.04 | sha256:478caf1bec1afd54a58435ec681c8755883b7eb843a8630091890130b15a79af | 2022-06-06 | +| ubuntu:20.04 | sha256:fd92c36d3cb9b1d027c4d2a72c6bf0125da82425fc2ca37c414d4f010180dc19 | 2022-06-06 | ### Installed apt packages | Name | Version | @@ -321,16 +328,16 @@ | build-essential | 12.8ubuntu1.1 | | bzip2 | 1.0.8-2 | | coreutils | 8.30-3ubuntu2 | -| curl | 7.68.0-1ubuntu2.7 | -| dbus | 1.12.16-2ubuntu2.1 | +| curl | 7.68.0-1ubuntu2.12 | +| dbus | 1.12.16-2ubuntu2.2 | | dnsutils | 1:9.16.1-0ubuntu2.10 | -| dpkg | 1.19.7ubuntu3 | +| dpkg | 1.19.7ubuntu3.2 | | fakeroot | 1.24-1 | | file | 1:5.38-4 | | flex | 2.6.4-6.2 | | fonts-noto-color-emoji | 0\~20200916-1\~ubuntu20.04.1 | | ftp | 0.17-34.1 | -| gnupg2 | 2.2.19-3ubuntu2.1 | +| gnupg2 | 2.2.19-3ubuntu2.2 | | haveged | 1.9.1-6ubuntu1 | | imagemagick | 8:6.9.10.23+dfsg-2.1ubuntu11.4 | | iproute2 | 5.5.0-1ubuntu1 | @@ -339,7 +346,7 @@ | lib32z1 | 1:1.2.11.dfsg-2ubuntu1.3 | | libc++-dev | 1:10.0-50\~exp1 | | libc++abi-dev | 1:10.0-50\~exp1 | -| libcurl4 | 7.68.0-1ubuntu2.7 | +| libcurl4 | 7.68.0-1ubuntu2.12 | | libgbm-dev | 21.2.6-0ubuntu0.1\~20.04.2 | | libgconf-2-4 | 3.2.6-6ubuntu1 | | libgsl-dev | 2.5+dfsg-6build1 | @@ -348,18 +355,18 @@ | libmagickcore-dev | 8:6.9.10.23+dfsg-2.1ubuntu11.4 | | libmagickwand-dev | 8:6.9.10.23+dfsg-2.1ubuntu11.4 | | libsecret-1-dev | 0.20.4-0ubuntu1 | -| libsqlite3-dev | 3.31.1-4ubuntu0.2 | +| libsqlite3-dev | 3.31.1-4ubuntu0.3 | | libtool | 2.4.6-14 | | libunwind8 | 1.2.1-9build1 | | libxkbfile-dev | 1:1.1.0-1 | | libxss1 | 1:1.2.3-1 | -| locales | 2.31-0ubuntu9.7 | +| locales | 2.31-0ubuntu9.9 | | m4 | 1.4.18-4 | | mediainfo | 19.09-1build1 | | mercurial | 5.3.1-1ubuntu1 | | net-tools | 1.60+git20180626.aebd88e-1ubuntu1 | | netcat | 1.206-1ubuntu1 | -| openssh-client | 1:8.2p1-4ubuntu0.4 | +| openssh-client | 1:8.2p1-4ubuntu0.5 | | p7zip-full | 16.02+dfsg-7build1 | | p7zip-rar | 16.02-3build1 | | parallel | 20161222-1.1 | @@ -372,10 +379,10 @@ | rsync | 3.1.3-8ubuntu0.3 | | shellcheck | 0.7.0-2build2 | | sphinxsearch | 2.2.11-2ubuntu2 | -| sqlite3 | 3.31.1-4ubuntu0.2 | -| ssh | 1:8.2p1-4ubuntu0.4 | +| sqlite3 | 3.31.1-4ubuntu0.3 | +| ssh | 1:8.2p1-4ubuntu0.5 | | sshpass | 1.06-1 | -| subversion | 1.13.0-3 | +| subversion | 1.13.0-3ubuntu0.2 | | sudo | 1.8.31-1ubuntu1.2 | | swig | 4.0.1-5build1 | | telnet | 0.17-41.2build1 | @@ -387,8 +394,8 @@ | upx | 3.95-2build1 | | wget | 1.20.3-1ubuntu2 | | xorriso | 1.5.2-1 | -| xvfb | 2:1.20.13-1ubuntu1\~20.04.2 | -| xz-utils | 5.2.4-1ubuntu1 | +| xvfb | 2:1.20.13-1ubuntu1\~20.04.3 | +| xz-utils | 5.2.4-1ubuntu1.1 | | zip | 3.0-11build1 | | zsync | 0.6.2-3ubuntu1 | diff --git a/images/linux/Ubuntu2204-Readme.md b/images/linux/Ubuntu2204-Readme.md new file mode 100644 index 000000000..8bdef57f5 --- /dev/null +++ b/images/linux/Ubuntu2204-Readme.md @@ -0,0 +1,368 @@ +| Announcements | +|-| +| [[all OSs] Android ndk-bundle along with old NDK versions will be deprecated on July, 24](https://github.com/actions/virtual-environments/issues/5879) | +| [(Public Beta) Ubuntu 22.04 is now available](https://github.com/actions/virtual-environments/issues/5490) | +*** +# Ubuntu 22.04 LTS +- Linux kernel version: 5.15.0-1014-azure +- Image Version: 20220717.1 + +## Installed Software +### Language and Runtime +- Bash 5.1.16(1)-release +- Clang 12.0.1, 13.0.1, 14.0.0 +- Clang-format 12.0.1, 13.0.1, 14.0.0 +- Clang-tidy 12.0.1, 13.0.1, 14.0.0 +- Dash 0.5.11+git20210903+057cd650a4ed-3build1 +- GNU C++ 9.4.0, 10.3.0, 11.2.0 +- GNU Fortran 9.4.0, 10.3.0, 11.2.0 +- Julia 1.7.3 +- Kotlin 1.7.10-release-333 +- Node 16.16.0 +- Perl 5.34.0 +- Python 3.10.4 +- Python3 3.10.4 +- Ruby 3.0.2p107 + +### Package Management +- cpan 1.64 +- Helm 3.9.1 +- Homebrew 3.5.4 +- Miniconda 4.12.0 +- Npm 8.11.0 +- Pip 22.0.2 +- Pip3 22.0.2 +- Pipx 1.1.0 +- RubyGems 3.3.5 +- Vcpkg (build from master \<68b7fec22>) +- Yarn 1.22.19 + +#### Environment variables +| Name | Value | +| ----------------------- | ---------------------- | +| CONDA | /usr/share/miniconda | +| VCPKG_INSTALLATION_ROOT | /usr/local/share/vcpkg | + +### Project Management +- Lerna 5.1.8 + +### Tools +- Ansible 2.13.1 +- apt-fast 1.9.12 +- AzCopy 10.15.0 (available by `azcopy` and `azcopy10` aliases) +- Bazel 5.2.0 +- Bazelisk 1.12.0 +- Bicep 0.8.9 +- Buildah 1.23.1 +- CMake 3.23.2 +- CodeQL Action Bundle 2.10.0 +- Docker Amazon ECR Credential Helper 0.6.0 +- Docker Compose v1 1.29.2 +- Docker Compose v2 2.6.1+azure-1 +- Docker-Buildx 0.8.2 +- Docker-Moby Client 20.10.17+azure-1 +- Docker-Moby Server 20.10.17+azure-1 +- Fastlane 2.207.0 +- Git 2.37.1 (apt source repository: ppa:git-core/ppa) +- Git LFS 3.2.0 (apt source repository: https://packagecloud.io/install/repositories/github/git-lfs) +- Git-ftp 1.6.0 +- Haveged 1.9.14 +- Heroku 7.60.2 +- jq 1.6 +- Kind 0.14.0 +- Kubectl 1.24.3 +- Kustomize 4.5.5 +- Leiningen 2.9.8 +- MediaInfo 21.09 +- Mercurial 6.1.1 +- Minikube 1.26.0 +- n 9.0.0 +- Newman 5.3.2 +- nvm 0.39.1 +- OpenSSL 3.0.2-0ubuntu1.6 +- Packer 1.8.2 +- Parcel 2.6.2 +- Podman 3.4.4 +- Pulumi 3.36.0 +- R 4.2.1 +- Skopeo 1.4.1 +- Sphinx Open Source Search Server 2.2.11 +- SVN 1.14.1 +- Terraform 1.2.5 +- yamllint 1.27.1 +- yq 4.26.1 +- zstd 1.5.2 (homebrew) + +### CLI Tools +- Alibaba Cloud CLI 3.0.124 +- AWS CLI 2.7.16 +- AWS CLI Session manager plugin 1.2.339.0 +- AWS SAM CLI 1.53.0 +- Azure CLI (azure-cli) 2.38.0 (installation method: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt) +- Azure CLI (azure-devops) 0.25.0 +- GitHub CLI 2.14.2 +- Google Cloud SDK 369.0.0 (apt source repository: https://packages.cloud.google.com/apt) +- Hub CLI 2.14.2 +- Netlify CLI 10.10.0 +- OpenShift CLI 4.10.22 +- ORAS CLI 0.13.0 +- Vercel CLI 27.1.5 + +### Java +| Version | Vendor | Environment Variable | +| -------------------- | --------------- | -------------------- | +| 8.0.332+9 | Eclipse Temurin | JAVA_HOME_8_X64 | +| 11.0.15+10 (default) | Eclipse Temurin | JAVA_HOME_11_X64 | +| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 | + +### GraalVM +| Version | Environment variables | +| --------- | --------------------- | +| CE 22.1.0 | GRAALVM_11_ROOT | + +### PHP +| Tool | Version | +| -------- | ------- | +| PHP | 8.1.8 | +| Composer | 2.3.10 | +| PHPUnit | 8.5.27 | +``` + Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled. +``` +### Haskell +- Cabal 3.6.2.0 +- GHC 9.2.3 +- GHCup 0.1.17.8 +- Stack 2.7.5 + +### Rust Tools +- Cargo 1.62.0 +- Rust 1.62.0 +- Rustdoc 1.62.0 +- Rustup 1.25.1 + +#### Packages +- Bindgen 0.60.1 +- Cargo audit 0.17.0 +- Cargo clippy 0.1.62 +- Cargo outdated 0.11.1 +- Cbindgen 0.24.3 +- Rustfmt 1.4.38 + +### Browsers and Drivers +- Google Chrome 103.0.5060.114 +- ChromeDriver 103.0.5060.53 +- Chromium 103.0.5060.0 +- Microsoft Edge 103.0.1264.62 (apt source repository: https://packages.microsoft.com/repos/edge) +- Microsoft Edge WebDriver 103.0.1264.62 +- Selenium server 4.3.0 + +#### Environment variables +| Name | Value | +| ----------------- | ----------------------------------- | +| CHROMEWEBDRIVER | /usr/local/share/chrome_driver | +| EDGEWEBDRIVER | /usr/local/share/edge_driver | +| GECKOWEBDRIVER | | +| SELENIUM_JAR_PATH | /usr/share/java/selenium-server.jar | + +### .NET Core SDK +- 6.0.302 + +### .NET tools +- nbgv 3.5.108+6e793d63d3 + +### Databases +- sqlite3 3.37.2 + +#### PostgreSQL +- PostgreSQL 14.4 (apt source repository: https://apt.postgresql.org/pub/repos/apt/) +- PostgreSQL Server (user:postgres) + +``` + PostgreSQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start postgresql.service' +``` +#### MySQL +- MySQL 8.0.29-0ubuntu0.22.04.2 +- MySQL Server (user:root password:root) + +``` + MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service' +``` +### Cached Tools +#### Go +- 1.17.12 +- 1.18.4 + +#### Node.js +- 14.20.0 +- 16.16.0 + +#### PyPy +- 3.7.13 [PyPy 7.3.9] +- 3.8.13 [PyPy 7.3.9] +- 3.9.12 [PyPy 7.3.9] + +#### Python +- 3.7.13 +- 3.8.13 +- 3.9.13 +- 3.10.5 + +#### Ruby +- 3.1.2 + +#### Environment variables +| Name | Value | Architecture | +| --------------- | ----------------------------------- | ------------ | +| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.12/x64 | x64 | +| GOROOT_1_18_X64 | /opt/hostedtoolcache/go/1.18.4/x64 | x64 | + +### PowerShell Tools +- PowerShell 7.2.5 + +#### PowerShell Modules +| Module | Version | +| ---------------- | ------- | +| MarkdownPS | 1.9 | +| Microsoft.Graph | 1.10.0 | +| Pester | 5.3.3 | +| PSScriptAnalyzer | 1.20.0 | + +#### Az PowerShell Modules +- 7.5.0 + +### Web Servers +| Name | Version | ConfigFile | ServiceStatus | ListenPort | +| ------- | ------- | ------------------------- | ------------- | ---------- | +| apache2 | 2.4.52 | /etc/apache2/apache2.conf | inactive | 80 | +| nginx | 1.18.0 | /etc/nginx/nginx.conf | inactive | 80 | + +### Android +| Package Name | Version | +| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Android Command Line Tools | 7.0 | +| Android Emulator | 31.2.10 | +| Android SDK Build-tools | 33.0.0
32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 | +| Android SDK Platform-Tools | 33.0.2 | +| Android SDK Platforms | android-33 (rev 2)
android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) | +| Android SDK Tools | 26.1.1 | +| Android Support Repository | 47.0.0 | +| CMake | 3.10.2
3.18.1 | +| Google Play services | 49 | +| Google Repository | 58 | +| NDK | 21.4.7075529
23.2.8568313 (default)
24.0.8215888 | +| SDK Patch Applier v4 | 1 | + +#### Environment variables +| Name | Value | +| ----------------------- | ------------------------------------------------------------------------------------ | +| ANDROID_HOME | /usr/local/lib/android/sdk | +| ANDROID_NDK_HOME | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/23.2.8568313 | +| ANDROID_NDK_LATEST_HOME | /usr/local/lib/android/sdk/ndk/24.0.8215888 | +| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk-bundle -> /usr/local/lib/android/sdk/ndk/23.2.8568313 | +| ANDROID_SDK_ROOT | /usr/local/lib/android/sdk | + +### Cached Docker images +| Repository:Tag | Digest | Created | +| ----------------------- | ------------------------------------------------------------------------ | ---------- | +| alpine:3.14 | sha256:06b5d462c92fc39303e6363c65e074559f8d6b1363250027ed5053557e3398c5 | 2022-04-05 | +| alpine:3.15 | sha256:4edbd2beb5f78b1014028f4fbb99f3237d9561100b6881aabbf5acce2c4f9454 | 2022-04-05 | +| buildpack-deps:bullseye | sha256:4cbb6d56f192ea1868bdbc441269d0343c90b201c973931aaa6722300118d463 | 2022-07-12 | +| buildpack-deps:buster | sha256:3ab2863d37b2d037440b4a153a8fb3c79e935030fd47cef21b698688ce72f66e | 2022-07-12 | +| debian:10 | sha256:0685c900f6e691bdda6980c0ed0779d20183bc58770059b64adb56cb8a3129f0 | 2022-07-12 | +| debian:11 | sha256:2ce44bbc00a79113c296d9d25524e15d423b23303fdbbe20190d2f96e0aeb251 | 2022-07-12 | +| moby/buildkit:latest | sha256:0dc312b04eac1b44cd2cad566deb1e886c753109208affbbec8384f381ff7f38 | 2022-05-06 | +| node:14 | sha256:a086a11f7780399837ea0465ac8a8e8f14f2b66fe5a110fe0c24644d53a103c5 | 2022-07-12 | +| node:14-alpine | sha256:2af507df45e7c0a46c6b3001ce0dbc6924f7b39864d442045f781361a1971975 | 2022-07-08 | +| node:16 | sha256:2e1b4542d4a06e0e0442dc38af1f4828760aecc9db2b95e7df87f573640d98cd | 2022-07-12 | +| node:16-alpine | sha256:554142f9a6367f1fbd776a1b2048fab3a2cc7aa477d7fe9c00ce0f110aa45716 | 2022-07-08 | +| ubuntu:18.04 | sha256:478caf1bec1afd54a58435ec681c8755883b7eb843a8630091890130b15a79af | 2022-06-06 | +| ubuntu:20.04 | sha256:fd92c36d3cb9b1d027c4d2a72c6bf0125da82425fc2ca37c414d4f010180dc19 | 2022-06-06 | +| ubuntu:22.04 | sha256:b6b83d3c331794420340093eb706a6f152d9c1fa51b262d9bf34594887c2c7ac | 2022-06-06 | + +### Installed apt packages +| Name | Version | +| ---------------------- | --------------------------------- | +| acl | 2.3.1-1 | +| aria2 | 1.36.0-1 | +| autoconf | 2.71-2 | +| automake | 1:1.16.5-1.3 | +| binutils | 2.38-3ubuntu1 | +| bison | 2:3.8.2+dfsg-1build1 | +| brotli | 1.0.9-2build6 | +| build-essential | 12.9ubuntu3 | +| bzip2 | 1.0.8-5build1 | +| coreutils | 8.32-4.1ubuntu1 | +| curl | 7.81.0-1ubuntu1.3 | +| dbus | 1.12.20-2ubuntu4 | +| dnsutils | 1:9.18.1-1ubuntu1.1 | +| dpkg | 1.21.1ubuntu2.1 | +| fakeroot | 1.28-1ubuntu1 | +| file | 1:5.41-3 | +| flex | 2.6.4-8build2 | +| fonts-noto-color-emoji | 2.034-1 | +| ftp | 20210827-4build1 | +| gnupg2 | 2.2.27-3ubuntu2.1 | +| haveged | 1.9.14-1ubuntu1 | +| imagemagick | 8:6.9.11.60+dfsg-1.3build2 | +| iproute2 | 5.15.0-1ubuntu2 | +| iputils-ping | 3:20211215-1 | +| jq | 1.6-2.1ubuntu3 | +| lib32z1 | 1:1.2.11.dfsg-2ubuntu9 | +| libc++-dev | 1:14.0-55\~exp2 | +| libc++abi-dev | 1:14.0-55\~exp2 | +| libcurl4 | 7.81.0-1ubuntu1.3 | +| libgbm-dev | 22.0.1-1ubuntu2.1 | +| libgconf-2-4 | 3.2.6-7ubuntu2 | +| libgsl-dev | 2.7.1+dfsg-3 | +| libgtk-3-0 | 3.24.33-1ubuntu2 | +| libmagic-dev | 1:5.41-3 | +| libmagickcore-dev | 8:6.9.11.60+dfsg-1.3build2 | +| libmagickwand-dev | 8:6.9.11.60+dfsg-1.3build2 | +| libsecret-1-dev | 0.20.5-2 | +| libsqlite3-dev | 3.37.2-2 | +| libssl-dev | 3.0.2-0ubuntu1.6 | +| libtool | 2.4.6-15build2 | +| libunwind8 | 1.3.2-2build2 | +| libxkbfile-dev | 1:1.1.0-1build3 | +| libxss1 | 1:1.2.3-1build2 | +| locales | 2.35-0ubuntu3 | +| m4 | 1.4.18-5ubuntu2 | +| mediainfo | 22.03-1 | +| mercurial | 6.1.1-1ubuntu1 | +| net-tools | 1.60+git20181103.0eebece-1ubuntu5 | +| netcat | 1.218-4ubuntu1 | +| openssh-client | 1:8.9p1-3 | +| p7zip-full | 16.02+dfsg-8 | +| p7zip-rar | 16.02-3build1 | +| parallel | 20210822+ds-2 | +| pass | 1.7.4-5 | +| patchelf | 0.14.3-1 | +| pkg-config | 0.29.2-1ubuntu3 | +| pollinate | 4.33-3ubuntu2 | +| python-is-python3 | 3.9.2-2 | +| rpm | 4.17.0+dfsg1-4build1 | +| rsync | 3.2.3-8ubuntu3 | +| shellcheck | 0.8.0-2 | +| sphinxsearch | 2.2.11-8 | +| sqlite3 | 3.37.2-2 | +| ssh | 1:8.9p1-3 | +| sshpass | 1.09-1 | +| subversion | 1.14.1-3ubuntu0.22.04.1 | +| sudo | 1.9.9-1ubuntu2 | +| swig | 4.0.2-1ubuntu1 | +| telnet | 0.17-44build1 | +| texinfo | 6.8-4build1 | +| time | 1.9-0.1build2 | +| tk | 8.6.11+1build2 | +| tzdata | 2022a-0ubuntu1 | +| unzip | 6.0-26ubuntu3 | +| upx | 3.96-3 | +| wget | 1.21.2-2ubuntu1 | +| xorriso | 1.5.4-2 | +| xvfb | 2:21.1.3-2ubuntu2.1 | +| xz-utils | 5.2.5-2ubuntu1 | +| zip | 3.0-12build2 | +| zsync | 0.6.2-3ubuntu1 | + + diff --git a/images/linux/config/ubuntu2204.conf b/images/linux/config/ubuntu2204.conf new file mode 100644 index 000000000..8a7f60ed6 --- /dev/null +++ b/images/linux/config/ubuntu2204.conf @@ -0,0 +1,2 @@ +# Name of pool supported by this image +POOL_NAME="Ubuntu 2204" diff --git a/images/linux/post-generation/systemd-linger.sh b/images/linux/post-generation/systemd-linger.sh new file mode 100644 index 000000000..294c8f1ba --- /dev/null +++ b/images/linux/post-generation/systemd-linger.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# Enable user session on boot, not on login +UserId=$(cut -d: -f3 /etc/passwd | tail -1) +loginctl enable-linger $UserId diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Android.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Android.psm1 index 5ba50848f..2c84696c4 100644 --- a/images/linux/scripts/SoftwareReport/SoftwareReport.Android.psm1 +++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Android.psm1 @@ -156,19 +156,13 @@ function Get-AndroidGoogleAPIsVersions { function Get-AndroidNDKVersions { $ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk" $versions = Get-ChildItem -Path $ndkFolderPath -Name - $ndkDefaultVersion = Get-ToolsetValue "android.ndk.default" - $ndkDefaultFullVersion = Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkDefaultVersion.*" -Name | Select-Object -Last 1 - - return ($versions | ForEach-Object { - $defaultPostfix = ( $_ -eq $ndkDefaultFullVersion ) ? " (default)" : "" - $_ + $defaultPostfix - } | Join-String -Separator "
") + return ($versions | Join-String -Separator "
") } function Build-AndroidEnvironmentTable { - $androidVersions = Get-Item env:ANDROID_* + $androidVersions = Get-Item env:ANDROID_* - $shouldResolveLink = 'ANDROID_NDK_PATH', 'ANDROID_NDK_HOME', 'ANDROID_NDK_ROOT', 'ANDROID_NDK_LATEST_HOME' + $shouldResolveLink = 'ANDROID_NDK_LATEST_HOME' return $androidVersions | Sort-Object -Property Name | ForEach-Object { [PSCustomObject] @{ "Name" = $_.Name diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Browsers.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Browsers.psm1 index 8c60f8d73..9ba439062 100644 --- a/images/linux/scripts/SoftwareReport/SoftwareReport.Browsers.psm1 +++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Browsers.psm1 @@ -23,6 +23,17 @@ function Get-ChromiumVersion { return $chromiumVersion } +function Get-EdgeVersion { + $edgeVersion = (microsoft-edge --version).trim() + $aptSourceRepo = Get-AptSourceRepository -PackageName "microsoft-edge" + return "$edgeVersion (apt source repository: $aptSourceRepo)" +} + +function Get-EdgeDriverVersion { + $edgeDriverVersion = msedgedriver --version | Take-OutputPart -Part 0,1,2,3 + return $edgeDriverVersion +} + function Get-SeleniumVersion { $seleniumBinaryName = Get-ToolsetValue "selenium.binary_name" $fullSeleniumVersion = (Get-ChildItem "/usr/share/java/${seleniumBinaryName}-*").Name -replace "${seleniumBinaryName}-" @@ -35,6 +46,10 @@ function Build-BrowserWebdriversEnvironmentTable { "Name" = "CHROMEWEBDRIVER" "Value" = $env:CHROMEWEBDRIVER }, + @{ + "Name" = "EDGEWEBDRIVER" + "Value" = $env:EDGEWEBDRIVER + }, @{ "Name" = "GECKOWEBDRIVER" "Value" = $env:GECKOWEBDRIVER diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 index 07356a30d..2a8c4bed1 100644 --- a/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 +++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 @@ -3,6 +3,11 @@ function Get-BashVersion { return "Bash $version" } +function Get-DashVersion { + $version = dpkg-query -W -f '${Version}' dash + return "Dash $version" +} + function Get-CPPVersions { $result = Get-CommandResult "apt list --installed" -Multiline $cppVersions = $result.Output | Where-Object { $_ -match "g\+\+-\d+"} | ForEach-Object { @@ -24,14 +29,15 @@ function Get-ClangToolVersions { param ( [Parameter(Mandatory = $true)] [string] $ToolName, + [string] $VersionLineMatcher = "${ToolName} version", [string] $VersionPattern = "\d+\.\d+\.\d+)-" ) $result = Get-CommandResult "apt list --installed" -Multiline $toolVersions = $result.Output | Where-Object { $_ -match "^${ToolName}-\d+"} | ForEach-Object { $clangCommand = ($_ -Split "/")[0] - Invoke-Expression "$clangCommand --version" | Where-Object { $_ -match "${ToolName} version" } | ForEach-Object { - $_ -match "${ToolName} version (?${VersionPattern}" | Out-Null + Invoke-Expression "$clangCommand --version" | Where-Object { $_ -match "${VersionLineMatcher}" } | ForEach-Object { + $_ -match "${VersionLineMatcher} (?${VersionPattern}" | Out-Null $Matches.version } } | Sort-Object {[Version]$_} @@ -41,12 +47,17 @@ function Get-ClangToolVersions { function Get-ClangVersions { $clangVersions = Get-ClangToolVersions -ToolName "clang" - return "Clang " + $clangVersions + return "Clang $clangVersions" } function Get-ClangFormatVersions { $clangFormatVersions = Get-ClangToolVersions -ToolName "clang-format" - return "Clang-format " + $clangFormatVersions + return "Clang-format $clangFormatVersions" +} + +function Get-ClangTidyVersions { + $clangFormatVersions = Get-ClangToolVersions -ToolName "clang-tidy" -VersionLineMatcher "LLVM version" -VersionPattern "\d+\.\d+\.\d+)" + return "Clang-tidy $clangFormatVersions" } @@ -230,7 +241,7 @@ function Get-SbtVersion { function Get-PHPVersions { $result = Get-CommandResult "apt list --installed" -Multiline return $result.Output | Where-Object { $_ -match "^php\d+\.\d+/"} | ForEach-Object { - $_ -match "now (?\d+\.\d+\.\d+)-" | Out-Null + $_ -match "now (\d+:)?(?\d+\.\d+\.\d+)-" | Out-Null $Matches.version } } diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Databases.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Databases.psm1 index 6966527f7..8ba9ea151 100644 --- a/images/linux/scripts/SoftwareReport/SoftwareReport.Databases.psm1 +++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Databases.psm1 @@ -17,7 +17,7 @@ function Get-SqliteVersion { function Get-MySQLVersion { $mySQLVersion = mysqld --version | Take-OutputPart -Part 2 - if (-not (Test-IsUbuntu20)) { + if (Test-IsUbuntu18) { $mySQLVersion = $mySQLVersion | Take-OutputPart -Part 0 -Delimiter "-" } return "MySQL $mySQLVersion" diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1 index d824002ef..944235327 100644 --- a/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1 +++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1 @@ -39,24 +39,31 @@ $markdown += New-MDHeader "Language and Runtime" -Level 3 $runtimesList = @( (Get-BashVersion), + (Get-DashVersion), (Get-CPPVersions), (Get-FortranVersions), - (Get-ErlangVersion), - (Get-ErlangRebar3Version), - (Get-MonoVersion), - (Get-MsbuildVersion), (Get-NodeVersion), (Get-PerlVersion), (Get-PythonVersion), (Get-Python3Version), (Get-RubyVersion), - (Get-SwiftVersion), (Get-JuliaVersion), - (Get-KotlinVersion), (Get-ClangVersions), - (Get-ClangFormatVersions) + (Get-ClangFormatVersions), + (Get-ClangTidyVersions), + (Get-KotlinVersion) ) +if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) { + $runtimesList += @( + (Get-MsbuildVersion), + (Get-MonoVersion), + (Get-ErlangVersion), + (Get-ErlangRebar3Version), + (Get-SwiftVersion) + ) +} + $markdown += New-MDList -Style Unordered -Lines ($runtimesList | Sort-Object) $markdown += New-MDHeader "Package Management" -Level 3 @@ -81,14 +88,17 @@ $markdown += Build-PackageManagementEnvironmentTable | New-MDTable $markdown += New-MDNewLine $markdown += New-MDHeader "Project Management" -Level 3 -$projectManagementList = @( - (Get-AntVersion), - (Get-GradleVersion), - (Get-MavenVersion), - (Get-SbtVersion) -) +$projectManagementList = @() +if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) { + $projectManagementList += @( + (Get-AntVersion), + (Get-GradleVersion), + (Get-MavenVersion), + (Get-SbtVersion) + ) +} -if (Test-IsUbuntu20) { +if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) { $projectManagementList += @( (Get-LernaVersion) ) @@ -103,7 +113,6 @@ $toolsList = @( (Get-BazelVersion), (Get-BazeliskVersion), (Get-BicepVersion), - (Get-BuildahVersion), (Get-CodeQLBundleVersion), (Get-CMakeVersion), (Get-DockerMobyClientVersion), @@ -111,19 +120,22 @@ $toolsList = @( (Get-DockerComposeV1Version), (Get-DockerComposeV2Version), (Get-DockerBuildxVersion), + (Get-DockerAmazonECRCredHelperVersion), + (Get-BuildahVersion), + (Get-PodManVersion), + (Get-SkopeoVersion), (Get-GitVersion), (Get-GitLFSVersion), (Get-GitFTPVersion), (Get-HavegedVersion), (Get-HerokuVersion), - (Get-HHVMVersion), + (Get-LeiningenVersion), (Get-SVNVersion), (Get-JqVersion), (Get-YqVersion), (Get-KindVersion), (Get-KubectlVersion), (Get-KustomizeVersion), - (Get-LeiningenVersion), (Get-MediainfoVersion), (Get-HGVersion), (Get-MinikubeVersion), @@ -133,18 +145,22 @@ $toolsList = @( (Get-OpensslVersion), (Get-PackerVersion), (Get-ParcelVersion), - (Get-PhantomJSVersion), - (Get-PodManVersion), (Get-PulumiVersion), (Get-RVersion), - (Get-SkopeoVersion), (Get-SphinxVersion), (Get-TerraformVersion), (Get-YamllintVersion), (Get-ZstdVersion) ) -if (Test-IsUbuntu20) { +if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) { + $toolsList += @( + (Get-PhantomJSVersion), + (Get-HHVMVersion) + ) +} + +if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) { $toolsList += (Get-FastlaneVersion) } @@ -172,7 +188,7 @@ $markdown += New-MDHeader "Java" -Level 3 $markdown += Get-JavaVersions | New-MDTable $markdown += New-MDNewLine -if (Test-IsUbuntu20) { +if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) { $markdown += New-MDHeader "GraalVM" -Level 3 $markdown += Build-GraalVMTable | New-MDTable $markdown += New-MDNewLine @@ -214,12 +230,19 @@ $markdown += New-MDHeader "Browsers and Drivers" -Level 3 $browsersAndDriversList = @( (Get-ChromeVersion), (Get-ChromeDriverVersion), - (Get-FirefoxVersion), - (Get-GeckodriverVersion), (Get-ChromiumVersion), + (Get-EdgeVersion), + (Get-EdgeDriverVersion), (Get-SeleniumVersion) ) +if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) { + $browsersAndDriversList += @( + (Get-FirefoxVersion), + (Get-GeckodriverVersion) + ) +} + $markdown += New-MDList -Style Unordered -Lines $browsersAndDriversList $markdown += New-MDHeader "Environment variables" -Level 4 $markdown += Build-BrowserWebdriversEnvironmentTable | New-MDTable @@ -235,15 +258,23 @@ $tools = Get-DotnetTools $markdown += New-MDList -Lines $tools -Style Unordered $markdown += New-MDHeader "Databases" -Level 3 -$markdown += New-MDList -Style Unordered -Lines (@( - (Get-MongoDbVersion), +$databaseLists = @( (Get-SqliteVersion) - ) | Sort-Object ) +if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) { + $databaseLists += @( + (Get-MongoDbVersion) + ) +} + +$markdown += New-MDList -Style Unordered -Lines ( $databaseLists | Sort-Object ) + $markdown += Build-PostgreSqlSection $markdown += Build-MySQLSection -$markdown += Build-MSSQLToolsSection +if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) { + $markdown += Build-MSSQLToolsSection +} $markdown += New-MDHeader "Cached Tools" -Level 3 $markdown += Build-CachedToolsSection diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Rust.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Rust.psm1 index a556bf4c8..d4b4b1db0 100644 --- a/images/linux/scripts/SoftwareReport/SoftwareReport.Rust.psm1 +++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Rust.psm1 @@ -21,12 +21,12 @@ function Get-CargoVersion { } function Get-CargoAuditVersion { - $cargoAuditVersion = $(cargo audit --version) | Take-OutputPart -Part 1 + $cargoAuditVersion = $(cargo-audit --version) | Take-OutputPart -Part 1 return "Cargo audit $cargoAuditVersion" } function Get-CargoOutdatedVersion { - $cargoOutdatedVersion = $(cargo outdated --version) | Take-OutputPart -Part 1 -Delimiter "v" + $cargoOutdatedVersion = cargo outdated --version | Take-OutputPart -Part 1 return "Cargo outdated $cargoOutdatedVersion" } diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Tools.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Tools.psm1 index bcfe1b84a..ca119f67b 100644 --- a/images/linux/scripts/SoftwareReport/SoftwareReport.Tools.psm1 +++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Tools.psm1 @@ -42,20 +42,29 @@ function Get-CodeQLBundleVersion { function Get-PodManVersion { $podmanVersion = podman --version | Take-OutputPart -Part 2 - $aptSourceRepo = Get-AptSourceRepository -PackageName "containers" - return "Podman $podmanVersion (apt source repository: $aptSourceRepo)" + if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) { + $aptSourceRepo = Get-AptSourceRepository -PackageName "containers" + return "Podman $podmanVersion (apt source repository: $aptSourceRepo)" + } + return "Podman $podmanVersion" } function Get-BuildahVersion { $buildahVersion = buildah --version | Take-OutputPart -Part 2 - $aptSourceRepo = Get-AptSourceRepository -PackageName "containers" - return "Buildah $buildahVersion (apt source repository: $aptSourceRepo)" + if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) { + $aptSourceRepo = Get-AptSourceRepository -PackageName "containers" + return "Buildah $buildahVersion (apt source repository: $aptSourceRepo)" + } + return "Buildah $buildahVersion" } function Get-SkopeoVersion { $skopeoVersion = skopeo --version | Take-OutputPart -Part 2 - $aptSourceRepo = Get-AptSourceRepository -PackageName "containers" - return "Skopeo $skopeoVersion (apt source repository: $aptSourceRepo)" + if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) { + $aptSourceRepo = Get-AptSourceRepository -PackageName "containers" + return "Skopeo $skopeoVersion (apt source repository: $aptSourceRepo)" + } + return "Skopeo $skopeoVersion" } function Get-CMakeVersion { @@ -88,6 +97,11 @@ function Get-DockerBuildxVersion { return "Docker-Buildx $buildxVersion" } +function Get-DockerAmazonECRCredHelperVersion { + $ecrVersion = docker-credential-ecr-login -v | Select-String "Version:" | Take-OutputPart -Part 1 + return "Docker Amazon ECR Credential Helper $ecrVersion" +} + function Get-GitVersion { $gitVersion = git --version | Take-OutputPart -Part -1 $aptSourceRepo = Get-AptSourceRepository -PackageName "git-core" @@ -142,7 +156,7 @@ function Get-KindVersion { } function Get-KubectlVersion { - $kubectlVersion = kubectl version --client --short | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "v" + $kubectlVersion = (kubectl version --client --output=json | ConvertFrom-Json).clientVersion.gitVersion.Replace('v','') return "Kubectl $kubectlVersion" } diff --git a/images/linux/scripts/base/apt.sh b/images/linux/scripts/base/apt.sh index 05d08878c..1f36b4a5f 100644 --- a/images/linux/scripts/base/apt.sh +++ b/images/linux/scripts/base/apt.sh @@ -14,6 +14,13 @@ echo "APT::Acquire::Retries \"10\";" > /etc/apt/apt.conf.d/80-retries # Configure apt to always assume Y echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes +# APT understands a field called Phased-Update-Percentage which can be used to control the rollout of a new version. It is an integer between 0 and 100. +# In case you have multiple systems that you want to receive the same set of updates, +# you can set APT::Machine-ID to a UUID such that they all phase the same, +# or set APT::Get::Never-Include-Phased-Updates or APT::Get::Always-Include-Phased-Updates to true such that APT will never/always consider phased updates. +# apt-cache policy pkgname +echo 'APT::Get::Always-Include-Phased-Updates "true";' > /etc/apt/apt.conf.d/99-phased-updates + # Fix bad proxy and http headers settings cat <> /etc/apt/apt.conf.d/99bad_proxy Acquire::http::Pipeline-Depth 0; diff --git a/images/linux/scripts/base/repos.sh b/images/linux/scripts/base/repos.sh index a489c62ae..0a2a08138 100644 --- a/images/linux/scripts/base/repos.sh +++ b/images/linux/scripts/base/repos.sh @@ -9,14 +9,8 @@ LSB_RELEASE=$(lsb_release -rs) # Install Microsoft repository wget https://packages.microsoft.com/config/ubuntu/$LSB_RELEASE/packages-microsoft-prod.deb dpkg -i packages-microsoft-prod.deb -apt-get install -y apt-transport-https ca-certificates curl software-properties-common - -# Install Microsoft GPG public key -curl -L https://packages.microsoft.com/keys/microsoft.asc | apt-key add - - -curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg -mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg # update +apt-get install -y apt-transport-https ca-certificates curl software-properties-common apt-get -yq update apt-get -yq dist-upgrade diff --git a/images/linux/scripts/helpers/Common.Helpers.psm1 b/images/linux/scripts/helpers/Common.Helpers.psm1 index eab83e204..b55a910be 100644 --- a/images/linux/scripts/helpers/Common.Helpers.psm1 +++ b/images/linux/scripts/helpers/Common.Helpers.psm1 @@ -46,6 +46,10 @@ function Test-IsUbuntu20 { return (lsb_release -rs) -eq "20.04" } +function Test-IsUbuntu22 { + return (lsb_release -rs) -eq "22.04" +} + function Get-ToolsetContent { $toolset = Join-Path $env:INSTALLER_SCRIPT_FOLDER "toolset.json" Get-Content $toolset -Raw | ConvertFrom-Json @@ -69,7 +73,7 @@ function Get-ToolsetValue { function Get-AndroidPackages { $androidSDKManagerPath = "/usr/local/lib/android/sdk/cmdline-tools/latest/bin/sdkmanager" - $androidPackages = & $androidSDKManagerPath --list --verbose + $androidPackages = & $androidSDKManagerPath --list --verbose 2>&1 return $androidPackages } diff --git a/images/linux/scripts/helpers/install.sh b/images/linux/scripts/helpers/install.sh index 222fc592a..00678e495 100644 --- a/images/linux/scripts/helpers/install.sh +++ b/images/linux/scripts/helpers/install.sh @@ -78,10 +78,13 @@ get_github_package_download_url() { if [ -n "$VERSION" ]; then tagName=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]|beta" | egrep "\w*${VERSION}" | tail -1) else - tagName=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]|beta" | tail -1) - fi + tagName=$(echo $json | jq -r '.[] | select((.prerelease==false) and (.assets | length > 0)).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]|beta" | tail -1) + fi downloadUrl=$(echo $json | jq -r ".[] | select(.tag_name==\"${tagName}\").assets[].browser_download_url | select(${FILTER})" | head -n 1) - + if [ -z "$downloadUrl" ]; then + echo "Failed to parse a download url for the '${tagName}' tag using '${FILTER}' filter" + exit 1 + fi echo $downloadUrl -} \ No newline at end of file +} diff --git a/images/linux/scripts/helpers/os.sh b/images/linux/scripts/helpers/os.sh index 6bb38f51a..f3a71bbd9 100644 --- a/images/linux/scripts/helpers/os.sh +++ b/images/linux/scripts/helpers/os.sh @@ -14,6 +14,11 @@ function isUbuntu20 lsb_release -d | grep -q 'Ubuntu 20' } +function isUbuntu22 +{ + lsb_release -d | grep -q 'Ubuntu 22' +} + function getOSVersionLabel { lsb_release -cs diff --git a/images/linux/scripts/installers/android.sh b/images/linux/scripts/installers/android.sh index cb56acde7..1d5d3d7ea 100644 --- a/images/linux/scripts/installers/android.sh +++ b/images/linux/scripts/installers/android.sh @@ -34,24 +34,35 @@ function get_full_ndk_version { # Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables) ANDROID_ROOT=/usr/local/lib/android ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk -ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}" | tee -a /etc/environment # ANDROID_HOME is deprecated, but older versions of Gradle rely on it echo "ANDROID_HOME=${ANDROID_SDK_ROOT}" | tee -a /etc/environment -# Set env variables for NDK Root -echo "ANDROID_NDK_HOME=${ANDROID_NDK_ROOT}" | tee -a /etc/environment -echo "ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT}" | tee -a /etc/environment - # Create android sdk directory mkdir -p ${ANDROID_SDK_ROOT} # Download the latest command line tools so that we can accept all of the licenses. # See https://developer.android.com/studio/#command-tools +cmdlineToolsVersion=$(get_toolset_value '.android."cmdline-tools"') +if [[ $cmdlineToolsVersion == "latest" ]]; then + repositoryXmlUrl="https://dl.google.com/android/repository/repository2-1.xml" + download_with_retries $repositoryXmlUrl "/tmp" "repository2-1.xml" + cmdlineToolsVersion=$( + yq -p=xml \ + '.sdk-repository.remotePackage[] | select(."+path" == "cmdline-tools;latest").archives.archive[].complete.url | select(contains("commandlinetools-linux"))' \ + /tmp/repository2-1.xml + ) + + if [[ -z $cmdlineToolsVersion ]]; then + echo "Failed to parse latest command-line tools version" + exit 1 + fi +fi + cmdlineTools="android-cmdline-tools.zip" -download_with_retries https://dl.google.com/android/repository/commandlinetools-linux-7302050_latest.zip "." $cmdlineTools +download_with_retries "https://dl.google.com/android/repository/${cmdlineToolsVersion}" "." $cmdlineTools unzip -qq $cmdlineTools -d ${ANDROID_SDK_ROOT}/cmdline-tools # Command line tools need to be placed in ${ANDROID_SDK_ROOT}/sdk/cmdline-tools/latest to determine SDK root mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools ${ANDROID_SDK_ROOT}/cmdline-tools/latest @@ -73,8 +84,6 @@ extras=$(get_toolset_value '.android.extra_list[]|"extras;" + .') addons=$(get_toolset_value '.android.addon_list[]|"add-ons;" + .') additional=$(get_toolset_value '.android.additional_tools[]') ANDROID_NDK_MAJOR_VERSIONS=($(get_toolset_value '.android.ndk.versions[]')) -ANDROID_NDK_MAJOR_DEFAULT=$(get_toolset_value '.android.ndk.default') -ndkDefaultFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_DEFAULT) components=("${extras[@]}" "${addons[@]}" "${additional[@]}") for ndk_version in "${ANDROID_NDK_MAJOR_VERSIONS[@]}" @@ -83,11 +92,6 @@ do components+=("ndk;$ndk_full_version") done -# This changes were added due to incompatibility with android ndk-bundle (ndk;22.0.7026061). -# Link issue virtual-environments: https://github.com/actions/virtual-environments/issues/2481 -# Link issue xamarin-android: https://github.com/xamarin/xamarin-android/issues/5526 -ln -s $ANDROID_SDK_ROOT/ndk/$ndkDefaultFullVersion $ANDROID_NDK_ROOT - ANDROID_NDK_MAJOR_LATEST=(${ANDROID_NDK_MAJOR_VERSIONS[-1]}) ndkLatestFullVersion=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST) echo "ANDROID_NDK_LATEST_HOME=$ANDROID_SDK_ROOT/ndk/$ndkLatestFullVersion" | tee -a /etc/environment @@ -102,7 +106,7 @@ filter_components_by_version $minimumBuildToolVersion "${availableBuildTools[@]} echo "y" | $SDKMANAGER ${components[@]} # Old skdmanager from sdk tools doesn't work with Java > 8, set version 8 explicitly -if isUbuntu20; then +if isUbuntu20 || isUbuntu22; then sed -i "2i export JAVA_HOME=${JAVA_HOME_8_X64}" ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager fi diff --git a/images/linux/scripts/installers/aws.sh b/images/linux/scripts/installers/aws.sh index c7f851e64..6bf8898f5 100644 --- a/images/linux/scripts/installers/aws.sh +++ b/images/linux/scripts/installers/aws.sh @@ -8,19 +8,9 @@ source $HELPER_SCRIPTS/os.sh source $HELPER_SCRIPTS/install.sh -# Install the AWS CLI v1 Ubuntu18 and AWS CLI v2 on Ubuntu20 -if isUbuntu20 ; then - download_with_retries "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" "/tmp" "awscliv2.zip" - unzip -qq /tmp/awscliv2.zip -d /tmp - /tmp/aws/install -i /usr/local/aws-cli -b /usr/local/bin -fi - -# The installation should be run after python3 is installed as aws-cli V1 dropped python2 support -if isUbuntu18 ; then - download_with_retries "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" "/tmp" "awscli-bundle.zip" - unzip -qq /tmp/awscli-bundle.zip -d /tmp - python3 /tmp/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws -fi +download_with_retries "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" "/tmp" "awscliv2.zip" +unzip -qq /tmp/awscliv2.zip -d /tmp +/tmp/aws/install -i /usr/local/aws-cli -b /usr/local/bin download_with_retries "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" "/tmp" "session-manager-plugin.deb" apt install /tmp/session-manager-plugin.deb diff --git a/images/linux/scripts/installers/bazel.sh b/images/linux/scripts/installers/bazel.sh index ac8bf096f..4596b9122 100644 --- a/images/linux/scripts/installers/bazel.sh +++ b/images/linux/scripts/installers/bazel.sh @@ -10,6 +10,6 @@ source $HELPER_SCRIPTS/install.sh npm install -g @bazel/bazelisk # run bazelisk once in order to instal /usr/local/bin/bazel binary -bazelisk +sudo -u $SUDO_USER bazel version invoke_tests "Tools" "Bazel" diff --git a/images/linux/scripts/installers/clang.sh b/images/linux/scripts/installers/clang.sh index 91f5b962a..1c97364fd 100644 --- a/images/linux/scripts/installers/clang.sh +++ b/images/linux/scripts/installers/clang.sh @@ -11,7 +11,7 @@ function InstallClang { local version=$1 echo "Installing clang-$version..." - apt-get install -y "clang-$version" "lldb-$version" "lld-$version" "clang-format-$version" + apt-get install -y "clang-$version" "lldb-$version" "lld-$version" "clang-format-$version" "clang-tidy-$version" } function SetDefaultClang { @@ -21,6 +21,8 @@ function SetDefaultClang { update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${version} 100 update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${version} 100 update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-${version} 100 + update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-${version} 100 + update-alternatives --install /usr/bin/run-clang-tidy run-clang-tidy /usr/bin/run-clang-tidy-${version} 100 } versions=$(get_toolset_value '.clang.versions[]') diff --git a/images/linux/scripts/installers/codeql-bundle.sh b/images/linux/scripts/installers/codeql-bundle.sh index 46f53ca03..f2167b8c4 100644 --- a/images/linux/scripts/installers/codeql-bundle.sh +++ b/images/linux/scripts/installers/codeql-bundle.sh @@ -7,7 +7,7 @@ source $HELPER_SCRIPTS/install.sh # Retrieve the name of the CodeQL bundle preferred by the Action (in the format codeql-bundle-YYYYMMDD). -codeql_bundle_name="$(curl -sSL https://raw.githubusercontent.com/github/codeql-action/v1/src/defaults.json | jq -r .bundleVersion)" +codeql_bundle_name="$(curl -sSL https://raw.githubusercontent.com/github/codeql-action/v2/src/defaults.json | jq -r .bundleVersion)" # Convert the bundle name to a version number (0.0.0-YYYYMMDD). codeql_bundle_version="0.0.0-${codeql_bundle_name##*-}" diff --git a/images/linux/scripts/installers/configure-environment.sh b/images/linux/scripts/installers/configure-environment.sh index 851e113a8..47bebc0e0 100644 --- a/images/linux/scripts/installers/configure-environment.sh +++ b/images/linux/scripts/installers/configure-environment.sh @@ -1,5 +1,8 @@ #!/bin/bash -e +# Source the helpers for use with the script +source $HELPER_SCRIPTS/os.sh + # Set ImageVersion and ImageOS env variables echo ImageVersion=$IMAGE_VERSION | tee -a /etc/environment echo ImageOS=$IMAGE_OS | tee -a /etc/environment @@ -40,3 +43,9 @@ if [[ -f "/etc/fwupd/daemon.conf" ]]; then sed -i 's/UpdateMotd=true/UpdateMotd=false/g' /etc/fwupd/daemon.conf systemctl mask fwupd-refresh.timer fi + +# Disable to load providers +# https://github.com/microsoft/azure-pipelines-agent/issues/3834 +if isUbuntu22; then + sed -i 's/openssl_conf = openssl_init/#openssl_conf = openssl_init/g' /etc/ssl/openssl.cnf +fi diff --git a/images/linux/scripts/installers/containers.sh b/images/linux/scripts/installers/containers.sh index edeb0f78b..00595b319 100644 --- a/images/linux/scripts/installers/containers.sh +++ b/images/linux/scripts/installers/containers.sh @@ -7,22 +7,27 @@ source $HELPER_SCRIPTS/os.sh install_packages=(podman buildah skopeo) -REPO_URL="https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable" -# Install podman, buildah, scopeo container's tools (on Ubuntu20 these tools can be installed without adding new repository) -source /etc/os-release -sh -c "echo 'deb ${REPO_URL}/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" -wget -qnv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O Release.key -apt-key add Release.key -apt-get update -qq -apt-get -qq -y install ${install_packages[@]} +# Packages is available in the official Ubuntu upstream starting from Ubuntu 21 +if isUbuntu18 || isUbuntu20; then + REPO_URL="https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable" + source /etc/os-release + sh -c "echo 'deb ${REPO_URL}/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" + wget -qnv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O Release.key + apt-key add Release.key +fi + +# Install podman, buildah, scopeo container's tools +apt-get update +apt-get -y install ${install_packages[@]} mkdir -p /etc/containers echo -e "[registries.search]\nregistries = ['docker.io', 'quay.io']" | tee /etc/containers/registries.conf -# Remove source repo -rm /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list - -# Document source repo -echo "containers $REPO_URL" >> $HELPER_SCRIPTS/apt-sources.txt +if isUbuntu18 || isUbuntu20; then + # Remove source repo + rm /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list + # Document source repo + echo "containers $REPO_URL" >> $HELPER_SCRIPTS/apt-sources.txt +fi invoke_tests "Tools" "Containers" diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh index 57617774f..ea16f65a0 100644 --- a/images/linux/scripts/installers/docker-moby.sh +++ b/images/linux/scripts/installers/docker-moby.sh @@ -46,4 +46,10 @@ done # stored from earlier. docker logout +# Install amazon-ecr-credential-helper +aws_latest_release_url="https://api.github.com/repos/awslabs/amazon-ecr-credential-helper/releases/latest" +aws_helper_url=$(curl "${authString[@]}" -sL $aws_latest_release_url | jq -r '.body' | awk -F'[()]' '/linux-amd64/ {print $2}') +download_with_retries "$aws_helper_url" "/usr/bin" docker-credential-ecr-login +chmod +x /usr/bin/docker-credential-ecr-login + invoke_tests "Tools" "Docker" diff --git a/images/linux/scripts/installers/erlang.sh b/images/linux/scripts/installers/erlang.sh index bb0e74ebb..6aaa4a86b 100644 --- a/images/linux/scripts/installers/erlang.sh +++ b/images/linux/scripts/installers/erlang.sh @@ -8,20 +8,21 @@ source $HELPER_SCRIPTS/install.sh source_list=/etc/apt/sources.list.d/eslerlang.list +source_key=/usr/share/keyrings/eslerlang.gpg # Install Erlang -echo "deb https://binaries.erlang-solutions.com/debian $(lsb_release -cs) contrib" > $source_list -wget -q -O - https://binaries.erlang-solutions.com/debian/erlang_solutions.asc | apt-key add - +wget -q -O - https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | gpg --dearmor > $source_key +echo "deb [signed-by=$source_key] https://packages.erlang-solutions.com/ubuntu $(lsb_release -cs) contrib" > $source_list apt-get update apt-get install -y --no-install-recommends esl-erlang # Install rebar3 -rebar3DownloadUrl=$(get_github_package_download_url "erlang/rebar3" "endswith(\"rebar3\")") -download_with_retries $rebar3DownloadUrl "/tmp" -mv /tmp/rebar3 /usr/local/bin/rebar3 +rebar3_url="https://github.com/erlang/rebar3/releases/latest/download/rebar3" +download_with_retries $rebar3_url "/usr/local/bin" "rebar3" chmod +x /usr/local/bin/rebar3 # Clean up source list rm $source_list +rm $source_key invoke_tests "Tools" "erlang" diff --git a/images/linux/scripts/installers/git.sh b/images/linux/scripts/installers/git.sh index e3e821c83..2d2a030a7 100644 --- a/images/linux/scripts/installers/git.sh +++ b/images/linux/scripts/installers/git.sh @@ -45,7 +45,7 @@ tar xzf "$tmp_hub"/hub-linux-amd64-*.tgz --strip-components 1 -C "$tmp_hub" mv "$tmp_hub"/bin/hub /usr/local/bin # Add well-known SSH host keys to known_hosts -ssh-keyscan -t rsa github.com >> /etc/ssh/ssh_known_hosts +ssh-keyscan -t rsa,ecdsa,ed25519 github.com >> /etc/ssh/ssh_known_hosts ssh-keyscan -t rsa ssh.dev.azure.com >> /etc/ssh/ssh_known_hosts invoke_tests "Tools" "Git" \ No newline at end of file diff --git a/images/linux/scripts/installers/google-cloud-sdk.sh b/images/linux/scripts/installers/google-cloud-sdk.sh index bb11df28d..867bc9cc3 100644 --- a/images/linux/scripts/installers/google-cloud-sdk.sh +++ b/images/linux/scripts/installers/google-cloud-sdk.sh @@ -7,15 +7,15 @@ REPO_URL="https://packages.cloud.google.com/apt" # Install the Google Cloud SDK -echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] $REPO_URL cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list -curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - -sudo apt-get update -y +echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] $REPO_URL cloud-sdk main" > /etc/apt/sources.list.d/google-cloud-sdk.list +wget -q https://packages.cloud.google.com/apt/doc/apt-key.gpg -O /usr/share/keyrings/cloud.google.gpg +apt-get update -y # temporary downgrade google-cloud-sdk as python component has linking bugs -sudo apt-get install -y google-cloud-sdk=369.0.0-0 +apt-get install -y google-cloud-sdk=369.0.0-0 # remove apt rm /etc/apt/sources.list.d/google-cloud-sdk.list -rm /usr/share/keyrings/cloud.google.gpg /usr/share/keyrings/cloud.google.gpg~ +rm /usr/share/keyrings/cloud.google.gpg # add repo to the apt-sources.txt echo "google-cloud-sdk $REPO_URL" >> $HELPER_SCRIPTS/apt-sources.txt diff --git a/images/linux/scripts/installers/java-tools.sh b/images/linux/scripts/installers/java-tools.sh index b4567d96f..527d27e55 100644 --- a/images/linux/scripts/installers/java-tools.sh +++ b/images/linux/scripts/installers/java-tools.sh @@ -38,18 +38,24 @@ createJavaEnvironmentalVariable() { } enableRepositories() { - # Add Adopt PPA - wget -qO - "https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public" | apt-key add - - add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ + +osLabel=$(getOSVersionLabel) + + if isUbuntu18 || isUbuntu20; then + # Add Adopt PPA + wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | gpg --dearmor > /usr/share/keyrings/adopt.gpg + echo "deb [signed-by=/usr/share/keyrings/adopt.gpg] https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ $osLabel main" > /etc/apt/sources.list.d/adopt.list + fi # Add Addoptium PPA - wget -qO - "https://packages.adoptium.net/artifactory/api/gpg/key/public" | apt-key add - - add-apt-repository --yes https://packages.adoptium.net/artifactory/deb/ + # apt-key is deprecated, dearmor and add manually + wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /usr/share/keyrings/adoptium.gpg + echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb/ $osLabel main" > /etc/apt/sources.list.d/adoptium.list if isUbuntu18 ; then # Install GPG Key for Azul Open JDK. See https://www.azul.com/downloads/azure-only/zulu/ - apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 - apt-add-repository "deb https://repos.azul.com/azure-only/zulu/apt stable main" + wget -qO - https://www.azul.com/wp-content/uploads/2021/05/0xB1998361219BD9C9.txt | gpg --dearmor > /usr/share/keyrings/zulu.gpg + echo "deb [signed-by=/usr/share/keyrings/zulu.gpg] https://repos.azul.com/azure-only/zulu/apt stable main" > /etc/apt/sources.list.d/zulu.list fi } @@ -150,5 +156,13 @@ unzip -qq -d /usr/share /tmp/gradleLatest.zip ln -s /usr/share/gradle-"${gradleLatestVersion}"/bin/gradle /usr/bin/gradle echo "GRADLE_HOME=$(find /usr/share -depth -maxdepth 1 -name "gradle*")" | tee -a /etc/environment +# Delete java repositories and keys +rm -f /etc/apt/sources.list.d/adopt.list +rm -f /etc/apt/sources.list.d/adoptium.list +rm -f /etc/apt/sources.list.d/zulu.list +rm -f /usr/share/keyrings/adopt.gpg +rm -f /usr/share/keyrings/adoptium.gpg +rm -f /usr/share/keyrings/zulu.gpg + reloadEtcEnvironment invoke_tests "Java" diff --git a/images/linux/scripts/installers/microsoft-edge.sh b/images/linux/scripts/installers/microsoft-edge.sh new file mode 100644 index 000000000..dc3ef46f6 --- /dev/null +++ b/images/linux/scripts/installers/microsoft-edge.sh @@ -0,0 +1,49 @@ +#!/bin/bash -e +################################################################################ +## File: microsoft-edge.sh +## Desc: Installs Microsoft Edge +################################################################################ + +source $HELPER_SCRIPTS/install.sh + +REPO_URL="https://packages.microsoft.com/repos/edge" +gpg_key="/usr/share/keyrings/microsoft-edge.gpg" +repo_path="/etc/apt/sources.list.d/microsoft-edge.list" + + +wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > $gpg_key +# Specify an arch as Microsoft repository supports armhf and arm64 as well +echo "deb [arch=amd64 signed-by=$gpg_key] $REPO_URL stable main" > $repo_path + +apt-get update +apt-get install --no-install-recommends microsoft-edge-stable + +rm $gpg_key +rm $repo_path + +echo "microsoft-edge $REPO_URL" >> $HELPER_SCRIPTS/apt-sources.txt + +# Install Microsoft Edge Webdriver + +EDGEDRIVER_DIR="/usr/local/share/edge_driver" +EDGEDRIVER_BIN="$EDGEDRIVER_DIR/msedgedriver" + +mkdir -p $EDGEDRIVER_DIR + +EDGE_VERSION=$(microsoft-edge --version | cut -d' ' -f 3) +EDGE_VERSION_MAJOR=$(echo $EDGE_VERSION | cut -d'.' -f 1) + +EDGE_DRIVER_VERSION_URL="https://msedgedriver.azureedge.net/LATEST_RELEASE_${EDGE_VERSION_MAJOR}_LINUX" +# Convert a resulting file to normal UTF-8 +EDGE_DRIVER_LATEST_VERSION=$(curl -s "$EDGE_DRIVER_VERSION_URL" | iconv -f utf-16 -t utf-8 | tr -d '\r') + +EDGEDRIVER_URL="https://msedgedriver.azureedge.net/${EDGE_DRIVER_LATEST_VERSION}/edgedriver_linux64.zip" +download_with_retries $EDGEDRIVER_URL "/tmp" "edgedriver_linux64.zip" + +unzip -qq /tmp/edgedriver_linux64.zip -d $EDGEDRIVER_DIR +chmod +x $EDGEDRIVER_BIN +ln -s $EDGEDRIVER_BIN /usr/bin + +echo "EDGEWEBDRIVER=$EDGEDRIVER_DIR" | tee -a /etc/environment + +invoke_tests "Browsers" "Edge" diff --git a/images/linux/scripts/installers/packer.sh b/images/linux/scripts/installers/packer.sh index 1a15ee4c3..34c7f01eb 100644 --- a/images/linux/scripts/installers/packer.sh +++ b/images/linux/scripts/installers/packer.sh @@ -4,10 +4,13 @@ ## Desc: Installs packer ################################################################################ +source $HELPER_SCRIPTS/install.sh + # Install Packer -PACKER_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | jq -r .current_version) -curl -LO "https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_amd64.zip" -unzip -qq "packer_${PACKER_VERSION}_linux_amd64.zip" -d /usr/local/bin -rm -f "packer_${PACKER_VERSION}_linux_amd64.zip" +URL=$(curl -s https://api.releases.hashicorp.com/v1/releases/packer/latest | jq -r '.builds[] | select((.arch=="amd64") and (.os=="linux")).url') +ZIP_NAME="packer_linux_amd64.zip" +download_with_retries "${URL}" "/tmp" "${ZIP_NAME}" +unzip -qq "/tmp/${ZIP_NAME}" -d /usr/local/bin +rm -f "/tmp/${ZIP_NAME}" invoke_tests "Tools" "Packer" \ No newline at end of file diff --git a/images/linux/scripts/installers/php.sh b/images/linux/scripts/installers/php.sh index e230a3808..12101b40c 100644 --- a/images/linux/scripts/installers/php.sh +++ b/images/linux/scripts/installers/php.sh @@ -103,8 +103,8 @@ mv phpunit /usr/local/bin/phpunit # ubuntu 20.04 libzip-dev is libzip5 based and is not compatible libzip-dev of ppa:ondrej/php # see https://github.com/actions/virtual-environments/issues/1084 -if isUbuntu20 ; then - rm /etc/apt/sources.list.d/ondrej-ubuntu-php-focal.list +if isUbuntu20 || isUbuntu22; then + rm /etc/apt/sources.list.d/ondrej-*.list apt-get update fi diff --git a/images/linux/scripts/installers/postgresql.sh b/images/linux/scripts/installers/postgresql.sh index f3d38cf21..845adffc6 100644 --- a/images/linux/scripts/installers/postgresql.sh +++ b/images/linux/scripts/installers/postgresql.sh @@ -11,8 +11,8 @@ source $HELPER_SCRIPTS/install.sh REPO_URL="https://apt.postgresql.org/pub/repos/apt/" # Preparing repo for PostgreSQL -wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - -echo "deb $REPO_URL $(getOSVersionLabel)-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list +wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor > /usr/share/keyrings/postgresql.gpg +echo "deb [signed-by=/usr/share/keyrings/postgresql.gpg] $REPO_URL $(getOSVersionLabel)-pgdg main" > /etc/apt/sources.list.d/pgdg.list # Fetch PostgreSQL version to install from the toolset toolsetVersion=$(get_toolset_value '.postgresql.version') @@ -30,6 +30,7 @@ systemctl is-active --quiet postgresql.service && systemctl stop postgresql.serv systemctl disable postgresql.service rm /etc/apt/sources.list.d/pgdg.list +rm /usr/share/keyrings/postgresql.gpg echo "postgresql $REPO_URL" >> $HELPER_SCRIPTS/apt-sources.txt diff --git a/images/linux/scripts/installers/powershellcore.sh b/images/linux/scripts/installers/powershellcore.sh index fa319c40c..e228d9121 100644 --- a/images/linux/scripts/installers/powershellcore.sh +++ b/images/linux/scripts/installers/powershellcore.sh @@ -5,4 +5,4 @@ ################################################################################ # Install Powershell -apt-get install -y powershell \ No newline at end of file +apt-get install -y powershell diff --git a/images/linux/scripts/installers/preimagedata.sh b/images/linux/scripts/installers/preimagedata.sh index c494bed97..ba52da6df 100644 --- a/images/linux/scripts/installers/preimagedata.sh +++ b/images/linux/scripts/installers/preimagedata.sh @@ -3,18 +3,14 @@ imagedata_file=$IMAGEDATA_FILE image_version=$IMAGE_VERSION os_name=$(lsb_release -ds | sed "s/ /\\\n/g") -image_label="ubuntu-$(lsb_release -rs)" +os_version=$(lsb_release -rs) +image_label="ubuntu-${os_version}" +version_major=${os_version/.*/} +version_wo_dot=${os_version/./} github_url="https://github.com/actions/virtual-environments/blob" -if [[ "$image_label" =~ "ubuntu-20" ]]; then - software_url="${github_url}/ubuntu20/${image_version}/images/linux/Ubuntu2004-Readme.md" - releaseUrl="https://github.com/actions/virtual-environments/releases/tag/ubuntu20%2F${image_version}" -fi - -if [[ "$image_label" =~ "ubuntu-18" ]]; then - software_url="${github_url}/ubuntu18/${image_version}/images/linux/Ubuntu1804-Readme.md" - releaseUrl="https://github.com/actions/virtual-environments/releases/tag/ubuntu18%2F${image_version}" -fi +software_url="${github_url}/ubuntu${version_major}/${image_version}/images/linux/Ubuntu${version_wo_dot}-Readme.md" +releaseUrl="https://github.com/actions/virtual-environments/releases/tag/ubuntu${version_major}%2F${image_version}" cat < $imagedata_file [ diff --git a/images/linux/scripts/installers/r.sh b/images/linux/scripts/installers/r.sh index ee23b3c48..c7c84c997 100644 --- a/images/linux/scripts/installers/r.sh +++ b/images/linux/scripts/installers/r.sh @@ -6,10 +6,13 @@ source $HELPER_SCRIPTS/os.sh # install R osLabel=$(getOSVersionLabel) -sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 -sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $osLabel-cran40/" +wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | gpg --dearmor > /usr/share/keyrings/rlang.gpg +echo "deb [signed-by=/usr/share/keyrings/rlang.gpg] https://cloud.r-project.org/bin/linux/ubuntu $osLabel-cran40/" > /etc/apt/sources.list.d/rlang.list -sudo apt update -sudo apt install r-base +apt-get update +apt-get install r-base + +rm /etc/apt/sources.list.d/rlang.list +rm /usr/share/keyrings/rlang.gpg invoke_tests "Tools" "R" \ No newline at end of file diff --git a/images/linux/scripts/installers/rust.sh b/images/linux/scripts/installers/rust.sh index 123c0362e..515525ffd 100644 --- a/images/linux/scripts/installers/rust.sh +++ b/images/linux/scripts/installers/rust.sh @@ -6,6 +6,7 @@ # Source the helpers for use with the script source $HELPER_SCRIPTS/etc-environment.sh +source $HELPER_SCRIPTS/os.sh export RUSTUP_HOME=/etc/skel/.rustup export CARGO_HOME=/etc/skel/.cargo @@ -17,7 +18,12 @@ source $CARGO_HOME/env # Install common tools rustup component add rustfmt clippy -cargo install --locked bindgen cbindgen cargo-audit cargo-outdated + +if isUbuntu22; then + cargo install bindgen cbindgen cargo-audit cargo-outdated +else + cargo install --locked bindgen cbindgen cargo-audit cargo-outdated +fi # Cleanup Cargo cache rm -rf ${CARGO_HOME}/registry/* diff --git a/images/linux/scripts/installers/sqlpackage.sh b/images/linux/scripts/installers/sqlpackage.sh index 86a1a4995..12a3ba80f 100644 --- a/images/linux/scripts/installers/sqlpackage.sh +++ b/images/linux/scripts/installers/sqlpackage.sh @@ -6,6 +6,13 @@ # Source the helpers for use with the script source $HELPER_SCRIPTS/install.sh +source $HELPER_SCRIPTS/os.sh + +# Install libssl1.1 dependency +if isUbuntu22; then + download_with_retries "http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1l-1ubuntu1.6_amd64.deb" "/tmp" + dpkg -i /tmp/libssl1.1_1.1.1l-1ubuntu1.6_amd64.deb +fi # Install SqlPackage download_with_retries "https://aka.ms/sqlpackage-linux" "." "sqlpackage.zip" diff --git a/images/linux/scripts/installers/swift.sh b/images/linux/scripts/installers/swift.sh index ac8e87c6b..f482d6021 100644 --- a/images/linux/scripts/installers/swift.sh +++ b/images/linux/scripts/installers/swift.sh @@ -16,13 +16,18 @@ swift_tar_url="https://swift.org/builds/swift-$swift_version-release/ubuntu${ima download_with_retries $swift_tar_url "/tmp" "$swift_tar_name" tar xzf /tmp/$swift_tar_name -mv swift-$swift_version-RELEASE-ubuntu$image_label /usr/share/swift -SWIFT_PATH="/usr/share/swift/usr/bin" -SWIFT_BIN="$SWIFT_PATH/swift" -SWIFTC_BIN="$SWIFT_PATH/swiftc" -ln -s "$SWIFT_BIN" /usr/local/bin/swift -ln -s "$SWIFTC_BIN" /usr/local/bin/swiftc -echo "SWIFT_PATH=$SWIFT_PATH" | tee -a /etc/environment +SWIFT_INSTALL_ROOT="/usr/share/swift" +SWIFT_BIN_ROOT="$SWIFT_INSTALL_ROOT/usr/bin" +SWIFT_LIB_ROOT="$SWIFT_INSTALL_ROOT/usr/lib" + +mv swift-$swift_version-RELEASE-ubuntu$image_label $SWIFT_INSTALL_ROOT +mkdir -p /usr/local/lib + +ln -s "$SWIFT_BIN_ROOT/swift" /usr/local/bin/swift +ln -s "$SWIFT_BIN_ROOT/swiftc" /usr/local/bin/swiftc +ln -s "$SWIFT_LIB_ROOT/libsourcekitdInProc.so" /usr/local/lib/libsourcekitdInProc.so + +echo "SWIFT_PATH=$SWIFT_BIN_ROOT" | tee -a /etc/environment invoke_tests "Common" "Swift" diff --git a/images/linux/scripts/installers/terraform.sh b/images/linux/scripts/installers/terraform.sh index d2b621ae7..bed616fb8 100644 --- a/images/linux/scripts/installers/terraform.sh +++ b/images/linux/scripts/installers/terraform.sh @@ -4,10 +4,13 @@ ## Desc: Installs terraform ################################################################################ +source $HELPER_SCRIPTS/install.sh + # Install Terraform -TERRAFORM_VERSION=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r .current_version) -curl -LO "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip" -unzip -qq "terraform_${TERRAFORM_VERSION}_linux_amd64.zip" -d /usr/local/bin -rm -f "terraform_${TERRAFORM_VERSION}_linux_amd64.zip" +URL=$(curl -s https://api.releases.hashicorp.com/v1/releases/terraform/latest | jq -r '.builds[] | select((.arch=="amd64") and (.os=="linux")).url') +ZIP_NAME="terraform_linux_amd64.zip" +download_with_retries "${URL}" "/tmp" "${ZIP_NAME}" +unzip -qq "/tmp/${ZIP_NAME}" -d /usr/local/bin +rm -f "/tmp/${ZIP_NAME}" invoke_tests "Tools" "Terraform" \ No newline at end of file diff --git a/images/linux/scripts/installers/yq.sh b/images/linux/scripts/installers/yq.sh index 0f7089b82..3c9138736 100644 --- a/images/linux/scripts/installers/yq.sh +++ b/images/linux/scripts/installers/yq.sh @@ -3,14 +3,8 @@ # Source the helpers for use with the script source $HELPER_SCRIPTS/install.sh -YQ_BINARY=yq_linux_amd64 - -# As per https://github.com/mikefarah/yq#wget -YQ_URL=$(get_github_package_download_url "mikefarah/yq" "endswith(\"$YQ_BINARY.tar.gz\")") -echo "Downloading latest yq from $YQ_URL" - -download_with_retries "$YQ_URL" "/tmp" "${YQ_BINARY}.tar.gz" -tar xzf "/tmp/${YQ_BINARY}.tar.gz" -C "/tmp" -mv /tmp/${YQ_BINARY} /usr/bin/yq +YQ_URL="https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64" +download_with_retries "$YQ_URL" "/usr/bin" "yq" +chmod +x /usr/bin/yq invoke_tests "Tools" "yq" diff --git a/images/linux/scripts/tests/Android.Tests.ps1 b/images/linux/scripts/tests/Android.Tests.ps1 index 3d530a0b9..a38465b8c 100644 --- a/images/linux/scripts/tests/Android.Tests.ps1 +++ b/images/linux/scripts/tests/Android.Tests.ps1 @@ -2,9 +2,7 @@ Describe "Android" { $androidSdkManagerPackages = Get-AndroidPackages [int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version" [version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version" - [string]$ndkDefaultVersion = Get-ToolsetValue "android.ndk.default" [array]$ndkVersions = Get-ToolsetValue "android.ndk.versions" - $ndkDefaultFullVersion = Get-ChildItem "$env:ANDROID_HOME/ndk/$ndkDefaultVersion.*" -Name | Select-Object -Last 1 $ndkFullVersions = $ndkVersions | ForEach-Object { (Get-ChildItem "/usr/local/lib/android/sdk/ndk/${_}.*" | Select-Object -Last 1).Name } | ForEach-Object { "ndk/${_}" } # Platforms starting with a letter are the preview versions, which is not installed on the image $platformVersionsList = ($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;android-', '' | Where-Object { $_ -match "^\d+$" } | Sort-Object -Unique @@ -61,17 +59,10 @@ Describe "Android" { Context "Packages" { $testCases = $androidPackages | ForEach-Object { @{ PackageName = $_ } } - $defaultNdkTestCase = @{ NdkDefaultFullVersion = $ndkDefaultFullVersion } It "" -TestCases $testCases { param ([string] $PackageName) Validate-AndroidPackage $PackageName } - - It "ndk-bundle points to the default NDK version" -TestCases $defaultNdkTestCase { - $ndkLinkTarget = (Get-Item $env:ANDROID_NDK_HOME).Target - $ndkVersion = Split-Path -Path $ndkLinkTarget -Leaf - $ndkVersion | Should -BeExactly $NdkDefaultFullVersion - } } } \ No newline at end of file diff --git a/images/linux/scripts/tests/Browsers.Tests.ps1 b/images/linux/scripts/tests/Browsers.Tests.ps1 index 11b523d94..1bb7b8f70 100644 --- a/images/linux/scripts/tests/Browsers.Tests.ps1 +++ b/images/linux/scripts/tests/Browsers.Tests.ps1 @@ -1,4 +1,4 @@ -Describe "Firefox" { +Describe "Firefox" -Skip:(Test-IsUbuntu22) { It "Firefox" { "sudo -i firefox --version" | Should -ReturnZeroExitCode } @@ -18,8 +18,18 @@ Describe "Chrome" { } } +Describe "Edge" { + It "Edge" { + "microsoft-edge --version" | Should -ReturnZeroExitCode + } + + It "Edge Driver" { + "msedgedriver --version" | Should -ReturnZeroExitCode + } +} + Describe "Chromium" { It "Chromium" { "chromium-browser --version" | Should -ReturnZeroExitCode } -} +} diff --git a/images/linux/scripts/tests/Common.Tests.ps1 b/images/linux/scripts/tests/Common.Tests.ps1 index ccd1efd04..b396f5b05 100644 --- a/images/linux/scripts/tests/Common.Tests.ps1 +++ b/images/linux/scripts/tests/Common.Tests.ps1 @@ -29,7 +29,7 @@ Describe "PHP" { } } -Describe "Swift" { +Describe "Swift" -Skip:(Test-IsUbuntu22) { It "swift" { "swift --version" | Should -ReturnZeroExitCode } @@ -37,6 +37,10 @@ Describe "Swift" { It "swiftc" { "swiftc --version" | Should -ReturnZeroExitCode } + + It "libsourcekitd" { + "/usr/local/lib/libsourcekitdInProc.so" | Should -Exist + } } Describe "PipxPackages" { diff --git a/images/linux/scripts/tests/Databases.Tests.ps1 b/images/linux/scripts/tests/Databases.Tests.ps1 index 1108a0ed4..9145312ba 100644 --- a/images/linux/scripts/tests/Databases.Tests.ps1 +++ b/images/linux/scripts/tests/Databases.Tests.ps1 @@ -1,4 +1,4 @@ -Describe "MongoDB" { +Describe "MongoDB" -Skip:(Test-IsUbuntu22) { It "" -TestCases @( @{ ToolName = "mongo" } @{ ToolName = "mongod" } diff --git a/images/linux/scripts/tests/Java.Tests.ps1 b/images/linux/scripts/tests/Java.Tests.ps1 index 67fa79295..9a16b566d 100644 --- a/images/linux/scripts/tests/Java.Tests.ps1 +++ b/images/linux/scripts/tests/Java.Tests.ps1 @@ -50,7 +50,7 @@ Describe "Java" { "`"$javaPath`" -version" | Should -MatchCommandOutput ([regex]::Escape("openjdk version `"${Version}.")) } - It "Java Adopt " -TestCases $adoptJdkVersions { + It "Java Adopt " -TestCases $adoptJdkVersions -Skip:(Test-IsUbuntu22) { $javaPath = Join-Path (Get-ChildItem ${env:AGENT_TOOLSDIRECTORY}\Java_Adopt_jdk\${Version}*) "x64\bin\java" "`"$javaPath`" -version" | Should -ReturnZeroExitCode diff --git a/images/linux/scripts/tests/Tools.Tests.ps1 b/images/linux/scripts/tests/Tools.Tests.ps1 index 56596be32..a155221e6 100644 --- a/images/linux/scripts/tests/Tools.Tests.ps1 +++ b/images/linux/scripts/tests/Tools.Tests.ps1 @@ -20,8 +20,7 @@ Describe "Rust" { $env:RUSTUP_HOME = "/etc/skel/.rustup" $env:CARGO_HOME = "/etc/skel/.cargo" } - - + It "Rustup is installed" { "rustup --version" | Should -ReturnZeroExitCode } @@ -77,6 +76,10 @@ Describe "Docker" { "docker compose" | Should -ReturnZeroExitCode } + It "docker-credential-ecr-login" { + "docker-credential-ecr-login -v" | Should -ReturnZeroExitCode + } + Context "docker images" { $testCases = (Get-ToolsetContent).docker.images | ForEach-Object { @{ ImageName = $_ } } @@ -117,7 +120,10 @@ Describe "clang" { "clang-$ClangVersion --version" | Should -ReturnZeroExitCode "clang++-$ClangVersion --version" | Should -ReturnZeroExitCode - } + "clang-format-$ClangVersion --version" | Should -ReturnZeroExitCode + "clang-tidy-$ClangVersion --version" | Should -ReturnZeroExitCode + "run-clang-tidy-$ClangVersion --help" | Should -ReturnZeroExitCode + } } Describe "Cmake" { @@ -126,7 +132,7 @@ Describe "Cmake" { } } -Describe "erlang" { +Describe "erlang" -Skip:(Test-IsUbuntu22) { $testCases = @("erl -version", "erlc -v", "rebar3 -v") | ForEach-Object { @{ErlangCommand = $_} } It "erlang " -TestCases $testCases { @@ -162,7 +168,7 @@ Describe "gfortran" { } } -Describe "Mono" { +Describe "Mono" -Skip:(Test-IsUbuntu22) { It "mono" { "mono --version" | Should -ReturnZeroExitCode } @@ -176,7 +182,7 @@ Describe "Mono" { } } -Describe "MSSQLCommandLineTools" { +Describe "MSSQLCommandLineTools" -Skip:(Test-IsUbuntu22) { It "sqlcmd" { "sqlcmd -?" | Should -ReturnZeroExitCode } @@ -244,7 +250,7 @@ Describe "Heroku" { } } -Describe "HHVM" { +Describe "HHVM" -Skip:(Test-IsUbuntu22) { It "hhvm" { "hhvm --version" | Should -ReturnZeroExitCode } @@ -316,13 +322,13 @@ Describe "Pulumi" { } } -Describe "Phantomjs" { +Describe "Phantomjs" -Skip:(Test-IsUbuntu22) { It "phantomjs" { "phantomjs --version" | Should -ReturnZeroExitCode } } -Describe "GraalVM" -Skip:(-not (Test-IsUbuntu20)) { +Describe "GraalVM" -Skip:(Test-IsUbuntu18) { It "graalvm" { '$GRAALVM_11_ROOT/bin/java -version' | Should -ReturnZeroExitCode } @@ -341,7 +347,7 @@ Describe "Containers" { ) "$ContainerCommand -v" | Should -ReturnZeroExitCode - } + } } Describe "nvm" { diff --git a/images/linux/toolsets/toolset-1804.json b/images/linux/toolsets/toolset-1804.json index 0e914d720..92a5c556d 100644 --- a/images/linux/toolsets/toolset-1804.json +++ b/images/linux/toolsets/toolset-1804.json @@ -83,9 +83,10 @@ "versions": [ "8", "11", "12" ] } ], - "maven": "3.8.5" + "maven": "3.8.6" }, "android": { + "cmdline-tools": "latest", "platform_min_version": "23", "build_tools_min_version": "23.0.1", "extra_list": [ @@ -104,9 +105,8 @@ "cmake;3.18.1" ], "ndk": { - "default": "21", "versions": [ - "21", "23" + "21", "23", "24" ] } }, @@ -120,7 +120,7 @@ "name": "az", "url" : "https://raw.githubusercontent.com/Azure/az-ps-module-versions/main/versions-manifest.json", "versions": [ - "7.3.2" + "7.5.0" ], "zip_versions": [ "3.1.0", diff --git a/images/linux/toolsets/toolset-2004.json b/images/linux/toolsets/toolset-2004.json index 0c5b19f99..a67e2faa2 100644 --- a/images/linux/toolsets/toolset-2004.json +++ b/images/linux/toolsets/toolset-2004.json @@ -84,9 +84,10 @@ "versions": [ "8", "11" ] } ], - "maven": "3.8.5" + "maven": "3.8.6" }, "android": { + "cmdline-tools": "latest", "platform_min_version": "27", "build_tools_min_version": "27.0.0", "extra_list": [ @@ -101,9 +102,8 @@ "cmake;3.18.1" ], "ndk": { - "default": "21", "versions": [ - "21", "22", "23" + "21", "23", "24" ] } }, @@ -118,7 +118,7 @@ "name": "az", "url" : "https://raw.githubusercontent.com/Azure/az-ps-module-versions/main/versions-manifest.json", "versions": [ - "7.3.2" + "7.5.0" ], "zip_versions": [ "3.1.0", diff --git a/images/linux/toolsets/toolset-2204.json b/images/linux/toolsets/toolset-2204.json new file mode 100644 index 000000000..884b0d028 --- /dev/null +++ b/images/linux/toolsets/toolset-2204.json @@ -0,0 +1,333 @@ +{ + "toolcache": [ + { + "name": "Python", + "url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json", + "platform" : "linux", + "platform_version": "22.04", + "arch": "x64", + "versions": [ + "3.7.*", + "3.8.*", + "3.9.*", + "3.10.*" + ] + }, + { + "name": "PyPy", + "arch": "x64", + "platform" : "linux", + "versions": [ + "3.7", + "3.8", + "3.9" + ] + }, + { + "name": "node", + "url" : "https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json", + "platform" : "linux", + "arch": "x64", + "versions": [ + "14.*", + "16.*" + ] + }, + { + "name": "go", + "url" : "https://raw.githubusercontent.com/actions/go-versions/main/versions-manifest.json", + "arch": "x64", + "platform" : "linux", + "versions": [ + "1.17.*", + "1.18.*" + ], + "default": "1.18.*" + }, + { + "name": "Ruby", + "platform_version": "22.04", + "arch": "x64", + "versions": [ + "3.1.*" + ] + }, + { + "name": "CodeQL", + "platform" : "linux", + "arch": "x64", + "versions": [ + "*" + ] + } + ], + "java": { + "default": "11", + "default_vendor": "Temurin-Hotspot", + "vendors": [ + { + "name": "Temurin-Hotspot", + "versions": [ "8", "11", "17" ] + } + ], + "maven": "3.8.6" + }, + "android": { + "cmdline-tools": "latest", + "platform_min_version": "27", + "build_tools_min_version": "27.0.0", + "extra_list": [ + "android;m2repository", + "google;m2repository", + "google;google_play_services" + ], + "addon_list": [ + ], + "additional_tools": [ + "cmake;3.10.2.4988404", + "cmake;3.18.1" + ], + "ndk": { + "versions": [ + "21", "23", "24" + ] + } + }, + "powershellModules": [ + {"name": "MarkdownPS"}, + {"name": "Microsoft.Graph"}, + {"name": "Pester"}, + {"name": "PSScriptAnalyzer"} + ], + "azureModules": [ + { + "name": "az", + "url" : "https://raw.githubusercontent.com/Azure/az-ps-module-versions/main/versions-manifest.json", + "versions": [ + "7.5.0" + ], + "zip_versions": [ + ] + } + ], + "apt": { + "common_packages": [ + "autoconf", + "automake", + "build-essential", + "dbus", + "dnsutils", + "dpkg", + "fakeroot", + "fonts-noto-color-emoji", + "gnupg2", + "imagemagick", + "iproute2", + "iputils-ping", + "lib32z1", + "libc++abi-dev", + "libc++-dev", + "libcurl4", + "libgbm-dev", + "libgconf-2-4", + "libgsl-dev", + "libgtk-3-0", + "libmagic-dev", + "libmagickcore-dev", + "libmagickwand-dev", + "libsecret-1-dev", + "libsqlite3-dev", + "libtool", + "libunwind8", + "libxkbfile-dev", + "libxss1", + "libssl-dev", + "locales", + "mercurial", + "openssh-client", + "p7zip-rar", + "pkg-config", + "python-is-python3", + "rpm", + "texinfo", + "tk", + "tzdata", + "upx", + "xorriso", + "xvfb", + "xz-utils", + "zsync" + ], + "cmd_packages": [ + "acl", + "aria2", + "binutils", + "bison", + "brotli", + "bzip2", + "coreutils", + "curl", + "file", + "flex", + "ftp", + "haveged", + "jq", + "m4", + "mediainfo", + "netcat", + "net-tools", + "p7zip-full", + "parallel", + "pass", + "patchelf", + "pollinate", + "rsync", + "shellcheck", + "sphinxsearch", + "sqlite3", + "ssh", + "sshpass", + "subversion", + "sudo", + "swig", + "telnet", + "time", + "unzip", + "wget", + "zip" + ] + }, + "brew": [ + {"name": "zstd"} + ], + "docker": { + "images": [ + "alpine:3.14", + "alpine:3.15", + "buildpack-deps:buster", + "buildpack-deps:bullseye", + "debian:10", + "debian:11", + "moby/buildkit:latest", + "node:14", + "node:16", + "node:14-alpine", + "node:16-alpine", + "ubuntu:18.04", + "ubuntu:20.04", + "ubuntu:22.04" + ] + }, + "pipx": [ + { + "package": "yamllint", + "cmd": "yamllint" + }, + { + "package": "ansible-core", + "cmd": "ansible" + } + ], + "dotnet": { + "aptPackages": [ + "dotnet-sdk-6.0" + ], + "versions": [ + "6.0" + ], + "tools": [ + { "name": "nbgv", "test": "nbgv --version", "getversion" : "nbgv --version" } + ] + }, + "clang": { + "versions": [ + "12", + "13", + "14" + ], + "default_version": "14" + }, + "gcc": { + "versions": [ + "g++-9", + "g++-10" + ] + }, + "gfortran": { + "versions": [ + "gfortran-9", + "gfortran-10" + ] + }, + "php": { + "versions": [ + "8.1" + ] + }, + "rubygems": [ + {"name": "fastlane"} + ], + "selenium": { + "version": "4", + "binary_name": "selenium-server" + }, + "node": { + "default": "16" + }, + "node_modules": [ + { + "name": "grunt", + "command": "grunt" + }, + { + "name": "gulp", + "command": "gulp" + }, + { + "name": "n", + "command": "n" + }, + { + "name": "parcel", + "command": "parcel" + }, + { + "name": "typescript", + "command": "tsc" + }, + { + "name": "newman", + "command": "newman" + }, + { + "name": "vercel", + "command": "vercel" + }, + { + "name": "webpack", + "command": "webpack" + }, + { + "name": "webpack-cli", + "command": "webpack-cli" + }, + { + "name": "netlify-cli", + "command": "netlify" + }, + { + "name": "lerna", + "command": "lerna" + }, + { + "name": "yarn", + "command": "yarn" + } + ], + "mongodb": { + "version": "5.0" + }, + "postgresql": { + "version": "14" + } +} diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json index 538f8019e..b36c1eb2c 100644 --- a/images/linux/ubuntu1804.json +++ b/images/linux/ubuntu1804.json @@ -2,6 +2,7 @@ "variables": { "client_id": "{{env `ARM_CLIENT_ID`}}", "client_secret": "{{env `ARM_CLIENT_SECRET`}}", + "client_cert_path": "{{env `ARM_CLIENT_CERT_PATH`}}", "subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}", "tenant_id": "{{env `ARM_TENANT_ID`}}", "resource_group": "{{env `ARM_RESOURCE_GROUP`}}", @@ -34,6 +35,7 @@ "type": "azure-arm", "client_id": "{{user `client_id`}}", "client_secret": "{{user `client_secret`}}", + "client_cert_path": "{{user `client_cert_path`}}", "subscription_id": "{{user `subscription_id`}}", "tenant_id": "{{user `tenant_id`}}", "location": "{{user `location`}}", @@ -149,20 +151,14 @@ { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/complete-snap-setup.sh" + "{{template_dir}}/scripts/installers/complete-snap-setup.sh", + "{{template_dir}}/scripts/installers/powershellcore.sh" ], "environment_vars": [ "HELPER_SCRIPTS={{user `helper_script_folder`}}" ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/powershellcore.sh" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, { "type": "shell", "scripts": [ @@ -207,6 +203,7 @@ "{{template_dir}}/scripts/installers/dotnetcore-sdk.sh", "{{template_dir}}/scripts/installers/erlang.sh", "{{template_dir}}/scripts/installers/firefox.sh", + "{{template_dir}}/scripts/installers/microsoft-edge.sh", "{{template_dir}}/scripts/installers/gcc.sh", "{{template_dir}}/scripts/installers/gfortran.sh", "{{template_dir}}/scripts/installers/git.sh", @@ -246,8 +243,8 @@ "{{template_dir}}/scripts/installers/vcpkg.sh", "{{template_dir}}/scripts/installers/dpkg-config.sh", "{{template_dir}}/scripts/installers/mongodb.sh", - "{{template_dir}}/scripts/installers/android.sh", "{{template_dir}}/scripts/installers/yq.sh", + "{{template_dir}}/scripts/installers/android.sh", "{{template_dir}}/scripts/installers/pypy.sh", "{{template_dir}}/scripts/installers/python.sh", "{{template_dir}}/scripts/installers/aws.sh" diff --git a/images/linux/ubuntu2004.json b/images/linux/ubuntu2004.json index a44f7402d..894de265a 100644 --- a/images/linux/ubuntu2004.json +++ b/images/linux/ubuntu2004.json @@ -2,6 +2,7 @@ "variables": { "client_id": "{{env `ARM_CLIENT_ID`}}", "client_secret": "{{env `ARM_CLIENT_SECRET`}}", + "client_cert_path": "{{env `ARM_CLIENT_CERT_PATH`}}", "subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}", "tenant_id": "{{env `ARM_TENANT_ID`}}", "resource_group": "{{env `ARM_RESOURCE_GROUP`}}", @@ -34,6 +35,7 @@ "type": "azure-arm", "client_id": "{{user `client_id`}}", "client_secret": "{{user `client_secret`}}", + "client_cert_path": "{{user `client_cert_path`}}", "subscription_id": "{{user `subscription_id`}}", "tenant_id": "{{user `tenant_id`}}", "location": "{{user `location`}}", @@ -149,20 +151,14 @@ { "type": "shell", "scripts": [ - "{{template_dir}}/scripts/installers/complete-snap-setup.sh" + "{{template_dir}}/scripts/installers/complete-snap-setup.sh", + "{{template_dir}}/scripts/installers/powershellcore.sh" ], "environment_vars": [ "HELPER_SCRIPTS={{user `helper_script_folder`}}" ], "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" }, - { - "type": "shell", - "scripts": [ - "{{template_dir}}/scripts/installers/powershellcore.sh" - ], - "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" - }, { "type": "shell", "scripts": [ @@ -208,6 +204,7 @@ "{{template_dir}}/scripts/installers/dotnetcore-sdk.sh", "{{template_dir}}/scripts/installers/erlang.sh", "{{template_dir}}/scripts/installers/firefox.sh", + "{{template_dir}}/scripts/installers/microsoft-edge.sh", "{{template_dir}}/scripts/installers/gcc.sh", "{{template_dir}}/scripts/installers/gfortran.sh", "{{template_dir}}/scripts/installers/git.sh", @@ -247,8 +244,8 @@ "{{template_dir}}/scripts/installers/vcpkg.sh", "{{template_dir}}/scripts/installers/dpkg-config.sh", "{{template_dir}}/scripts/installers/mongodb.sh", - "{{template_dir}}/scripts/installers/android.sh", "{{template_dir}}/scripts/installers/yq.sh", + "{{template_dir}}/scripts/installers/android.sh", "{{template_dir}}/scripts/installers/pypy.sh", "{{template_dir}}/scripts/installers/python.sh", "{{template_dir}}/scripts/installers/graalvm.sh" diff --git a/images/linux/ubuntu2204.pkr.hcl b/images/linux/ubuntu2204.pkr.hcl new file mode 100644 index 000000000..776112ec0 --- /dev/null +++ b/images/linux/ubuntu2204.pkr.hcl @@ -0,0 +1,397 @@ + +variable "allowed_inbound_ip_addresses" { + type = list(string) + default = [] +} + +variable "build_resource_group_name" { + type = string + default = "${env("BUILD_RESOURCE_GROUP_NAME")}" +} + +variable "capture_name_prefix" { + type = string + default = "packer" +} + +variable "client_id" { + type = string + default = "${env("ARM_CLIENT_ID")}" +} + +variable "client_secret" { + type = string + default = "${env("ARM_CLIENT_SECRET")}" + sensitive = true +} + +variable "client_cert_path" { + type = string + default = "${env("ARM_CLIENT_CERT_PATH")}" +} + +variable "commit_url" { + type = string + default = "" +} + +variable "dockerhub_login" { + type = string + default = "${env("DOCKERHUB_LOGIN")}" +} + +variable "dockerhub_password" { + type = string + default = "${env("DOCKERHUB_PASSWORD")}" +} + +variable "helper_script_folder" { + type = string + default = "/imagegeneration/helpers" +} + +variable "image_folder" { + type = string + default = "/imagegeneration" +} + +variable "image_os" { + type = string + default = "ubuntu22" +} + +variable "image_version" { + type = string + default = "dev" +} + +variable "imagedata_file" { + type = string + default = "/imagegeneration/imagedata.json" +} + +variable "installer_script_folder" { + type = string + default = "/imagegeneration/installers" +} + +variable "install_password" { + type = string + default = "" +} + +variable "location" { + type = string + default = "${env("ARM_RESOURCE_LOCATION")}" +} + +variable "private_virtual_network_with_public_ip" { + type = bool + default = false +} + +variable "resource_group" { + type = string + default = "${env("ARM_RESOURCE_GROUP")}" +} + +variable "run_validation_diskspace" { + type = bool + default = false +} + +variable "storage_account" { + type = string + default = "${env("ARM_STORAGE_ACCOUNT")}" +} + +variable "subscription_id" { + type = string + default = "${env("ARM_SUBSCRIPTION_ID")}" +} + +variable "temp_resource_group_name" { + type = string + default = "${env("TEMP_RESOURCE_GROUP_NAME")}" +} + +variable "tenant_id" { + type = string + default = "${env("ARM_TENANT_ID")}" +} + +variable "virtual_network_name" { + type = string + default = "${env("VNET_NAME")}" +} + +variable "virtual_network_resource_group_name" { + type = string + default = "${env("VNET_RESOURCE_GROUP")}" +} + +variable "virtual_network_subnet_name" { + type = string + default = "${env("VNET_SUBNET")}" +} + +variable "vm_size" { + type = string + default = "Standard_D4s_v4" +} + +source "azure-arm" "build_vhd" { + allowed_inbound_ip_addresses = "${var.allowed_inbound_ip_addresses}" + build_resource_group_name = "${var.build_resource_group_name}" + capture_container_name = "images" + capture_name_prefix = "${var.capture_name_prefix}" + client_id = "${var.client_id}" + client_secret = "${var.client_secret}" + client_cert_path = "${var.client_cert_path}" + image_offer = "0001-com-ubuntu-server-jammy" + image_publisher = "canonical" + image_sku = "22_04-lts" + location = "${var.location}" + os_disk_size_gb = "86" + os_type = "Linux" + private_virtual_network_with_public_ip = "${var.private_virtual_network_with_public_ip}" + resource_group_name = "${var.resource_group}" + storage_account = "${var.storage_account}" + subscription_id = "${var.subscription_id}" + temp_resource_group_name = "${var.temp_resource_group_name}" + tenant_id = "${var.tenant_id}" + virtual_network_name = "${var.virtual_network_name}" + virtual_network_resource_group_name = "${var.virtual_network_resource_group_name}" + virtual_network_subnet_name = "${var.virtual_network_subnet_name}" + vm_size = "${var.vm_size}" +} + +build { + sources = ["source.azure-arm.build_vhd"] + + provisioner "shell" { + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + inline = ["mkdir ${var.image_folder}", "chmod 777 ${var.image_folder}"] + } + + provisioner "shell" { + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + script = "${path.root}/scripts/base/apt-mock.sh" + } + + provisioner "shell" { + environment_vars = ["DEBIAN_FRONTEND=noninteractive"] + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + scripts = ["${path.root}/scripts/base/repos.sh"] + } + + provisioner "shell" { + environment_vars = ["DEBIAN_FRONTEND=noninteractive"] + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + script = "${path.root}/scripts/base/apt.sh" + } + + provisioner "shell" { + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + script = "${path.root}/scripts/base/limits.sh" + } + + provisioner "file" { + destination = "${var.helper_script_folder}" + source = "${path.root}/scripts/helpers" + } + + provisioner "file" { + destination = "${var.installer_script_folder}" + source = "${path.root}/scripts/installers" + } + + provisioner "file" { + destination = "${var.image_folder}" + source = "${path.root}/post-generation" + } + + provisioner "file" { + destination = "${var.image_folder}" + source = "${path.root}/scripts/tests" + } + + provisioner "file" { + destination = "${var.image_folder}" + source = "${path.root}/scripts/SoftwareReport" + } + + provisioner "file" { + destination = "${var.installer_script_folder}/toolset.json" + source = "${path.root}/toolsets/toolset-2204.json" + } + + provisioner "shell" { + environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGEDATA_FILE=${var.imagedata_file}"] + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + scripts = ["${path.root}/scripts/installers/preimagedata.sh"] + } + + provisioner "shell" { + environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGE_OS=${var.image_os}", "HELPER_SCRIPTS=${var.helper_script_folder}"] + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + scripts = ["${path.root}/scripts/installers/configure-environment.sh"] + } + + provisioner "shell" { + environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}"] + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + scripts = ["${path.root}/scripts/installers/complete-snap-setup.sh", "${path.root}/scripts/installers/powershellcore.sh"] + } + + provisioner "shell" { + environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"] + execute_command = "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'" + scripts = ["${path.root}/scripts/installers/Install-PowerShellModules.ps1", "${path.root}/scripts/installers/Install-AzureModules.ps1"] + } + + provisioner "shell" { + environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "DOCKERHUB_LOGIN=${var.dockerhub_login}", "DOCKERHUB_PASSWORD=${var.dockerhub_password}"] + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + scripts = ["${path.root}/scripts/installers/docker-compose.sh", "${path.root}/scripts/installers/docker-moby.sh"] + } + + provisioner "shell" { + environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "DEBIAN_FRONTEND=noninteractive"] + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + scripts = [ + "${path.root}/scripts/installers/azcopy.sh", + "${path.root}/scripts/installers/azure-cli.sh", + "${path.root}/scripts/installers/azure-devops-cli.sh", + "${path.root}/scripts/installers/basic.sh", + "${path.root}/scripts/installers/bicep.sh", + "${path.root}/scripts/installers/aliyun-cli.sh", + "${path.root}/scripts/installers/apache.sh", + "${path.root}/scripts/installers/aws.sh", + "${path.root}/scripts/installers/clang.sh", + "${path.root}/scripts/installers/cmake.sh", + "${path.root}/scripts/installers/codeql-bundle.sh", + "${path.root}/scripts/installers/containers.sh", + "${path.root}/scripts/installers/dotnetcore-sdk.sh", + "${path.root}/scripts/installers/microsoft-edge.sh", + "${path.root}/scripts/installers/gcc.sh", + "${path.root}/scripts/installers/gfortran.sh", + "${path.root}/scripts/installers/git.sh", + "${path.root}/scripts/installers/github-cli.sh", + "${path.root}/scripts/installers/google-chrome.sh", + "${path.root}/scripts/installers/google-cloud-sdk.sh", + "${path.root}/scripts/installers/haskell.sh", + "${path.root}/scripts/installers/heroku.sh", + "${path.root}/scripts/installers/java-tools.sh", + "${path.root}/scripts/installers/kubernetes-tools.sh", + "${path.root}/scripts/installers/oc.sh", + "${path.root}/scripts/installers/leiningen.sh", + "${path.root}/scripts/installers/miniconda.sh", + "${path.root}/scripts/installers/kotlin.sh", + "${path.root}/scripts/installers/mysql.sh", + "${path.root}/scripts/installers/sqlpackage.sh", + "${path.root}/scripts/installers/nginx.sh", + "${path.root}/scripts/installers/nvm.sh", + "${path.root}/scripts/installers/nodejs.sh", + "${path.root}/scripts/installers/bazel.sh", + "${path.root}/scripts/installers/oras-cli.sh", + "${path.root}/scripts/installers/php.sh", + "${path.root}/scripts/installers/postgresql.sh", + "${path.root}/scripts/installers/pulumi.sh", + "${path.root}/scripts/installers/ruby.sh", + "${path.root}/scripts/installers/r.sh", + "${path.root}/scripts/installers/rust.sh", + "${path.root}/scripts/installers/julia.sh", + "${path.root}/scripts/installers/sbt.sh", + "${path.root}/scripts/installers/selenium.sh", + "${path.root}/scripts/installers/terraform.sh", + "${path.root}/scripts/installers/packer.sh", + "${path.root}/scripts/installers/vcpkg.sh", + "${path.root}/scripts/installers/dpkg-config.sh", + "${path.root}/scripts/installers/yq.sh", + "${path.root}/scripts/installers/android.sh", + "${path.root}/scripts/installers/pypy.sh", + "${path.root}/scripts/installers/python.sh", + "${path.root}/scripts/installers/graalvm.sh" + ] + } + + provisioner "shell" { + environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"] + execute_command = "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'" + scripts = ["${path.root}/scripts/installers/Install-Toolset.ps1", "${path.root}/scripts/installers/Configure-Toolset.ps1"] + } + + provisioner "shell" { + environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"] + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + scripts = ["${path.root}/scripts/installers/pipx-packages.sh"] + } + + provisioner "shell" { + environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "DEBIAN_FRONTEND=noninteractive", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"] + execute_command = "/bin/sh -c '{{ .Vars }} {{ .Path }}'" + scripts = ["${path.root}/scripts/installers/homebrew.sh"] + } + + provisioner "shell" { + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + script = "${path.root}/scripts/base/snap.sh" + } + + provisioner "shell" { + execute_command = "/bin/sh -c '{{ .Vars }} {{ .Path }}'" + expect_disconnect = true + scripts = ["${path.root}/scripts/base/reboot.sh"] + } + + provisioner "shell" { + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + pause_before = "1m0s" + scripts = ["${path.root}/scripts/installers/cleanup.sh"] + start_retry_timeout = "10m" + } + + provisioner "shell" { + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + script = "${path.root}/scripts/base/apt-mock-remove.sh" + } + + provisioner "shell" { + environment_vars = ["IMAGE_VERSION=${var.image_version}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"] + inline = ["pwsh -File ${var.image_folder}/SoftwareReport/SoftwareReport.Generator.ps1 -OutputDirectory ${var.image_folder}", "pwsh -File ${var.image_folder}/tests/RunAll-Tests.ps1 -OutputDirectory ${var.image_folder}"] + } + + provisioner "file" { + destination = "${path.root}/Ubuntu2204-Readme.md" + direction = "download" + source = "${var.image_folder}/Ubuntu-Readme.md" + } + + provisioner "shell" { + environment_vars = ["HELPER_SCRIPT_FOLDER=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "IMAGE_FOLDER=${var.image_folder}"] + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + scripts = ["${path.root}/scripts/installers/post-deployment.sh"] + } + + provisioner "shell" { + environment_vars = ["RUN_VALIDATION=${var.run_validation_diskspace}"] + scripts = ["${path.root}/scripts/installers/validate-disk-space.sh"] + } + + provisioner "file" { + destination = "/tmp/" + source = "${path.root}/config/ubuntu2204.conf" + } + + provisioner "shell" { + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + inline = ["mkdir -p /etc/vsts", "cp /tmp/ubuntu2204.conf /etc/vsts/machine_instance.conf"] + } + + provisioner "shell" { + execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'" + inline = ["sleep 30", "/usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync"] + } + +} diff --git a/images/macos/helpers/Common.Helpers.psm1 b/images/macos/helpers/Common.Helpers.psm1 index f8d758b3b..0dbe23831 100644 --- a/images/macos/helpers/Common.Helpers.psm1 +++ b/images/macos/helpers/Common.Helpers.psm1 @@ -28,17 +28,14 @@ function Get-EnvironmentVariable($variable) { function Get-OSVersion { $osVersion = [Environment]::OSVersion $osVersionMajorMinor = $osVersion.Version.ToString(2) - # Monterey needs future review: - # [Environment]::OSVersion returns 11.0 for Monterey preview. - [SemVer]$osMontereyVersion = sw_vers -productVersion return [PSCustomObject]@{ Version = $osVersion.Version Platform = $osVersion.Platform IsCatalina = $osVersionMajorMinor -eq "10.15" - IsBigSur = $osVersionMajorMinor -eq "11.0" - IsMonterey = $osMontereyVersion.Major -eq "12" - IsLessThanMonterey = $osMontereyVersion -lt "12.0" - IsHigherThanCatalina = [SemVer]$osVersion.Version -ge "11.0" + IsBigSur = $osVersion.Version.Major -eq "11" + IsMonterey = $osVersion.Version.Major -eq "12" + IsLessThanMonterey = $osVersion.Version.Major -lt "12" + IsHigherThanCatalina = $osVersion.Version.Major -ge "11" } } diff --git a/images/macos/macos-10.15-Readme.md b/images/macos/macos-10.15-Readme.md index 5bb4bb8af..0269b694c 100644 --- a/images/macos/macos-10.15-Readme.md +++ b/images/macos/macos-10.15-Readme.md @@ -1,53 +1,54 @@ | Announcements | |-| -| [[All OSs] Go versions less than 1.16 will be removed and the default will be set to 1.17 on April, 11](https://github.com/actions/virtual-environments/issues/5280) | +| [[macOS] Default Xcode on Monterey image will be set to Xcode 13.4.1 on July, 11](https://github.com/actions/virtual-environments/issues/5836) | +| [[Windows, macOS] LLVM will be updated to version 14 on July, 11](https://github.com/actions/virtual-environments/issues/5835) | *** # macOS 10.15 info -- System Version: macOS 10.15.7 (19H1824) +- System Version: macOS 10.15.7 (19H1922) - Kernel Version: Darwin 19.6.0 -- Image Version: 20220408.1 +- Image Version: 20220627.1 ## Installed Software ### Language and Runtime -- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.417 5.0.102 5.0.202 5.0.302 5.0.406 +- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.420 5.0.102 5.0.202 5.0.302 5.0.408 - Bash 3.2.57(1)-release +- Clang/LLVM 13.0.1 is available on `'$(brew --prefix llvm@13)/bin/clang'` - Clang/LLVM 12.0.0 is default -- Clang/LLVM 13.0.1 is available on `'$(brew --prefix llvm)/bin/clang'` -- gcc-9 (Homebrew GCC 9.4.0) 9.4.0 - available by `gcc-9` alias +- gcc-9 (Homebrew GCC 9.5.0) 9.5.0 - available by `gcc-9` alias - gcc-10 (Homebrew GCC 10.3.0) 10.3.0 - available by `gcc-10` alias -- gcc-11 (Homebrew GCC 11.2.0_3) 11.2.0 - available by `gcc-11` alias -- GNU Fortran (Homebrew GCC 9.4.0) 9.4.0 - available by `gfortran-9` alias +- gcc-11 (Homebrew GCC 11.3.0_2) 11.3.0 - available by `gcc-11` alias +- GNU Fortran (Homebrew GCC 9.5.0) 9.5.0 - available by `gfortran-9` alias - GNU Fortran (Homebrew GCC 10.3.0) 10.3.0 - available by `gfortran-10` alias -- GNU Fortran (Homebrew GCC 11.2.0_3) 11.2.0 - available by `gfortran-11` alias -- Go 1.17.8 -- julia 1.7.2 -- Kotlin 1.6.20-release-275 -- MSBuild 16.10.1.58001 (from /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll) -- Node.js v16.14.2 +- GNU Fortran (Homebrew GCC 11.3.0_2) 11.3.0 - available by `gfortran-11` alias +- Go 1.17.11 +- julia 1.7.3 +- Kotlin 1.7.0-release-281 +- MSBuild 16.10.1.31401 (from /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll) +- Node.js v16.15.1 - NVM 0.39.1 -- NVM - Cached node versions: v12.22.12 v14.19.1 v16.14.2 +- NVM - Cached node versions: v12.22.12 v14.19.3 v16.15.1 - Perl 5.34.0 -- PHP 8.1.4 +- PHP 8.1.7 - Python 2.7.18 -- Python 3.9.12 -- R 4.1.3 -- Ruby 2.7.5p203 +- Python 3.9.13 +- R 4.2.1 +- Ruby 2.7.6p219 ### Package Management -- Bundler version 2.3.11 +- Bundler version 2.3.16 - Carthage 0.38.0 - CocoaPods 1.11.3 -- Composer 2.3.4 -- Homebrew 3.4.5 -- Miniconda 4.11.0 -- NPM 8.5.0 -- NuGet 5.9.0.7134 +- Composer 2.3.7 +- Homebrew 3.5.2 +- Miniconda 4.12.0 +- NPM 8.11.0 +- NuGet 6.2.1.2 - Pip 20.3.4 (python 2.7) -- Pip 22.0.4 (python 3.9) -- Pipx 1.0.0 +- Pip 22.1.1 (python 3.9) +- Pipx 1.1.0 - RubyGems 3.2.33 -- Vcpkg 2022 (build from master \) -- Yarn 1.22.18 +- Vcpkg 2022 (build from master \) +- Yarn 1.22.19 #### Environment variables | Name | Value | @@ -57,115 +58,116 @@ ### Project Management - Apache Ant(TM) 1.10.12 -- Apache Maven 3.8.5 +- Apache Maven 3.8.6 - Gradle 7.4.2 - Sbt 1.6.2 ### Utilities - 7-Zip 17.04 - aria2 1.36.0 -- azcopy 10.14.1 -- bazel 5.1.1 -- bazelisk 1.11.0 +- azcopy 10.15.0 +- bazel 5.2.0 +- bazelisk 1.12.0 - bsdtar 3.3.2 - available by 'tar' alias -- Curl 7.82.0 -- Git 2.35.1 -- Git LFS: 3.1.2 -- GitHub CLI: 2.7.0 -- GNU parallel 20220322 +- Curl 7.84.0 +- Git 2.36.1 +- Git LFS: 3.2.0 +- GitHub CLI: 2.13.0 +- GNU parallel 20220622 - GNU Tar 1.34 - available by 'gtar' alias - GNU Wget 1.21.3 -- gpg (GnuPG) 2.3.4 -- helm v3.8.1+g5cb9af4 +- gpg (GnuPG) 2.3.6 +- helm v3.9.0+g7ceeda6 - Hub CLI: 2.14.2 +- ImageMagick 7.1.0-39 - jq 1.6 -- mongo v5.0.6 -- mongod v5.0.6 +- mongo v5.0.7 +- mongod v5.0.7 - Newman 5.3.2 -- OpenSSL 1.1.1n 15 Mar 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1n)` -- Packer 1.8.0 -- PostgreSQL 14.2 -- psql (PostgreSQL) 14.2 +- OpenSSL 1.1.1p 21 Jun 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1p)` +- Packer 1.8.2 +- PostgreSQL 14.4 +- psql (PostgreSQL) 14.4 - Sox 14.4.2 -- Subversion (SVN) 1.14.1 +- Subversion (SVN) 1.14.2 - Switchaudio-osx 1.1.0 - Vagrant 2.2.19 -- virtualbox 6.1.32r149290 -- yq (https://github.com/mikefarah/yq/) version 4.24.2 +- VirtualBox 6.1.34r150636 +- yq (https://github.com/mikefarah/yq/) version 4.25.3 - zstd 1.5.2 ### Tools -- Aliyun CLI 3.0.115 -- App Center CLI 2.10.9 -- AWS CLI 2.5.4 -- AWS SAM CLI 1.46.0 -- AWS Session Manager CLI 1.2.312.0 +- Aliyun CLI 3.0.123 +- App Center CLI 2.10.10 +- AWS CLI 2.7.11 +- AWS SAM CLI 1.52.0 +- AWS Session Manager CLI 1.2.339.0 - Azure CLI (azure-devops) 0.25.0 -- Azure CLI 2.35.0 -- Bicep CLI 0.5.6 +- Azure CLI 2.37.0 +- Bicep CLI 0.7.4 - Cabal 3.6.2.0 -- Cmake 3.23.0 -- Fastlane 2.205.1 -- GHC 9.2.2 -- GHCup v0.1.17.6 +- Cmake 3.23.2 +- Fastlane 2.206.2 +- GHC 9.2.3 +- GHCup 0.1.17.8 - Jazzy 0.14.2 - Stack 2.7.5 -- SwiftFormat 0.49.7 +- SwiftFormat 0.49.11 - Swig 4.0.2 - Xcode Command Line Tools 12.4.0.0.1.1610135815 ### Linters -- SwiftLint 0.47.0 +- SwiftLint 0.47.1 - yamllint 1.26.3 ### Browsers -- Safari 15.4 (15613.1.17.1.13) -- SafariDriver 15.4 (15613.1.17.1.13) -- Google Chrome 100.0.4896.75 -- ChromeDriver 100.0.4896.60 -- Microsoft Edge 100.0.1185.36 -- MSEdgeDriver 100.0.1185.36 -- Mozilla Firefox 99.0 -- geckodriver 0.30.0 -- Selenium server 4.1.3 +- Safari 15.5 (15613.2.7.1.9) +- SafariDriver 15.5 (15613.2.7.1.9) +- Google Chrome 103.0.5060.53 +- ChromeDriver 103.0.5060.53 +- Microsoft Edge 103.0.1264.37 +- Microsoft Edge WebDriver 103.0.1264.37 +- Mozilla Firefox 101.0.1 +- geckodriver 0.31.0 +- Selenium server 4.3.0 #### Environment variables | Name | Value | | --------------- | ---------------------------------------------- | -| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/100.0.4896.60 | +| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/103.0.5060.53 | | EDGEWEBDRIVER | /usr/local/share/edge_driver | | GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin | ### Java | Version | Vendor | Environment Variable | | ------------------- | --------------- | -------------------- | -| 8.0.322+6 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | -| 11.0.14+101 | Eclipse Temurin | JAVA_HOME_11_X64 | +| 8.0.332+9 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | +| 11.0.15+10 | Eclipse Temurin | JAVA_HOME_11_X64 | | 12.0.2+10.3 | Adopt OpenJDK | JAVA_HOME_12_X64 | | 13.0.2+8.1 | Adopt OpenJDK | JAVA_HOME_13_X64 | | 14.0.2+12 | Adopt OpenJDK | JAVA_HOME_14_X64 | -| 17.0.2+8 | Eclipse Temurin | JAVA_HOME_17_X64 | +| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 | ### GraalVM -| Version | Environment variables | -| ----------- | --------------------- | -| CE 22.0.0.2 | GRAALVM_11_ROOT | +| Version | Environment variables | +| --------- | --------------------- | +| CE 22.1.0 | GRAALVM_11_ROOT | ### Cached Tools #### Ruby - 2.4.10 - 2.5.9 -- 2.6.9 -- 2.7.5 -- 3.0.3 +- 2.6.10 +- 2.7.6 +- 3.0.4 #### Python - 2.7.18 - 3.6.15 -- 3.7.12 -- 3.8.12 -- 3.9.12 -- 3.10.4 +- 3.7.13 +- 3.8.13 +- 3.9.13 +- 3.10.5 #### PyPy - 2.7.18 [PyPy 7.3.9] @@ -176,50 +178,52 @@ #### Node.js - 12.22.12 -- 14.19.1 -- 16.14.2 +- 14.19.3 +- 16.15.1 #### Go | Version | Architecture | Environment Variable | | ------- | ------------ | -------------------- | | 1.16.15 | x64 | GOROOT_1_16_X64 | -| 1.17.8 (Default) | x64 | GOROOT_1_17_X64 | -| 1.18.0 | x64 | GOROOT_1_18_X64 | +| 1.17.11 (Default) | x64 | GOROOT_1_17_X64 | +| 1.18.3 | x64 | GOROOT_1_18_X64 | ### Rust Tools -- Cargo 1.60.0 -- Rust 1.60.0 -- Rustdoc 1.60.0 +- Cargo 1.61.0 +- Rust 1.61.0 +- Rustdoc 1.61.0 - Rustup 1.24.3 #### Packages -- Bindgen 0.59.2 -- Cargo-audit 0.16.0 -- Cargo-outdated 0.11.0 -- Cbindgen 0.21.0 -- Clippy 0.1.60 +- Bindgen 0.60.1 +- Cargo-audit 0.17.0 +- Cargo-outdated 0.11.1 +- Cbindgen 0.24.3 +- Clippy 0.1.61 - Rustfmt 1.4.38-stable ### PowerShell Tools -- PowerShell 7.2.2 +- PowerShell 7.2.5 #### PowerShell Modules | Module | Version | | ---------------- | ------- | -| Az | 7.1.0 | +| Az | 8.0.0 | | MarkdownPS | 1.9 | -| Pester | 5.3.1 | +| Pester | 5.3.3 | | PSScriptAnalyzer | 1.20.0 | ### Web Servers -| Name | Version | ConfigFile | ServiceStatus | ListenPort | -| ----- | -------- | ------------------------------- | ------------- | ---------- | -| httpd | 2.4.53 | /usr/local/etc/httpd/httpd.conf | none | 80 | -| nginx | 1.21.6_1 | /usr/local/etc/nginx/nginx.conf | none | 80 | +| Name | Version | ConfigFile | ServiceStatus | ListenPort | +| ----- | ------- | ------------------------------- | ------------- | ---------- | +| httpd | 2.4.54 | /usr/local/etc/httpd/httpd.conf | none | 80 | +| nginx | 1.23.0 | /usr/local/etc/nginx/nginx.conf | none | 80 | ### Xamarin #### Visual Studio for Mac -- 8.10.21.4 +| Version | Build | Path | +| -------------- | --------- | ------------------------------- | +| 2019 (default) | 8.10.25.2 | /Applications/Visual Studio.app | #### Xamarin bundles | symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android | @@ -355,37 +359,37 @@ | watchOS 7.2 | 12.3
12.4 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm | ### Android -| Package Name | Version | -| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Android Command Line Tools | 4.0 | -| Android Emulator | 31.2.9 | -| Android SDK Build-tools | 32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3 | -| Android SDK Platforms | android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2) | -| Android SDK Platform-Tools | 33.0.1 | -| Android Support Repository | 47.0.0 | -| CMake | 3.10.2
3.18.1 | -| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 | -| Google Play services | 49 | -| Google Repository | 58 | -| NDK | 15.2.4203891
18.1.5063045
21.4.7075529 (default)
22.1.7171670
23.1.7779620 | -| SDK Patch Applier v4 | 1 | -| Intel HAXM | 7.6.5 | +| Package Name | Version | +| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Android Command Line Tools | 7.0 | +| Android Emulator | 31.2.10 | +| Android SDK Build-tools | 33.0.0
32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3 | +| Android SDK Platforms | android-33 (rev 1)
android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2) | +| Android SDK Platform-Tools | 33.0.2 | +| Android Support Repository | 47.0.0 | +| CMake | 3.10.2
3.18.1 | +| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 | +| Google Play services | 49 | +| Google Repository | 58 | +| NDK | 15.2.4203891
18.1.5063045
21.4.7075529
23.2.8568313 (default)
24.0.8215888 | +| SDK Patch Applier v4 | 1 | +| Intel HAXM | 7.6.5 | #### Environment variables | Name | Value | | ----------------------- | -------------------------------------------------------------------------------------------------- | | ANDROID_HOME | /Users/runner/Library/Android/sdk | | ANDROID_NDK_18R_PATH | /Users/runner/Library/Android/sdk/ndk/18.1.5063045 | -| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 | -| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/23.1.7779620 | -| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 | +| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/23.2.8568313 | +| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/24.0.8215888 | +| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/23.2.8568313 | | ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk | ### Miscellaneous - libXext 1.3.4 - libXft 2.3.4 - Tcl/Tk 8.6.12 -- Zlib 1.2.11 +- Zlib 1.2.12 diff --git a/images/macos/macos-11-Readme.md b/images/macos/macos-11-Readme.md index c979771e3..b4088893e 100644 --- a/images/macos/macos-11-Readme.md +++ b/images/macos/macos-11-Readme.md @@ -1,53 +1,49 @@ -| Announcements | -|-| -| [[All OSs] Go versions less than 1.16 will be removed and the default will be set to 1.17 on April, 11](https://github.com/actions/virtual-environments/issues/5280) | -*** # macOS 11.6 info -- System Version: macOS 11.6.5 (20G527) +- System Version: macOS 11.6.6 (20G624) - Kernel Version: Darwin 20.6.0 -- Image Version: 20220410.1 +- Image Version: 20220627.1 ## Installed Software ### Language and Runtime -- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.417 5.0.102 5.0.202 5.0.302 5.0.406 +- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.420 5.0.102 5.0.202 5.0.302 5.0.408 - Bash 3.2.57(1)-release +- Clang/LLVM 13.0.1 is available on `'$(brew --prefix llvm@13)/bin/clang'` - Clang/LLVM 13.0.0 is default -- Clang/LLVM 13.0.1 is available on `'$(brew --prefix llvm)/bin/clang'` -- gcc-9 (Homebrew GCC 9.4.0) 9.4.0 - available by `gcc-9` alias +- gcc-9 (Homebrew GCC 9.5.0) 9.5.0 - available by `gcc-9` alias - gcc-10 (Homebrew GCC 10.3.0) 10.3.0 - available by `gcc-10` alias -- gcc-11 (Homebrew GCC 11.2.0_3) 11.2.0 - available by `gcc-11` alias -- GNU Fortran (Homebrew GCC 9.4.0) 9.4.0 - available by `gfortran-9` alias +- gcc-11 (Homebrew GCC 11.3.0_2) 11.3.0 - available by `gcc-11` alias +- GNU Fortran (Homebrew GCC 9.5.0) 9.5.0 - available by `gfortran-9` alias - GNU Fortran (Homebrew GCC 10.3.0) 10.3.0 - available by `gfortran-10` alias -- GNU Fortran (Homebrew GCC 11.2.0_3) 11.2.0 - available by `gfortran-11` alias -- Go 1.17.8 -- julia 1.7.2 -- Kotlin 1.6.20-release-275 -- MSBuild 16.10.1.58001 (from /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll) -- Node.js v16.14.2 +- GNU Fortran (Homebrew GCC 11.3.0_2) 11.3.0 - available by `gfortran-11` alias +- Go 1.17.11 +- julia 1.7.3 +- Kotlin 1.7.0-release-281 +- MSBuild 16.10.1.31401 (from /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll) +- Node.js v16.15.1 - NVM 0.39.1 -- NVM - Cached node versions: v12.22.12 v14.19.1 v16.14.2 +- NVM - Cached node versions: v12.22.12 v14.19.3 v16.15.1 - Perl 5.34.0 -- PHP 8.1.4 +- PHP 8.1.7 - Python 2.7.18 -- Python 3.9.12 -- R 4.1.3 -- Ruby 2.7.5p203 +- Python 3.9.13 +- R 4.2.1 +- Ruby 2.7.6p219 ### Package Management -- Bundler version 2.3.11 +- Bundler version 2.3.16 - Carthage 0.38.0 - CocoaPods 1.11.3 -- Composer 2.3.4 -- Homebrew 3.4.5 -- Miniconda 4.11.0 -- NPM 8.5.0 -- NuGet 5.9.0.7134 +- Composer 2.3.7 +- Homebrew 3.5.2 +- Miniconda 4.12.0 +- NPM 8.11.0 +- NuGet 6.2.1.2 - Pip 20.3.4 (python 2.7) -- Pip 22.0.4 (python 3.9) -- Pipx 1.0.0 +- Pip 22.1.1 (python 3.9) +- Pipx 1.1.0 - RubyGems 3.2.33 -- Vcpkg 2022 (build from master \) -- Yarn 1.22.18 +- Vcpkg 2022 (build from master \<432037ce4>) +- Yarn 1.22.19 #### Environment variables | Name | Value | @@ -57,107 +53,109 @@ ### Project Management - Apache Ant(TM) 1.10.12 -- Apache Maven 3.8.5 +- Apache Maven 3.8.6 - Gradle 7.4.2 - Sbt 1.6.2 ### Utilities - 7-Zip 17.04 - aria2 1.36.0 -- azcopy 10.14.1 -- bazel 5.1.1 -- bazelisk 1.11.0 +- azcopy 10.15.0 +- bazel 5.2.0 +- bazelisk 1.12.0 - bsdtar 3.3.2 - available by 'tar' alias -- Curl 7.82.0 -- Git 2.35.1 -- Git LFS: 3.1.2 -- GitHub CLI: 2.7.0 +- Curl 7.84.0 +- Git 2.36.1 +- Git LFS: 3.2.0 +- GitHub CLI: 2.13.0 - GNU Tar 1.34 - available by 'gtar' alias - GNU Wget 1.21.3 -- gpg (GnuPG) 2.3.4 -- helm v3.8.1+g5cb9af4 +- gpg (GnuPG) 2.3.6 +- helm v3.9.0+g7ceeda6 - Hub CLI: 2.14.2 +- ImageMagick 7.1.0-39 - jq 1.6 -- mongo v5.0.6 -- mongod v5.0.6 +- mongo v5.0.7 +- mongod v5.0.7 - Newman 5.3.2 -- OpenSSL 1.1.1n 15 Mar 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1n)` -- Packer 1.8.0 -- PostgreSQL 14.2 -- psql (PostgreSQL) 14.2 +- OpenSSL 1.1.1p 21 Jun 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1p)` +- Packer 1.8.2 +- PostgreSQL 14.4 +- psql (PostgreSQL) 14.4 - Sox 14.4.2 -- Subversion (SVN) 1.14.1 +- Subversion (SVN) 1.14.2 - Switchaudio-osx 1.1.0 -- yq (https://github.com/mikefarah/yq/) version 4.24.2 +- yq (https://github.com/mikefarah/yq/) version 4.25.3 - zstd 1.5.2 ### Tools -- Aliyun CLI 3.0.115 -- App Center CLI 2.10.9 -- AWS CLI 2.5.4 -- AWS SAM CLI 1.46.0 -- AWS Session Manager CLI 1.2.312.0 +- Aliyun CLI 3.0.123 +- App Center CLI 2.10.10 +- AWS CLI 2.7.11 +- AWS SAM CLI 1.52.0 +- AWS Session Manager CLI 1.2.339.0 - Azure CLI (azure-devops) 0.25.0 -- Azure CLI 2.35.0 -- Bicep CLI 0.5.6 +- Azure CLI 2.37.0 +- Bicep CLI 0.7.4 - Cabal 3.6.2.0 -- Cmake 3.23.0 -- Fastlane 2.205.1 -- GHC 9.2.2 -- GHCup v0.1.17.6 +- Cmake 3.23.2 +- Fastlane 2.206.2 +- GHC 9.2.3 +- GHCup 0.1.17.8 - Jazzy 0.14.2 - Stack 2.7.5 -- SwiftFormat 0.49.7 +- SwiftFormat 0.49.11 - Swig 4.0.2 - Xcode Command Line Tools 13.2.0.0.1.1638488800 ### Linters -- SwiftLint 0.47.0 +- SwiftLint 0.47.1 - yamllint 1.26.3 ### Browsers -- Safari 15.4 (16613.1.17.1.13) -- SafariDriver 15.4 (16613.1.17.1.13) -- Google Chrome 100.0.4896.75 -- ChromeDriver 100.0.4896.60 -- Microsoft Edge 100.0.1185.36 -- MSEdgeDriver 100.0.1185.36 -- Mozilla Firefox 99.0 -- geckodriver 0.30.0 -- Selenium server 4.1.3 +- Safari 15.5 (16613.2.7.1.9) +- SafariDriver 15.5 (16613.2.7.1.9) +- Google Chrome 103.0.5060.53 +- ChromeDriver 103.0.5060.53 +- Microsoft Edge 103.0.1264.37 +- Microsoft Edge WebDriver 103.0.1264.37 +- Mozilla Firefox 101.0.1 +- geckodriver 0.31.0 +- Selenium server 4.3.0 #### Environment variables | Name | Value | | --------------- | ---------------------------------------------- | -| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/100.0.4896.60 | +| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/103.0.5060.53 | | EDGEWEBDRIVER | /usr/local/share/edge_driver | | GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin | ### Java | Version | Vendor | Environment Variable | | ------------------- | --------------- | -------------------- | -| 8.0.322+6 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | -| 11.0.14+101 | Eclipse Temurin | JAVA_HOME_11_X64 | -| 17.0.2+8 | Eclipse Temurin | JAVA_HOME_17_X64 | +| 8.0.332+9 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | +| 11.0.15+10 | Eclipse Temurin | JAVA_HOME_11_X64 | +| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 | ### GraalVM -| Version | Environment variables | -| ----------- | --------------------- | -| CE 22.0.0.2 | GRAALVM_11_ROOT | +| Version | Environment variables | +| --------- | --------------------- | +| CE 22.1.0 | GRAALVM_11_ROOT | ### Cached Tools #### Ruby - 2.4.10 - 2.5.9 -- 2.6.9 -- 2.7.5 -- 3.0.3 +- 2.6.10 +- 2.7.6 +- 3.0.4 +- 3.1.2 #### Python -- 3.7.12 -- 3.8.12 -- 3.9.12 -- 3.10.4 +- 3.7.13 +- 3.8.13 +- 3.9.13 +- 3.10.5 #### PyPy - 2.7.18 [PyPy 7.3.9] @@ -167,54 +165,66 @@ #### Node.js - 12.22.12 -- 14.19.1 -- 16.14.2 +- 14.19.3 +- 16.15.1 #### Go | Version | Architecture | Environment Variable | | ------- | ------------ | -------------------- | | 1.16.15 | x64 | GOROOT_1_16_X64 | -| 1.17.8 (Default) | x64 | GOROOT_1_17_X64 | -| 1.18.0 | x64 | GOROOT_1_18_X64 | +| 1.17.11 (Default) | x64 | GOROOT_1_17_X64 | +| 1.18.3 | x64 | GOROOT_1_18_X64 | ### Rust Tools -- Cargo 1.60.0 -- Rust 1.60.0 -- Rustdoc 1.60.0 +- Cargo 1.61.0 +- Rust 1.61.0 +- Rustdoc 1.61.0 - Rustup 1.24.3 #### Packages -- Bindgen 0.59.2 -- Cargo-audit 0.16.0 -- Cargo-outdated 0.11.0 -- Cbindgen 0.21.0 -- Clippy 0.1.60 +- Bindgen 0.60.1 +- Cargo-audit 0.17.0 +- Cargo-outdated 0.11.1 +- Cbindgen 0.24.3 +- Clippy 0.1.61 - Rustfmt 1.4.38-stable ### PowerShell Tools -- PowerShell 7.2.2 +- PowerShell 7.2.5 #### PowerShell Modules | Module | Version | | ---------------- | ------- | -| Az | 7.1.0 | +| Az | 8.0.0 | | MarkdownPS | 1.9 | -| Pester | 5.3.1 | +| Pester | 5.3.3 | | PSScriptAnalyzer | 1.20.0 | ### Web Servers -| Name | Version | ConfigFile | ServiceStatus | ListenPort | -| ----- | -------- | ------------------------------- | ------------- | ---------- | -| httpd | 2.4.53 | /usr/local/etc/httpd/httpd.conf | none | 80 | -| nginx | 1.21.6_1 | /usr/local/etc/nginx/nginx.conf | none | 80 | +| Name | Version | ConfigFile | ServiceStatus | ListenPort | +| ----- | ------- | ------------------------------- | ------------- | ---------- | +| httpd | 2.4.54 | /usr/local/etc/httpd/httpd.conf | none | 80 | +| nginx | 1.23.0 | /usr/local/etc/nginx/nginx.conf | none | 80 | ### Xamarin #### Visual Studio for Mac -- 8.10.21.4 +| Version | Build | Path | +| -------------- | --------- | ------------------------------------ | +| 2019 | 8.10.25.2 | /Applications/Visual Studio 2019.app | +| 2022 (default) | 17.0.4.23 | /Applications/Visual Studio.app | + +##### Notes: +``` +To use Visual Studio 2019 by default rename the app: +mv "/Applications/Visual Studio.app" "/Applications/Visual Studio 2022.app" +mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app" +``` #### Xamarin bundles | symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android | | ----------------- | ------------ | ----------- | ----------- | --------------- | +| 6_12_16 | 6.12 | 15.8 | 8.8 | 12.2 | +| 6_12_15 | 6.12 | 15.8 | 8.8 | 12.1 | | 6_12_14 | 6.12 | 15.8 | 8.8 | 12.0 | | 6_12_13 | 6.12 | 15.6 | 8.6 | 12.0 | | 6_12_12 (default) | 6.12 | 15.4 | 8.4 | 12.0 | @@ -238,7 +248,6 @@ | Version | Build | Path | | ---------------- | -------- | ------------------------------ | | 13.2.1 (default) | 13C100 | /Applications/Xcode_13.2.1.app | -| 13.2 | 13C90 | /Applications/Xcode_13.2.app | | 13.1 | 13A1030d | /Applications/Xcode_13.1.app | | 13.0 | 13A233 | /Applications/Xcode_13.0.app | | 12.5.1 | 12E507 | /Applications/Xcode_12.5.1.app | @@ -258,91 +267,91 @@ | macOS 11.1 | macosx11.1 | 12.4 | | macOS 11.3 | macosx11.3 | 12.5.1, 13.0 | | macOS 12.0 | macosx12.0 | 13.1 | -| macOS 12.1 | macosx12.1 | 13.2, 13.2.1 | +| macOS 12.1 | macosx12.1 | 13.2.1 | | iOS 13.7 | iphoneos13.7 | 11.7 | | iOS 14.4 | iphoneos14.4 | 12.4 | | iOS 14.5 | iphoneos14.5 | 12.5.1 | | iOS 15.0 | iphoneos15.0 | 13.0, 13.1 | -| iOS 15.2 | iphoneos15.2 | 13.2, 13.2.1 | +| iOS 15.2 | iphoneos15.2 | 13.2.1 | | Simulator - iOS 13.7 | iphonesimulator13.7 | 11.7 | | Simulator - iOS 14.4 | iphonesimulator14.4 | 12.4 | | Simulator - iOS 14.5 | iphonesimulator14.5 | 12.5.1 | | Simulator - iOS 15.0 | iphonesimulator15.0 | 13.0, 13.1 | -| Simulator - iOS 15.2 | iphonesimulator15.2 | 13.2, 13.2.1 | +| Simulator - iOS 15.2 | iphonesimulator15.2 | 13.2.1 | | tvOS 13.4 | appletvos13.4 | 11.7 | | tvOS 14.3 | appletvos14.3 | 12.4 | | tvOS 14.5 | appletvos14.5 | 12.5.1 | | tvOS 15.0 | appletvos15.0 | 13.0, 13.1 | -| tvOS 15.2 | appletvos15.2 | 13.2, 13.2.1 | +| tvOS 15.2 | appletvos15.2 | 13.2.1 | | Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.7 | | Simulator - tvOS 14.3 | appletvsimulator14.3 | 12.4 | | Simulator - tvOS 14.5 | appletvsimulator14.5 | 12.5.1 | | Simulator - tvOS 15.0 | appletvsimulator15.0 | 13.0, 13.1 | -| Simulator - tvOS 15.2 | appletvsimulator15.2 | 13.2, 13.2.1 | +| Simulator - tvOS 15.2 | appletvsimulator15.2 | 13.2.1 | | watchOS 6.2 | watchos6.2 | 11.7 | | watchOS 7.2 | watchos7.2 | 12.4 | | watchOS 7.4 | watchos7.4 | 12.5.1 | | watchOS 8.0 | watchos8.0 | 13.0, 13.1 | -| watchOS 8.3 | watchos8.3 | 13.2, 13.2.1 | +| watchOS 8.3 | watchos8.3 | 13.2.1 | | Simulator - watchOS 6.2 | watchsimulator6.2 | 11.7 | | Simulator - watchOS 7.2 | watchsimulator7.2 | 12.4 | | Simulator - watchOS 7.4 | watchsimulator7.4 | 12.5.1 | | Simulator - watchOS 8.0 | watchsimulator8.0 | 13.0, 13.1 | -| Simulator - watchOS 8.3 | watchsimulator8.3 | 13.2, 13.2.1 | +| Simulator - watchOS 8.3 | watchsimulator8.3 | 13.2.1 | | DriverKit 19.0 | driverkit.macosx19.0 | 11.7 | | DriverKit 20.2 | driverkit.macosx20.2 | 12.4 | | DriverKit 20.4 | driverkit.macosx20.4 | 12.5.1, 13.0 | | DriverKit 21.0.1 | driverkit21.0.1 | 13.1 | -| DriverKit 21.2 | driverkit21.2 | 13.2, 13.2.1 | +| DriverKit 21.2 | driverkit21.2 | 13.2.1 | #### Installed Simulators -| OS | Xcode Version | Simulators | -| ----------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| iOS 13.7 | 11.7 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) | -| iOS 14.4 | 12.4 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) | -| iOS 14.5 | 12.5.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | -| iOS 15.0 | 13.0
13.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad (9th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad mini (6th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | -| iOS 15.2 | 13.2
13.2.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad (9th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad mini (6th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | -| tvOS 13.4 | 11.7 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | -| tvOS 14.3 | 12.4 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | -| tvOS 14.5 | 12.5.1 | Apple TV
Apple TV 4K
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p)
Apple TV 4K (at 1080p) (2nd generation) | -| tvOS 15.0 | 13.0
13.1 | Apple TV
Apple TV 4K
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p)
Apple TV 4K (at 1080p) (2nd generation) | -| tvOS 15.2 | 13.2
13.2.1 | Apple TV
Apple TV 4K
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p)
Apple TV 4K (at 1080p) (2nd generation) | -| watchOS 6.2 | 11.7 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | -| watchOS 7.2 | 12.4 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm | -| watchOS 7.4 | 12.5.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm | -| watchOS 8.0 | 13.0
13.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm
Apple Watch Series 7 - 41mm
Apple Watch Series 7 - 45mm | -| watchOS 8.3 | 13.2
13.2.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm
Apple Watch Series 7 - 41mm
Apple Watch Series 7 - 45mm | +| OS | Xcode Version | Simulators | +| ----------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| iOS 13.7 | 11.7 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) | +| iOS 14.4 | 12.4 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) | +| iOS 14.5 | 12.5.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | +| iOS 15.0 | 13.0
13.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad (9th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad mini (6th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | +| iOS 15.2 | 13.2.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad (9th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad mini (6th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | +| tvOS 13.4 | 11.7 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | +| tvOS 14.3 | 12.4 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | +| tvOS 14.5 | 12.5.1 | Apple TV
Apple TV 4K
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p)
Apple TV 4K (at 1080p) (2nd generation) | +| tvOS 15.0 | 13.0
13.1 | Apple TV
Apple TV 4K
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p)
Apple TV 4K (at 1080p) (2nd generation) | +| tvOS 15.2 | 13.2.1 | Apple TV
Apple TV 4K
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p)
Apple TV 4K (at 1080p) (2nd generation) | +| watchOS 6.2 | 11.7 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | +| watchOS 7.2 | 12.4 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm | +| watchOS 7.4 | 12.5.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm | +| watchOS 8.0 | 13.0
13.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm
Apple Watch Series 7 - 41mm
Apple Watch Series 7 - 45mm | +| watchOS 8.3 | 13.2.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm
Apple Watch Series 7 - 41mm
Apple Watch Series 7 - 45mm | ### Android -| Package Name | Version | -| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Android Command Line Tools | 4.0 | -| Android Emulator | 31.2.9 | -| Android SDK Build-tools | 32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 | -| Android SDK Platforms | android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) | -| Android SDK Platform-Tools | 33.0.1 | -| Android Support Repository | 47.0.0 | -| CMake | 3.10.2
3.18.1 | -| Google Play services | 49 | -| Google Repository | 58 | -| NDK | 21.4.7075529 (default)
22.1.7171670
23.1.7779620 | -| SDK Patch Applier v4 | 1 | +| Package Name | Version | +| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Android Command Line Tools | 7.0 | +| Android Emulator | 31.2.10 | +| Android SDK Build-tools | 33.0.0
32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 | +| Android SDK Platforms | android-33 (rev 1)
android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) | +| Android SDK Platform-Tools | 33.0.2 | +| Android Support Repository | 47.0.0 | +| CMake | 3.10.2
3.18.1 | +| Google Play services | 49 | +| Google Repository | 58 | +| NDK | 21.4.7075529
23.2.8568313 (default)
24.0.8215888 | +| SDK Patch Applier v4 | 1 | #### Environment variables | Name | Value | | ----------------------- | -------------------------------------------------------------------------------------------------- | | ANDROID_HOME | /Users/runner/Library/Android/sdk | -| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 | -| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/23.1.7779620 | -| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 | +| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/23.2.8568313 | +| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/24.0.8215888 | +| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/23.2.8568313 | | ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk | ### Miscellaneous - libXext 1.3.4 - libXft 2.3.4 - Tcl/Tk 8.6.12 -- Zlib 1.2.11 +- Zlib 1.2.12 diff --git a/images/macos/macos-12-Readme.md b/images/macos/macos-12-Readme.md index 64f3dac1f..78be57d71 100644 --- a/images/macos/macos-12-Readme.md +++ b/images/macos/macos-12-Readme.md @@ -1,130 +1,147 @@ -# macOS 12.3 info -- System Version: macOS 12.3.1 (21E258) -- Kernel Version: Darwin 21.4.0 -- Image Version: 20220419.1 +| Announcements | +|-| +| [[all OSs] Android ndk-bundle along with old NDK versions will be deprecated on July, 24](https://github.com/actions/virtual-environments/issues/5879) | +| [[macOS] Default Xcode on Monterey image will be set to Xcode 13.4.1 on July, 11](https://github.com/actions/virtual-environments/issues/5836) | +| [[Windows, macOS] LLVM will be updated to version 14 on July, 11](https://github.com/actions/virtual-environments/issues/5835) | +*** +# macOS 12.4 info +- System Version: macOS 12.4 (21F79) +- Kernel Version: Darwin 21.5.0 +- Image Version: 20220710.1 ## Installed Software ### Language and Runtime -- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.418 5.0.102 5.0.202 5.0.302 5.0.407 +- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.420 5.0.102 5.0.202 5.0.302 5.0.408 - Bash 3.2.57(1)-release -- Clang/LLVM 13.0.1 is available on `'$(brew --prefix llvm)/bin/clang'` - Clang/LLVM 13.1.6 is default -- gcc-11 (Homebrew GCC 11.2.0_3) 11.2.0 - available by `gcc-11` alias -- GNU Fortran (Homebrew GCC 11.2.0_3) 11.2.0 - available by `gfortran-11` alias -- Go 1.17.9 -- julia 1.7.2 -- Kotlin 1.6.20-release-275 -- MSBuild 16.10.1.17201 (from /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll) -- Node.js v16.14.2 +- Clang/LLVM 14.0.6 is available on `'$(brew --prefix llvm@14)/bin/clang'` +- gcc-11 (Homebrew GCC 11.3.0_2) 11.3.0 - available by `gcc-11` alias +- GNU Fortran (Homebrew GCC 11.3.0_2) 11.3.0 - available by `gfortran-11` alias +- Go 1.17.11 +- julia 1.7.3 +- Kotlin 1.7.10-release-333 +- MSBuild 16.10.1.31401 (from /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll) +- Node.js v16.16.0 - NVM 0.39.1 -- NVM - Cached node versions: v12.22.12 v14.19.1 v16.14.2 +- NVM - Cached node versions: v12.22.12 v14.20.0 v16.16.0 - Perl 5.34.0 -- PHP 8.1.5 +- PHP 8.1.8 - Python 2.7.18 -- Python 3.9.12 -- R 4.1.3 +- Python 3.9.13 +- R 4.2.1 - Ruby 3.0.4p208 ### Package Management -- Bundler version 2.3.11 +- Bundler version 2.3.17 - Carthage 0.38.0 - CocoaPods 1.11.3 -- Composer 2.3.5 -- Homebrew 3.4.7 -- NPM 8.5.0 -- NuGet 5.9.0.7134 +- Composer 2.3.9 +- Homebrew 3.5.4 +- Miniconda 4.12.0 +- NPM 8.11.0 +- NuGet 6.2.1.2 - Pip 20.3.4 (python 2.7) -- Pip 22.0.4 (python 3.9) -- Pipx 1.0.0 +- Pip 22.1.1 (python 3.9) +- Pipx 1.1.0 - RubyGems 3.2.33 -- Vcpkg 2022 (build from master \) -- Yarn 1.22.18 +- Vcpkg 2022 (build from master \<98f8d00e8>) +- Yarn 1.22.19 + +#### Environment variables +| Name | Value | +| ----------------------- | ---------------------- | +| CONDA | /usr/local/miniconda | +| VCPKG_INSTALLATION_ROOT | /usr/local/share/vcpkg | ### Project Management - Apache Ant(TM) 1.10.12 -- Apache Maven 3.8.5 +- Apache Maven 3.8.6 - Gradle 7.4.2 - Sbt 1.6.2 ### Utilities - 7-Zip 17.04 - aria2 1.36.0 -- azcopy 10.14.1 -- bazel 5.1.1 -- bazelisk 1.11.0 +- azcopy 10.15.0 +- bazel 5.2.0 +- bazelisk 1.12.0 - bsdtar 3.5.1 - available by 'tar' alias -- Curl 7.82.0 -- Git 2.35.1 -- Git LFS: 3.1.2 -- GitHub CLI: 2.8.0 +- Curl 7.84.0 +- Git 2.37.0 +- Git LFS: 3.2.0 +- GitHub CLI: 2.13.0 - GNU Tar 1.34 - available by 'gtar' alias - GNU Wget 1.21.3 -- gpg (GnuPG) 2.3.4 +- gpg (GnuPG) 2.3.6 - Hub CLI: 2.14.2 +- ImageMagick 7.1.0-43 - jq 1.6 - mongo v5.0.7 - mongod v5.0.7 -- OpenSSL 1.1.1n 15 Mar 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1n)` -- Packer 1.8.0 -- PostgreSQL 14.2 -- psql (PostgreSQL) 14.2 +- OpenSSL 1.1.1q 5 Jul 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1q)` +- Packer 1.8.2 +- PostgreSQL 14.4 +- psql (PostgreSQL) 14.4 - Sox 14.4.2 - Subversion (SVN) 1.14.2 - Switchaudio-osx 1.1.0 -- yq (https://github.com/mikefarah/yq/) version 4.24.5 +- Vagrant 2.2.19 +- VirtualBox 6.1.34r150636 +- yq (https://github.com/mikefarah/yq/) version 4.25.3 - zstd 1.5.2 ### Tools -- App Center CLI command -- AWS CLI 2.5.6 -- AWS SAM CLI 1.46.0 -- AWS Session Manager CLI 1.2.312.0 +- App Center CLI 2.10.10 +- AWS CLI 2.7.14 +- AWS SAM CLI 1.53.0 +- AWS Session Manager CLI 1.2.339.0 - Azure CLI (azure-devops) 0.25.0 -- Azure CLI 2.35.0 -- Bicep CLI 0.5.6 +- Azure CLI 2.38.0 +- Bicep CLI 0.8.9 - Cabal 3.6.2.0 -- Cmake 3.23.1 -- Fastlane 2.205.1 -- GHC 9.2.2 -- GHCup v0.1.17.6 +- Cmake 3.23.2 +- Fastlane 2.207.0 +- GHC 9.2.3 +- GHCup 0.1.17.8 - Jazzy 0.14.2 - Stack 2.7.5 +- SwiftFormat 0.49.11 - Swig 4.0.2 -- Xcode Command Line Tools 13.3.1.0.1.1648687083 +- Xcode Command Line Tools 13.4.0.0.1.1651278267 ### Linters -- SwiftLint 0.47.0 -- yamllint 1.26.3 +- SwiftLint 0.47.1 +- yamllint 1.27.1 ### Browsers -- Safari 15.4 (17613.1.17.1.13) -- SafariDriver 15.4 (17613.1.17.1.13) -- Google Chrome 100.0.4896.127 -- ChromeDriver 100.0.4896.60 -- Microsoft Edge 100.0.1185.44 -- MSEdgeDriver 100.0.1185.44 -- Mozilla Firefox 99.0.1 +- Safari 15.5 (17613.2.7.1.8) +- SafariDriver 15.5 (17613.2.7.1.8) +- Google Chrome 103.0.5060.114 +- ChromeDriver 103.0.5060.53 +- Microsoft Edge 103.0.1264.51 +- Microsoft Edge WebDriver 103.0.1264.51 +- Mozilla Firefox 102.0.1 - geckodriver 0.31.0 -- Selenium server 4.1.3 +- Selenium server 4.3.0 #### Environment variables | Name | Value | | --------------- | ---------------------------------------------- | -| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/100.0.4896.60 | +| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/103.0.5060.53 | | EDGEWEBDRIVER | /usr/local/share/edge_driver | | GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin | ### Java | Version | Vendor | Environment Variable | | ------------------- | --------------- | -------------------- | -| 8.0.322+6 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | -| 11.0.14+101 | Eclipse Temurin | JAVA_HOME_11_X64 | -| 17.0.2+8 | Eclipse Temurin | JAVA_HOME_17_X64 | +| 8.0.332+9 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | +| 11.0.15+10 | Eclipse Temurin | JAVA_HOME_11_X64 | +| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 | ### GraalVM -| Version | Environment variables | -| ----------- | --------------------- | -| CE 22.0.0.2 | GRAALVM_11_ROOT | +| Version | Environment variables | +| --------- | --------------------- | +| CE 22.1.0 | GRAALVM_11_ROOT | ### Cached Tools #### Ruby @@ -133,10 +150,10 @@ - 3.1.2 #### Python -- 3.7.12 -- 3.8.12 -- 3.9.12 -- 3.10.4 +- 3.7.13 +- 3.8.13 +- 3.9.13 +- 3.10.5 #### PyPy - 2.7.18 [PyPy 7.3.9] @@ -146,55 +163,67 @@ #### Node.js - 12.22.12 -- 14.19.1 -- 16.14.2 +- 14.20.0 +- 16.16.0 #### Go | Version | Architecture | Environment Variable | | ------- | ------------ | -------------------- | | 1.16.15 | x64 | GOROOT_1_16_X64 | -| 1.17.9 (Default) | x64 | GOROOT_1_17_X64 | -| 1.18.1 | x64 | GOROOT_1_18_X64 | +| 1.17.11 (Default) | x64 | GOROOT_1_17_X64 | +| 1.18.3 | x64 | GOROOT_1_18_X64 | ### Rust Tools -- Cargo 1.60.0 -- Rust 1.60.0 -- Rustdoc 1.60.0 +- Cargo 1.62.0 +- Rust 1.62.0 +- Rustdoc 1.62.0 - Rustup 1.24.3 #### Packages -- Bindgen 0.59.2 -- Cargo-audit 0.16.0 +- Bindgen 0.60.1 +- Cargo-audit 0.17.0 - Cargo-outdated 0.11.1 -- Cbindgen 0.22.0 -- Clippy 0.1.60 +- Cbindgen 0.24.3 +- Clippy 0.1.62 - Rustfmt 1.4.38-stable ### PowerShell Tools -- PowerShell 7.2.2 +- PowerShell 7.2.5 #### PowerShell Modules | Module | Version | | ---------------- | ------- | -| Az | 7.4.0 | +| Az | 8.1.0 | | MarkdownPS | 1.9 | -| Pester | 5.3.1 | +| Pester | 5.3.3 | | PSScriptAnalyzer | 1.20.0 | ### Web Servers -| Name | Version | ConfigFile | ServiceStatus | ListenPort | -| ----- | -------- | ------------------------------- | ------------- | ---------- | -| httpd | 2.4.53_1 | /usr/local/etc/httpd/httpd.conf | none | 80 | -| nginx | 1.21.6_1 | /usr/local/etc/nginx/nginx.conf | none | 80 | +| Name | Version | ConfigFile | ServiceStatus | ListenPort | +| ----- | ------- | ------------------------------- | ------------- | ---------- | +| httpd | 2.4.54 | /usr/local/etc/httpd/httpd.conf | none | 80 | +| nginx | 1.23.0 | /usr/local/etc/nginx/nginx.conf | none | 80 | ### Xamarin #### Visual Studio for Mac -- 8.10.22.11 +| Version | Build | Path | +| -------------- | --------- | ------------------------------------ | +| 2019 | 8.10.25.2 | /Applications/Visual Studio 2019.app | +| 2022 (default) | 17.0.5.6 | /Applications/Visual Studio.app | + +##### Notes: +``` +To use Visual Studio 2019 by default rename the app: +mv "/Applications/Visual Studio.app" "/Applications/Visual Studio 2022.app" +mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app" +``` #### Xamarin bundles | symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android | | ----------------- | ------------ | ----------- | ----------- | --------------- | -| 6_12_15 (default) | 6.12 | 15.8 | 8.8 | 12.2 | +| 6_12_17 (default) | 6.12 | 15.10 | 8.10 | 12.2 | +| 6_12_16 | 6.12 | 15.8 | 8.8 | 12.2 | +| 6_12_15 | 6.12 | 15.8 | 8.8 | 12.1 | | 6_12_14 | 6.12 | 15.8 | 8.8 | 12.0 | | 6_12_13 | 6.12 | 15.6 | 8.6 | 12.0 | | 6_12_12 | 6.12 | 15.4 | 8.4 | 12.0 | @@ -205,88 +234,91 @@ - NUnit 3.6.1 ### Xcode -| Version | Build | Path | -| -------------- | -------- | ------------------------------ | -| 13.3.1 | 13E500a | /Applications/Xcode_13.3.1.app | -| 13.3 (default) | 13E113 | /Applications/Xcode_13.3.app | -| 13.2.1 | 13C100 | /Applications/Xcode_13.2.1.app | -| 13.2 | 13C90 | /Applications/Xcode_13.2.app | -| 13.1 | 13A1030d | /Applications/Xcode_13.1.app | +| Version | Build | Path | +| ---------------- | -------- | ------------------------------ | +| 13.4.1 (default) | 13F100 | /Applications/Xcode_13.4.1.app | +| 13.4 | 13F17a | /Applications/Xcode_13.4.app | +| 13.3.1 | 13E500a | /Applications/Xcode_13.3.1.app | +| 13.2.1 | 13C100 | /Applications/Xcode_13.2.1.app | +| 13.1 | 13A1030d | /Applications/Xcode_13.1.app | #### Xcode Support Tools - xcpretty 0.3.0 - xcversion 2.8.0 #### Installed SDKs -| SDK | SDK Name | Xcode Version | -| ----------------------- | -------------------- | ------------- | -| macOS 12.0 | macosx12.0 | 13.1 | -| macOS 12.1 | macosx12.1 | 13.2, 13.2.1 | -| macOS 12.3 | macosx12.3 | 13.3, 13.3.1 | -| iOS 15.0 | iphoneos15.0 | 13.1 | -| iOS 15.2 | iphoneos15.2 | 13.2, 13.2.1 | -| iOS 15.4 | iphoneos15.4 | 13.3, 13.3.1 | -| Simulator - iOS 15.0 | iphonesimulator15.0 | 13.1 | -| Simulator - iOS 15.2 | iphonesimulator15.2 | 13.2, 13.2.1 | -| Simulator - iOS 15.4 | iphonesimulator15.4 | 13.3, 13.3.1 | -| tvOS 15.0 | appletvos15.0 | 13.1 | -| tvOS 15.2 | appletvos15.2 | 13.2, 13.2.1 | -| tvOS 15.4 | appletvos15.4 | 13.3, 13.3.1 | -| Simulator - tvOS 15.0 | appletvsimulator15.0 | 13.1 | -| Simulator - tvOS 15.2 | appletvsimulator15.2 | 13.2, 13.2.1 | -| Simulator - tvOS 15.4 | appletvsimulator15.4 | 13.3, 13.3.1 | -| watchOS 8.0 | watchos8.0 | 13.1 | -| watchOS 8.3 | watchos8.3 | 13.2, 13.2.1 | -| watchOS 8.5 | watchos8.5 | 13.3, 13.3.1 | -| Simulator - watchOS 8.0 | watchsimulator8.0 | 13.1 | -| Simulator - watchOS 8.3 | watchsimulator8.3 | 13.2, 13.2.1 | -| Simulator - watchOS 8.5 | watchsimulator8.5 | 13.3, 13.3.1 | -| DriverKit 21.0.1 | driverkit21.0.1 | 13.1 | -| DriverKit 21.2 | driverkit21.2 | 13.2, 13.2.1 | -| DriverKit 21.4 | driverkit21.4 | 13.3, 13.3.1 | +| SDK | SDK Name | Xcode Version | +| ----------------------- | -------------------- | -------------------- | +| macOS 12.0 | macosx12.0 | 13.1 | +| macOS 12.1 | macosx12.1 | 13.2.1 | +| macOS 12.3 | macosx12.3 | 13.3.1, 13.4, 13.4.1 | +| iOS 15.0 | iphoneos15.0 | 13.1 | +| iOS 15.2 | iphoneos15.2 | 13.2.1 | +| iOS 15.4 | iphoneos15.4 | 13.3.1 | +| iOS 15.5 | iphoneos15.5 | 13.4, 13.4.1 | +| Simulator - iOS 15.0 | iphonesimulator15.0 | 13.1 | +| Simulator - iOS 15.2 | iphonesimulator15.2 | 13.2.1 | +| Simulator - iOS 15.4 | iphonesimulator15.4 | 13.3.1 | +| Simulator - iOS 15.5 | iphonesimulator15.5 | 13.4, 13.4.1 | +| tvOS 15.0 | appletvos15.0 | 13.1 | +| tvOS 15.2 | appletvos15.2 | 13.2.1 | +| tvOS 15.4 | appletvos15.4 | 13.3.1, 13.4, 13.4.1 | +| Simulator - tvOS 15.0 | appletvsimulator15.0 | 13.1 | +| Simulator - tvOS 15.2 | appletvsimulator15.2 | 13.2.1 | +| Simulator - tvOS 15.4 | appletvsimulator15.4 | 13.3.1, 13.4, 13.4.1 | +| watchOS 8.0 | watchos8.0 | 13.1 | +| watchOS 8.3 | watchos8.3 | 13.2.1 | +| watchOS 8.5 | watchos8.5 | 13.3.1, 13.4, 13.4.1 | +| Simulator - watchOS 8.0 | watchsimulator8.0 | 13.1 | +| Simulator - watchOS 8.3 | watchsimulator8.3 | 13.2.1 | +| Simulator - watchOS 8.5 | watchsimulator8.5 | 13.3.1, 13.4, 13.4.1 | +| DriverKit 21.0.1 | driverkit21.0.1 | 13.1 | +| DriverKit 21.2 | driverkit21.2 | 13.2.1 | +| DriverKit 21.4 | driverkit21.4 | 13.3.1, 13.4, 13.4.1 | #### Installed Simulators -| OS | Xcode Version | Simulators | -| ----------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| iOS 15.0 | 13.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (9th generation)
iPad Air (4th generation)
iPad mini (6th generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | -| iOS 15.2 | 13.2
13.2.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (9th generation)
iPad Air (4th generation)
iPad mini (6th generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | -| iOS 15.4 | 13.3
13.3.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPhone SE (3rd generation)
iPad (9th generation)
iPad Air (4th generation)
iPad Air (5th generation)
iPad mini (6th generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | -| tvOS 15.0 | 13.1 | Apple TV
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p) (2nd generation) | -| tvOS 15.2 | 13.2
13.2.1 | Apple TV
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p) (2nd generation) | -| tvOS 15.4 | 13.3
13.3.1 | Apple TV
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p) (2nd generation) | -| watchOS 8.0 | 13.1 | Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm
Apple Watch Series 7 - 41mm
Apple Watch Series 7 - 45mm | -| watchOS 8.3 | 13.2
13.2.1 | Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm
Apple Watch Series 7 - 41mm
Apple Watch Series 7 - 45mm | -| watchOS 8.5 | 13.3
13.3.1 | Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm
Apple Watch Series 7 - 41mm
Apple Watch Series 7 - 45mm | +| OS | Xcode Version | Simulators | +| ----------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| iOS 15.0 | 13.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (9th generation)
iPad Air (4th generation)
iPad mini (6th generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | +| iOS 15.2 | 13.2.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (9th generation)
iPad Air (4th generation)
iPad mini (6th generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | +| iOS 15.4 | 13.3.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPhone SE (3rd generation)
iPad (9th generation)
iPad Air (4th generation)
iPad Air (5th generation)
iPad mini (6th generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | +| iOS 15.5 | 13.4
13.4.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 13
iPhone 13 mini
iPhone 13 Pro
iPhone 13 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPhone SE (3rd generation)
iPad (9th generation)
iPad Air (4th generation)
iPad Air (5th generation)
iPad mini (6th generation)
iPad Pro (11-inch) (3rd generation)
iPad Pro (12.9-inch) (5th generation)
iPad Pro (9.7-inch) | +| tvOS 15.0 | 13.1 | Apple TV
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p) (2nd generation) | +| tvOS 15.2 | 13.2.1 | Apple TV
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p) (2nd generation) | +| tvOS 15.4 | 13.3.1
13.4
13.4.1 | Apple TV
Apple TV 4K (2nd generation)
Apple TV 4K (at 1080p) (2nd generation) | +| watchOS 8.0 | 13.1 | Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm
Apple Watch Series 7 - 41mm
Apple Watch Series 7 - 45mm | +| watchOS 8.3 | 13.2.1 | Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm
Apple Watch Series 7 - 41mm
Apple Watch Series 7 - 45mm | +| watchOS 8.5 | 13.3.1
13.4
13.4.1 | Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm
Apple Watch Series 7 - 41mm
Apple Watch Series 7 - 45mm | ### Android -| Package Name | Version | -| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Android Command Line Tools | 4.0 | -| Android Emulator | 31.2.9 | -| Android SDK Build-tools | 32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 | -| Android SDK Platforms | android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) | -| Android SDK Platform-Tools | 33.0.1 | -| Android Support Repository | 47.0.0 | -| CMake | 3.18.1 | -| Google Play services | 49 | -| Google Repository | 58 | -| NDK | 21.4.7075529 (default)
22.1.7171670
23.1.7779620 | -| SDK Patch Applier v4 | 1 | +| Package Name | Version | +| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Android Command Line Tools | 7.0 | +| Android Emulator | 31.2.10 | +| Android SDK Build-tools | 33.0.0
32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 | +| Android SDK Platforms | android-33 (rev 1)
android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) | +| Android SDK Platform-Tools | 33.0.2 | +| Android Support Repository | 47.0.0 | +| CMake | 3.18.1 | +| Google Play services | 49 | +| Google Repository | 58 | +| NDK | 21.4.7075529
23.2.8568313 (default)
24.0.8215888 | +| SDK Patch Applier v4 | 1 | #### Environment variables | Name | Value | | ----------------------- | -------------------------------------------------------------------------------------------------- | | ANDROID_HOME | /Users/runner/Library/Android/sdk | -| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 | -| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/23.1.7779620 | -| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 | +| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/23.2.8568313 | +| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/24.0.8215888 | +| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/23.2.8568313 | | ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk | ### Miscellaneous - libXext 1.3.4 - libXft 2.3.4 - Tcl/Tk 8.6.12 -- Zlib 1.2.11 +- Zlib 1.2.12 diff --git a/images/macos/provision/configuration/configure-machine.sh b/images/macos/provision/configuration/configure-machine.sh index ab8b2d8d9..3eadcc523 100644 --- a/images/macos/provision/configuration/configure-machine.sh +++ b/images/macos/provision/configuration/configure-machine.sh @@ -87,6 +87,7 @@ EOF sleep 10 done + echo "Getting terminal windows" term_service=$(launchctl list | grep -i terminal | cut -f3) echo "Close terminal windows: gui/501/${term_service}" launchctl bootout gui/501/${term_service} && sleep 5 diff --git a/images/macos/provision/configuration/configure-ssh.sh b/images/macos/provision/configuration/configure-ssh.sh index 73095f551..0e448d85f 100755 --- a/images/macos/provision/configuration/configure-ssh.sh +++ b/images/macos/provision/configuration/configure-ssh.sh @@ -3,5 +3,5 @@ [[ ! -d ~/.ssh ]] && mkdir ~/.ssh 2>/dev/null chmod 777 ~/.ssh -ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts +ssh-keyscan -t rsa,ecdsa,ed25519 github.com >> ~/.ssh/known_hosts ssh-keyscan -t rsa ssh.dev.azure.com >> ~/.ssh/known_hosts diff --git a/images/macos/provision/configuration/configure-tccdb-macos11.sh b/images/macos/provision/configuration/configure-tccdb-macos.sh similarity index 92% rename from images/macos/provision/configuration/configure-tccdb-macos11.sh rename to images/macos/provision/configuration/configure-tccdb-macos.sh index 35525bd80..fe2151e7b 100644 --- a/images/macos/provision/configuration/configure-tccdb-macos11.sh +++ b/images/macos/provision/configuration/configure-tccdb-macos.sh @@ -44,6 +44,7 @@ userValuesArray=( "'kTCCServiceUbiquity','com.apple.PassKitCore',0,2,5,1,NULL,NULL,NULL,'UNUSED',NULL,0,1619516250" "'kTCCServiceAppleEvents','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,3,1,X'fade0c00000000ac0000000100000006000000020000001e636f6d2e7665657274752e616e6b612e6164646f6e732e616e6b6172756e0000000000060000000f000000060000000e000000010000000a2a864886f76364060206000000000000000000060000000e000000000000000a2a864886f7636406010d0000000000000000000b000000000000000a7375626a6563742e4f550000000000010000000a545439464157503656340000',NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1629294900" "'kTCCServiceAppleEvents','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,3,1,X'fade0c00000000ac0000000100000006000000020000001e636f6d2e7665657274752e616e6b612e6164646f6e732e616e6b6172756e0000000000060000000f000000060000000e000000010000000a2a864886f76364060206000000000000000000060000000e000000000000000a2a864886f7636406010d0000000000000000000b000000000000000a7375626a6563742e4f550000000000010000000a545439464157503656340000',NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,164456761" + "'kTCCServiceAppleEvents','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,3,1,X'fade0c00000000ac0000000100000006000000020000001e636f6d2e7665657274752e616e6b612e6164646f6e732e616e6b6172756e0000000000060000000f000000060000000e000000010000000a2a864886f76364060206000000000000000000060000000e000000000000000a2a864886f7636406010d0000000000000000000b000000000000000a7375626a6563742e4f550000000000010000000a545439464157503656340000',NULL,0,'com.apple.Terminal',X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,1655808179" "'kTCCServiceAppleEvents','/usr/libexec/sshd-keygen-wrapper',1,2,3,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'com.apple.Terminal',X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,1650386089" ) for values in "${userValuesArray[@]}"; do diff --git a/images/macos/provision/core/android-toolsets.sh b/images/macos/provision/core/android-toolsets.sh index 0fe237ffb..3507a4a6b 100755 --- a/images/macos/provision/core/android-toolsets.sh +++ b/images/macos/provision/core/android-toolsets.sh @@ -35,7 +35,23 @@ ANDROID_NDK_MAJOR_VERSIONS=($(get_toolset_value '.android.ndk."versions"[]')) ANDROID_NDK_MAJOR_DEFAULT=$(get_toolset_value '.android.ndk.default') ANDROID_NDK_MAJOR_LATEST=$(get_toolset_value '.android.ndk."versions"[-1]') # Get the latest command line tools from https://developer.android.com/studio#cmdline-tools -ANDROID_OSX_SDK_URL="https://dl.google.com/android/repository/commandlinetools-mac-7302050_latest.zip" +cmdlineToolsVersion=$(get_toolset_value '.android."cmdline-tools"') +if [[ $cmdlineToolsVersion == "latest" ]]; then + repositoryXmlUrl="https://dl.google.com/android/repository/repository2-1.xml" + download_with_retries $repositoryXmlUrl "/tmp" "repository2-1.xml" + cmdlineToolsVersion=$( + yq -p=xml \ + '.sdk-repository.remotePackage[] | select(."+path" == "cmdline-tools;latest").archives.archive[].complete.url | select(contains("commandlinetools-mac"))' \ + /tmp/repository2-1.xml + ) + + if [[ -z $cmdlineToolsVersion ]]; then + echo "Failed to parse latest command-line tools version" + exit 1 + fi +fi + +ANDROID_OSX_SDK_URL="https://dl.google.com/android/repository/${cmdlineToolsVersion}" ANDROID_HOME=$HOME/Library/Android/sdk ANDROID_OSX_SDK_FILE=tools-macosx.zip diff --git a/images/macos/provision/core/commonutils.sh b/images/macos/provision/core/commonutils.sh index f51d9b9ec..3519e9c1a 100644 --- a/images/macos/provision/core/commonutils.sh +++ b/images/macos/provision/core/commonutils.sh @@ -16,6 +16,28 @@ for package in $cask_packages; do brew install --cask $package done +# Execute AppleScript to change security preferences for virtualbox +# System Preferences -> Security & Privacy -> General -> Unlock -> Allow -> Not now +if is_Monterey; then + if is_Veertu; then + retry=10 + while [ $retry -gt 0 ]; do + { + osascript -e 'tell application "System Events" to get application processes where visible is true' + } && break + + retry=$((retry-1)) + if [ $retry -eq 0 ]; then + echo "No retry attempts left" + exit 1 + fi + sleep 10 + done + fi + + osascript $HOME/utils/confirm-identified-developers.scpt $USER_PASSWORD +fi + # Invoke bazel to download bazel version via bazelisk bazel diff --git a/images/macos/provision/core/dotnet.sh b/images/macos/provision/core/dotnet.sh index c00a34607..1bd612e9b 100755 --- a/images/macos/provision/core/dotnet.sh +++ b/images/macos/provision/core/dotnet.sh @@ -22,11 +22,18 @@ DOTNET_VERSIONS=($(get_toolset_value '.dotnet.versions | .[]')) for DOTNET_VERSION in "${DOTNET_VERSIONS[@]}"; do RELEASE_URL="https://raw.githubusercontent.com/dotnet/core/master/release-notes/${DOTNET_VERSION}/releases.json" - ARGS_LIST+=( - $(curl -s "$RELEASE_URL" | \ - jq -r '.releases[].sdk."version"' | grep -v -E '\-(preview|rc)\d*' | \ - sort -r | rev | uniq -s 2 | rev) - ) + + if [[ $DOTNET_VERSION == "6.0" ]]; then + ARGS_LIST+=( + $(curl -s "$RELEASE_URL" | jq -r 'first(.releases[].sdks[]?.version | select(contains("preview") or contains("rc") | not))') + ) + else + ARGS_LIST+=( + $(curl -s "$RELEASE_URL" | \ + jq -r '.releases[].sdk."version"' | grep -v -E '\-(preview|rc)\d*' | \ + sort -r | rev | uniq -s 2 | rev) + ) + fi done for ARGS in "${ARGS_LIST[@]}"; do diff --git a/images/macos/provision/core/git.sh b/images/macos/provision/core/git.sh index 0dd8ba739..3a62d85e1 100644 --- a/images/macos/provision/core/git.sh +++ b/images/macos/provision/core/git.sh @@ -2,11 +2,9 @@ source ~/utils/utils.sh echo Installing Git... -# Temporary hardcode version 2.35.1 due to the issue with the actions\checkout https://github.com/actions/checkout/issues/76 -brew tap-new local/git -brew extract --version=2.35.1 git local/git -brew install git@2.35.1 -brew untap -f local/homebrew-git +brew_smart_install "git" + +git config --global --add safe.directory "*" echo Installing Git LFS brew_smart_install "git-lfs" diff --git a/images/macos/provision/core/rubygem.sh b/images/macos/provision/core/rubygem.sh index 739062978..60cd1c93d 100755 --- a/images/macos/provision/core/rubygem.sh +++ b/images/macos/provision/core/rubygem.sh @@ -1,9 +1,8 @@ #!/bin/bash -e -o pipefail source ~/utils/utils.sh -# Temporarily downgrade RubyGems version to 3.2.33 due to issue with RubyGems 3.3.3 (https://github.com/actions/virtual-environments-internal/issues/3162) echo Updating RubyGems... -gem update --system 3.2.33 +gem update --system gemsToInstall=$(get_toolset_value '.ruby.rubygems | .[]') if [ -n "$gemsToInstall" ]; then diff --git a/images/macos/provision/core/vsmac.sh b/images/macos/provision/core/vsmac.sh index f4f914566..dfcb37ba9 100644 --- a/images/macos/provision/core/vsmac.sh +++ b/images/macos/provision/core/vsmac.sh @@ -2,28 +2,48 @@ source ~/utils/utils.sh source ~/utils/xamarin-utils.sh -VSMAC_VERSION=$(get_toolset_value '.xamarin.vsmac') -if [ $VSMAC_VERSION == "latest" ]; then - VSMAC_VERSION=$(curl -L "http://aka.ms/manifest/stable" | jq -r ".items[] | select(.genericName==\"VisualStudioMac\").version") -fi -VSMAC_DOWNLOAD_URL=$(buildVSMacDownloadUrl $VSMAC_VERSION) +install_vsmac() { + local VSMAC_VERSION=$1 + local VSMAC_DEFAULT=$2 + if [ $VSMAC_VERSION == "2019" ]; then + VSMAC_DOWNLOAD_URL=$(curl -sL "https://aka.ms/manifest/stable" | jq -r '.items[] | select(.genericName=="VisualStudioMac").url') + elif [ $VSMAC_VERSION == "2022" ]; then + VSMAC_DOWNLOAD_URL=$(curl -sL "https://aka.ms/manifest/stable-2022" | jq -r '.items[] | select(.genericName=="VisualStudioMac").url') + elif [ $VSMAC_VERSION == "preview" ]; then + VSMAC_DOWNLOAD_URL=$(curl -sL "https://aka.ms/manifest/preview" | jq -r '.items[] | select(.genericName=="VisualStudioMac").url') + else + VSMAC_DOWNLOAD_URL=$(buildVSMacDownloadUrl $VSMAC_VERSION) + fi -TMPMOUNT=`/usr/bin/mktemp -d /tmp/visualstudio.XXXX` -TMPMOUNT_DOWNLOADS="$TMPMOUNT/downloads" -mkdir $TMPMOUNT_DOWNLOADS + echo "Installing Visual Studio ${VSMAC_VERSION} for Mac" + TMPMOUNT=`/usr/bin/mktemp -d /tmp/visualstudio.XXXX` + TMPMOUNT_DOWNLOADS="$TMPMOUNT/downloads" + mkdir $TMPMOUNT_DOWNLOADS -download_with_retries $VSMAC_DOWNLOAD_URL $TMPMOUNT_DOWNLOADS + download_with_retries $VSMAC_DOWNLOAD_URL $TMPMOUNT_DOWNLOADS -echo "Mounting Visual studio..." -VISUAL_STUDIO_NAME=${VSMAC_DOWNLOAD_URL##*/} -hdiutil attach "$TMPMOUNT_DOWNLOADS/$VISUAL_STUDIO_NAME" -mountpoint "$TMPMOUNT" + echo "Mounting Visual Studio..." + VISUAL_STUDIO_NAME=${VSMAC_DOWNLOAD_URL##*/} + hdiutil attach "$TMPMOUNT_DOWNLOADS/$VISUAL_STUDIO_NAME" -mountpoint "$TMPMOUNT" -echo "Moving Visual Studio to /Applications/..." -pushd $TMPMOUNT -tar cf - "./Visual Studio.app" | tar xf - -C /Applications/ + echo "Moving Visual Studio to /Applications/..." + pushd $TMPMOUNT + tar cf - "./Visual Studio.app" | tar xf - -C /Applications/ -popd -sudo hdiutil detach "$TMPMOUNT" -sudo rm -rf "$TMPMOUNT" + if [ $VSMAC_VERSION != $VSMAC_DEFAULT ]; then + mv "/Applications/Visual Studio.app" "/Applications/Visual Studio ${VSMAC_VERSION}.app" + fi + + popd + sudo hdiutil detach "$TMPMOUNT" + sudo rm -rf "$TMPMOUNT" +} + +VSMAC_VERSIONS=($(get_toolset_value '.xamarin.vsmac.versions[]')) +DEFAULT_VSMAC_VERSION=$(get_toolset_value '.xamarin.vsmac.default') + +for VERSION in "${VSMAC_VERSIONS[@]}"; do + install_vsmac $VERSION $DEFAULT_VSMAC_VERSION +done invoke_tests "Common" "VSMac" diff --git a/images/macos/provision/core/xamarin.sh b/images/macos/provision/core/xamarin.sh index b747faaa7..f738313fe 100755 --- a/images/macos/provision/core/xamarin.sh +++ b/images/macos/provision/core/xamarin.sh @@ -82,4 +82,8 @@ PREFERENCES_XAMARIN_DIR="${HOME}/Library/Preferences/Xamarin" mkdir -p $PREFERENCES_XAMARIN_DIR /usr/libexec/PlistBuddy -c "add :AppleSdkRoot string /Applications/Xcode_${DEFAULT_XCODE_VERSION}.app" $PREFERENCES_XAMARIN_DIR/Settings.plist +# Temporary workaround to recreate nuget.config file with a correct feed https://github.com/actions/virtual-environments/issues/5768 +rm -rf $HOME/.config/NuGet/NuGet.Config +nuget config + invoke_tests "Xamarin" diff --git a/images/macos/provision/utils/confirm-identified-developers.scpt b/images/macos/provision/utils/confirm-identified-developers.scpt new file mode 100644 index 000000000..a445d8be1 --- /dev/null +++ b/images/macos/provision/utils/confirm-identified-developers.scpt @@ -0,0 +1,53 @@ +# This AppleScript confirms developers in security preferences via macOS UI. +# It uses after VirtualBox installation to add 'Oracle Inc' as identified developer. +# Steps: +# - Close security preferences pop-up (it can be open after VirtualBox installation) +# - Open System Preferences -> Security & Privacy -> General +# - Unlock security preferences with user password (button 'Click the lock to make changes') +# - Click 'Allow' or 'Details…' button to confirm developers +# - Click 'Not now' button on restarting pop-up +# - Close System Preferences + +on run argv + set userpassword to item 1 of argv + set secpane to "Security & Privacy" + + tell application "System Events" + tell security preferences + keystroke return + delay 5 + end tell + end tell + + activate application "System Preferences" + delay 5 + tell application "System Events" + tell process "System Preferences" + click menu item secpane of menu "View" of menu bar 1 + delay 5 + click button 1 of window 1 + delay 5 + keystroke userpassword + delay 5 + keystroke return + delay 5 + click radio button "General" of tab group 1 of window 1 + delay 5 + if exists of UI element "Details…" of tab group 1 of window 1 then + click button "Details…" of tab group 1 of window 1 + delay 5 + keystroke return + delay 5 + keystroke return + delay 5 + end if + if exists of UI element "Allow" of tab group 1 of window 1 then + click button "Allow" of tab group 1 of window 1 + delay 5 + keystroke return + delay 5 + end if + click button 5 of window 1 + end tell + end tell +end run \ No newline at end of file diff --git a/images/macos/provision/utils/utils.sh b/images/macos/provision/utils/utils.sh index a3ee128b7..737102e07 100755 --- a/images/macos/provision/utils/utils.sh +++ b/images/macos/provision/utils/utils.sh @@ -127,7 +127,7 @@ should_build_from_source() { # No need to build from source if a bottle is disabled # Use the simple 'brew install' command to download a package - if $bottle_disabled; then + if [[ $bottle_disabled == "true" ]]; then echo "false" return fi @@ -192,13 +192,16 @@ get_github_package_download_url() { json=$(curl "${authString[@]}" -s "https://api.github.com/repos/${REPO_ORG}/releases?per_page=${SEARCH_IN_COUNT}") if [[ "$VERSION" == "latest" ]]; then - tagName=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]" | tail -1) + tagName=$(echo $json | jq -r '.[] | select((.prerelease==false) and (.assets | length > 0)).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]" | tail -1) else tagName=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]" | egrep "\w*${VERSION}" | tail -1) fi downloadUrl=$(echo $json | jq -r ".[] | select(.tag_name==\"${tagName}\").assets[].browser_download_url | select(${FILTER})" | head -n 1) - + if [ -z "$downloadUrl" ]; then + echo "Failed to parse a download url for the '${tagName}' tag using '${FILTER}' filter" + exit 1 + fi echo $downloadUrl } diff --git a/images/macos/provision/utils/xamarin-utils.sh b/images/macos/provision/utils/xamarin-utils.sh index a004fd761..d52c83a1a 100644 --- a/images/macos/provision/utils/xamarin-utils.sh +++ b/images/macos/provision/utils/xamarin-utils.sh @@ -19,7 +19,7 @@ buildVSMacDownloadUrl() { } buildMonoDownloadUrl() { - echo "https://dl.xamarin.com/MonoFrameworkMDK/Macx86/MonoFramework-MDK-${1}.macos10.xamarin.universal.pkg" + echo "https://dl.xamarin.com/MonoFrameworkMDK/Macx86/MonoFramework-MDK-${1}.macos10.xamarin.universal.pkg" } buildXamariniIOSDownloadUrl() { diff --git a/images/macos/software-report/SoftwareReport.Browsers.psm1 b/images/macos/software-report/SoftwareReport.Browsers.psm1 index 7f6fdccc4..72589c4cc 100644 --- a/images/macos/software-report/SoftwareReport.Browsers.psm1 +++ b/images/macos/software-report/SoftwareReport.Browsers.psm1 @@ -40,7 +40,7 @@ function Get-EdgeVersion { } function Get-EdgeDriverVersion { - return Run-Command "msedgedriver --version" | Take-Part -Part 0,1 + return Run-Command "msedgedriver --version" | Take-Part -Part 0,1,2,3 } function Get-FirefoxVersion { diff --git a/images/macos/software-report/SoftwareReport.Common.psm1 b/images/macos/software-report/SoftwareReport.Common.psm1 index 69588aa0a..56d68f6e1 100644 --- a/images/macos/software-report/SoftwareReport.Common.psm1 +++ b/images/macos/software-report/SoftwareReport.Common.psm1 @@ -64,7 +64,7 @@ function Get-Cargooutdated { } function Get-Cargoaudit { - $cargoAuditVersion = Run-Command "cargo audit --version" | Take-Part -Part 1 + $cargoAuditVersion = Run-Command "cargo-audit --version" | Take-Part -Part 1 return "Cargo-audit $cargoAuditVersion" } @@ -96,7 +96,8 @@ function Get-FortranVersion { } function Get-ClangLLVMVersion { - $locationsList = @("$((Get-Command clang).Source)", '$(brew --prefix llvm)/bin/clang') + $toolsetVersion = '$(brew --prefix llvm@{0})/bin/clang' -f (Get-ToolsetValue 'llvm.version') + $locationsList = @("$((Get-Command clang).Source)", $toolsetVersion) $locationsList | Foreach-Object { (Run-Command "${_} --version" | Out-String) -match "(?\d+\.\d+\.\d+)" | Out-Null $version = $Matches.version @@ -389,7 +390,7 @@ function Get-NewmanVersion { function Get-VirtualBoxVersion { $virtualBox = Run-Command "vboxmanage -v" - return "virtualbox $virtualBox" + return "VirtualBox $virtualBox" } function Get-VagrantVersion { @@ -448,7 +449,7 @@ function Get-AliyunCLIVersion { } function Get-GHCupVersion { - $ghcUpVersion = Run-Command "ghcup --version" | Take-Part -Part 5 + $ghcUpVersion = (Run-Command "ghcup --version" | Take-Part -Part 5).Replace('v','') return "GHCup $ghcUpVersion" } @@ -547,6 +548,11 @@ function Get-YqVersion { return "$yqVersion" } +function Get-ImageMagickVersion { + $imagemagickVersion = Run-Command "magick --version" | Select-Object -First 1 | Take-Part -Part 1,2 + return "$imagemagickVersion" +} + function Build-PackageManagementEnvironmentTable { return @( @{ diff --git a/images/macos/software-report/SoftwareReport.Generator.ps1 b/images/macos/software-report/SoftwareReport.Generator.ps1 index 857b69a62..199635d4f 100644 --- a/images/macos/software-report/SoftwareReport.Generator.ps1 +++ b/images/macos/software-report/SoftwareReport.Generator.ps1 @@ -63,6 +63,7 @@ $packageManagementList = @( (Get-PipxVersion), (Get-BundlerVersion), (Get-CocoaPodsVersion), + (Get-CondaVersion), (Get-HomebrewVersion), (Get-NPMVersion), (Get-YarnVersion), @@ -73,18 +74,11 @@ $packageManagementList = @( (Get-VcpkgVersion) ) -if ($os.IsLessThanMonterey) { - $packageManagementList += @( - (Get-CondaVersion) - ) -} - $markdown += New-MDList -Style Unordered -Lines ($packageManagementList | Sort-Object) -if ($os.IsLessThanMonterey) { - $markdown += New-MDHeader "Environment variables" -Level 4 - $markdown += Build-PackageManagementEnvironmentTable | New-MDTable - $markdown += New-MDNewLine -} +$markdown += New-MDHeader "Environment variables" -Level 4 +$markdown += Build-PackageManagementEnvironmentTable | New-MDTable +$markdown += New-MDNewLine + # Project Management $markdown += New-MDHeader "Project Management" -Level 3 $markdown += New-MDList -Style Unordered -Lines (@( @@ -123,7 +117,8 @@ $utilitiesList = @( (Get-GPGVersion), (Get-SwitchAudioOsxVersion), (Get-SoxVersion), - (Get-YqVersion) + (Get-YqVersion), + (Get-ImageMagickVersion) ) if ($os.IsLessThanMonterey) { @@ -140,12 +135,17 @@ if ($os.IsLessThanMonterey) { if ($os.IsCatalina) { $utilitiesList += @( - (Get-VirtualBoxVersion), - (Get-VagrantVersion), (Get-ParallelVersion) ) } +if (-not $os.IsBigSur) { + $utilitiesList += @( + (Get-VagrantVersion), + (Get-VirtualBoxVersion) + ) +} + $markdown += New-MDList -Style Unordered -Lines ($utilitiesList | Sort-Object) # Tools @@ -175,15 +175,10 @@ $toolsList += @( (Get-GHCupVersion), (Get-GHCVersion), (Get-CabalVersion), - (Get-StackVersion) + (Get-StackVersion), + (Get-SwiftFormatVersion) ) -if($os.IsLessThanMonterey) { - $toolsList += @( - (Get-SwiftFormatVersion) - ) -} - $markdown += New-MDList -Style Unordered -Lines ($toolsList | Sort-Object) # Linters @@ -247,7 +242,19 @@ $markdown += Build-WebServersSection # Xamarin section $markdown += New-MDHeader "Xamarin" -Level 3 $markdown += New-MDHeader "Visual Studio for Mac" -Level 4 -$markdown += New-MDList -Lines @(Get-VSMacVersion) -Style Unordered +$markdown += Build-VSMacTable | New-MDTable +$markdown += New-MDNewLine +if (-not $os.IsCatalina) { +$markdown += New-MDHeader "Notes:" -Level 5 +$reportVS = @' +``` +To use Visual Studio 2019 by default rename the app: +mv "/Applications/Visual Studio.app" "/Applications/Visual Studio 2022.app" +mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app" +``` +'@ +$markdown += New-MDParagraph -Lines $reportVS +} $markdown += New-MDHeader "Xamarin bundles" -Level 4 $markdown += Build-XamarinTable | New-MDTable diff --git a/images/macos/software-report/SoftwareReport.Xamarin.psm1 b/images/macos/software-report/SoftwareReport.Xamarin.psm1 index 2bd1b5476..09cac3209 100644 --- a/images/macos/software-report/SoftwareReport.Xamarin.psm1 +++ b/images/macos/software-report/SoftwareReport.Xamarin.psm1 @@ -1,8 +1,26 @@ Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1" -function Get-VSMacVersion { - $plistPath = "/Applications/Visual Studio.app/Contents/Info.plist" - return Run-Command "/usr/libexec/PlistBuddy -c 'Print CFBundleVersion' '$plistPath'" +function Build-VSMacTable { + $vsMacVersions = Get-ToolsetValue "xamarin.vsmac.versions" + $defaultVSMacVersion = Get-ToolsetValue "xamarin.vsmac.default" + + $vsMacVersions | ForEach-Object { + $isDefault = $_ -eq $defaultVSMacVersion + $vsPath = "/Applications/Visual Studio $_.app" + if ($isDefault) { + $vsPath = "/Applications/Visual Studio.app" + } + + $plistPath = "$vsPath/Contents/Info.plist" + $build = Run-Command "/usr/libexec/PlistBuddy -c 'Print CFBundleVersion' '$plistPath'" + $defaultPostfix = $isDefault ? " (default)" : "" + + [PSCustomObject] @{ + "Version" = $_ + $defaultPostfix + "Build" = $build + "Path" = $vsPath + } + } } function Get-NUnitVersion { @@ -28,4 +46,3 @@ function Build-XamarinTable { } } } - diff --git a/images/macos/templates/macOS-10.15.json b/images/macos/templates/macOS-10.15.json index 9d051353a..201bb31d3 100644 --- a/images/macos/templates/macOS-10.15.json +++ b/images/macos/templates/macOS-10.15.json @@ -90,9 +90,17 @@ }, { "type": "shell", - "execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}", + "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", + "pause_before": "30s", "scripts": [ "./provision/core/xcode-clt.sh", + "./provision/core/homebrew.sh" + ] + }, + { + "type": "shell", + "execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}", + "scripts": [ "./provision/configuration/add-network-interface-detection.sh", "./provision/configuration/autologin.sh", "./provision/configuration/disable-auto-updates.sh", @@ -130,7 +138,6 @@ "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", "pause_before": "30s", "scripts": [ - "./provision/core/homebrew.sh", "./provision/core/open_windows_check.sh", "./provision/core/powershell.sh", "./provision/core/dotnet.sh", diff --git a/images/macos/templates/macOS-11.pkr.hcl b/images/macos/templates/macOS-11.anka.pkr.hcl similarity index 72% rename from images/macos/templates/macOS-11.pkr.hcl rename to images/macos/templates/macOS-11.anka.pkr.hcl index bbc65e2b6..48d49444a 100644 --- a/images/macos/templates/macOS-11.pkr.hcl +++ b/images/macos/templates/macOS-11.anka.pkr.hcl @@ -20,6 +20,11 @@ variable "vm_password" { sensitive = true } +variable "github_api_pat" { + type = string + default = "" +} + variable "xcode_install_user" { type = string sensitive = true @@ -32,12 +37,12 @@ variable "xcode_install_password" { variable "vcpu_count" { type = string - default = "5" + default = "6" } variable "ram_size" { type = string - default = "12G" + default = "24G" } variable "image_os" { @@ -56,7 +61,7 @@ source "veertu-anka-vm-clone" "template" { build { sources = [ - "source.veertu-anka-vm-clone.template", + "source.veertu-anka-vm-clone.template" ] provisioner "shell" { inline = [ @@ -65,7 +70,12 @@ build { } provisioner "file" { destination = "image-generation/" - sources = [ "./provision/assets", "./tests", "./software-report", "./helpers" ] + sources = [ + "./provision/assets", + "./tests", + "./software-report", + "./helpers" + ] } provisioner "file" { destination = "image-generation/add-certificate.swift" @@ -99,14 +109,20 @@ build { provisioner "shell" { scripts = [ "./provision/core/xcode-clt.sh", - "./provision/configuration/configure-tccdb-macos11.sh", + "./provision/core/homebrew.sh" + ] + execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}" + } + provisioner "shell" { + scripts = [ + "./provision/configuration/configure-tccdb-macos.sh", "./provision/configuration/add-network-interface-detection.sh", "./provision/configuration/autologin.sh", "./provision/configuration/disable-auto-updates.sh", "./provision/configuration/screensaver-off.sh", "./provision/configuration/ntpconf.sh", "./provision/configuration/max-files.sh", - "./provision/configuration/shell-change.sh" + "./provision/configuration/shell-change.sh", ] environment_vars = [ "PASSWORD=${var.vm_password}", @@ -134,7 +150,6 @@ build { provisioner "shell" { pause_before = "30s" scripts = [ - "./provision/core/homebrew.sh", "./provision/core/open_windows_check.sh", "./provision/core/powershell.sh", "./provision/core/dotnet.sh", @@ -144,7 +159,12 @@ build { "./provision/core/ruby.sh", "./provision/core/rubygem.sh", "./provision/core/git.sh", - "./provision/core/node.sh" + "./provision/core/node.sh", + "./provision/core/commonutils.sh", + ] + environment_vars = [ + "API_PAT=${var.github_api_pat}", + "USER_PASSWORD=${var.vm_password}" ] execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}" } @@ -163,42 +183,47 @@ build { } provisioner "shell" { scripts = [ - "./provision/core/commonutils.sh", - "./provision/core/llvm.sh", - "./provision/core/golang.sh", - "./provision/core/swiftlint.sh", - "./provision/core/openjdk.sh", - "./provision/core/php.sh", - "./provision/core/aws.sh", - "./provision/core/rust.sh", - "./provision/core/gcc.sh", - "./provision/core/haskell.sh", - "./provision/core/stack.sh", - "./provision/core/cocoapods.sh", - "./provision/core/android-toolsets.sh", - "./provision/core/xamarin.sh", - "./provision/core/vsmac.sh", - "./provision/core/nvm.sh", - "./provision/core/apache.sh", - "./provision/core/nginx.sh", - "./provision/core/postgresql.sh", - "./provision/core/mongodb.sh", - "./provision/core/audiodevice.sh", - "./provision/core/vcpkg.sh", - "./provision/core/miniconda.sh", - "./provision/core/safari.sh", - "./provision/core/chrome.sh", - "./provision/core/edge.sh", - "./provision/core/firefox.sh", - "./provision/core/pypy.sh", - "./provision/core/pipx-packages.sh", - "./provision/core/bicep.sh", - "./provision/core/graalvm.sh" + "./provision/core/llvm.sh", + "./provision/core/golang.sh", + "./provision/core/swiftlint.sh", + "./provision/core/openjdk.sh", + "./provision/core/php.sh", + "./provision/core/aws.sh", + "./provision/core/rust.sh", + "./provision/core/gcc.sh", + "./provision/core/haskell.sh", + "./provision/core/stack.sh", + "./provision/core/cocoapods.sh", + "./provision/core/android-toolsets.sh", + "./provision/core/xamarin.sh", + "./provision/core/vsmac.sh", + "./provision/core/nvm.sh", + "./provision/core/apache.sh", + "./provision/core/nginx.sh", + "./provision/core/postgresql.sh", + "./provision/core/mongodb.sh", + "./provision/core/audiodevice.sh", + "./provision/core/vcpkg.sh", + "./provision/core/miniconda.sh", + "./provision/core/safari.sh", + "./provision/core/chrome.sh", + "./provision/core/edge.sh", + "./provision/core/firefox.sh", + "./provision/core/pypy.sh", + "./provision/core/pipx-packages.sh", + "./provision/core/bicep.sh", + "./provision/core/graalvm.sh" + ] + environment_vars = [ + "API_PAT=${var.github_api_pat}" ] execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}" } provisioner "shell" { - script = "./provision/core/toolset.ps1" + scripts = [ + "./provision/core/toolset.ps1", + "./provision/core/configure-toolset.ps1" + ] execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}" } provisioner "shell" { diff --git a/images/macos/templates/macOS-11.json b/images/macos/templates/macOS-11.json index a62b26a97..684e3d46a 100644 --- a/images/macos/templates/macOS-11.json +++ b/images/macos/templates/macOS-11.json @@ -93,6 +93,14 @@ "source": "./toolsets/toolset-11.json", "destination": "~/image-generation/toolset.json" }, + { + "type": "shell", + "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", + "scripts": [ + "./provision/core/xcode-clt.sh", + "./provision/core/homebrew.sh" + ] + }, { "type": "shell", "execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}", @@ -135,7 +143,6 @@ "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", "pause_before": "30s", "scripts": [ - "./provision/core/homebrew.sh", "./provision/core/open_windows_check.sh", "./provision/core/powershell.sh", "./provision/core/dotnet.sh", diff --git a/images/macos/templates/macOS-12.anka.pkr.hcl b/images/macos/templates/macOS-12.anka.pkr.hcl new file mode 100644 index 000000000..2eb1366b0 --- /dev/null +++ b/images/macos/templates/macOS-12.anka.pkr.hcl @@ -0,0 +1,253 @@ +variable "source_vm_name" { + type = string +} + +variable "source_vm_tag" { + type = string +} + +variable "build_id" { + type = string +} + +variable "vm_username" { + type = string + sensitive = true +} + +variable "vm_password" { + type = string + sensitive = true +} + +variable "github_api_pat" { + type = string + default = "" +} + +variable "xcode_install_user" { + type = string + sensitive = true +} + +variable "xcode_install_password" { + type = string + sensitive = true +} + +variable "vcpu_count" { + type = string + default = "6" +} + +variable "ram_size" { + type = string + default = "24G" +} + +variable "image_os" { + type = string + default = "macos12" +} + +source "veertu-anka-vm-clone" "template" { + vm_name = "${var.build_id}" + source_vm_name = "${var.source_vm_name}" + source_vm_tag = "${var.source_vm_tag}" + vcpu_count = "${var.vcpu_count}" + ram_size = "${var.ram_size}" + stop_vm = "true" +} + +build { + sources = [ + "source.veertu-anka-vm-clone.template" + ] + provisioner "shell" { + inline = [ + "mkdir ~/image-generation" + ] + } + provisioner "file" { + destination = "image-generation/" + sources = [ + "./provision/assets", + "./tests", + "./software-report", + "./helpers" + ] + } + provisioner "file" { + destination = "image-generation/add-certificate.swift" + source = "./provision/configuration/add-certificate.swift" + } + provisioner "file" { + destination = ".bashrc" + source = "./provision/configuration/environment/bashrc" + } + provisioner "file" { + destination = ".bash_profile" + source = "./provision/configuration/environment/bashprofile" + } + provisioner "file" { + destination = "./" + source = "./provision/utils" + } + provisioner "shell" { + inline = [ + "mkdir ~/bootstrap" + ] + } + provisioner "file" { + destination = "bootstrap" + source = "./provision/bootstrap-provisioner/" + } + provisioner "file" { + destination = "image-generation/toolset.json" + source = "./toolsets/toolset-12.json" + } + provisioner "shell" { + scripts = [ + "./provision/core/xcode-clt.sh", + "./provision/core/homebrew.sh" + ] + execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}" + } + provisioner "shell" { + scripts = [ + "./provision/configuration/configure-tccdb-macos.sh", + "./provision/configuration/add-network-interface-detection.sh", + "./provision/configuration/autologin.sh", + "./provision/configuration/disable-auto-updates.sh", + "./provision/configuration/screensaver-off.sh", + "./provision/configuration/ntpconf.sh", + "./provision/configuration/max-files.sh", + "./provision/configuration/shell-change.sh" + ] + environment_vars = [ + "PASSWORD=${var.vm_password}", + "USERNAME=${var.vm_username}" + ] + execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}" + } + provisioner "shell" { + scripts = [ + "./provision/configuration/preimagedata.sh", + "./provision/configuration/configure-ssh.sh", + "./provision/configuration/configure-machine.sh" + ] + environment_vars = [ + "IMAGE_VERSION=${var.build_id}", + "IMAGE_OS=${var.image_os}", + "PASSWORD=${var.vm_password}" + ] + execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}" + } + provisioner "shell" { + script = "./provision/core/reboot.sh" + execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}" + expect_disconnect = true + } + provisioner "shell" { + pause_before = "30s" + scripts = [ + "./provision/core/open_windows_check.sh", + "./provision/core/powershell.sh", + "./provision/core/dotnet.sh", + "./provision/core/python.sh", + "./provision/core/azcopy.sh", + "./provision/core/openssl.sh", + "./provision/core/ruby.sh", + "./provision/core/rubygem.sh", + "./provision/core/git.sh", + "./provision/core/node.sh", + "./provision/core/commonutils.sh" + ] + environment_vars = [ + "API_PAT=${var.github_api_pat}", + "USER_PASSWORD=${var.vm_password}" + ] + execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}" + } + provisioner "shell" { + script = "./provision/core/xcode.ps1" + environment_vars = [ + "XCODE_INSTALL_USER=${var.xcode_install_user}", + "XCODE_INSTALL_PASSWORD=${var.xcode_install_password}" + ] + execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}" + } + provisioner "shell" { + script = "./provision/core/reboot.sh" + execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}" + expect_disconnect = true + } + provisioner "shell" { + scripts = [ + "./provision/core/llvm.sh", + "./provision/core/golang.sh", + "./provision/core/swiftlint.sh", + "./provision/core/openjdk.sh", + "./provision/core/php.sh", + "./provision/core/aws.sh", + "./provision/core/rust.sh", + "./provision/core/gcc.sh", + "./provision/core/haskell.sh", + "./provision/core/stack.sh", + "./provision/core/cocoapods.sh", + "./provision/core/android-toolsets.sh", + "./provision/core/xamarin.sh", + "./provision/core/vsmac.sh", + "./provision/core/nvm.sh", + "./provision/core/apache.sh", + "./provision/core/nginx.sh", + "./provision/core/postgresql.sh", + "./provision/core/mongodb.sh", + "./provision/core/audiodevice.sh", + "./provision/core/vcpkg.sh", + "./provision/core/miniconda.sh", + "./provision/core/safari.sh", + "./provision/core/chrome.sh", + "./provision/core/edge.sh", + "./provision/core/firefox.sh", + "./provision/core/pypy.sh", + "./provision/core/pipx-packages.sh", + "./provision/core/bicep.sh", + "./provision/core/graalvm.sh" + ] + environment_vars = [ + "API_PAT=${var.github_api_pat}" + ] + execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}" + } + provisioner "shell" { + scripts = [ + "./provision/core/toolset.ps1", + "./provision/core/configure-toolset.ps1" + ] + execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}" + } + provisioner "shell" { + script = "./provision/core/delete-duplicate-sims.rb" + execute_command = "source $HOME/.bash_profile; ruby {{ .Path }}" + } + provisioner "shell" { + inline = [ + "pwsh -File \"$HOME/image-generation/software-report/SoftwareReport.Generator.ps1\" -OutputDirectory \"$HOME/image-generation/output/software-report\" -ImageName ${var.build_id}", + "pwsh -File \"$HOME/image-generation/tests/RunAll-Tests.ps1\"" + ] + execute_command = "source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}" + } + provisioner "file" { + destination = "../image-output/" + direction = "download" + source = "./image-generation/output/" + } + provisioner "shell" { + scripts = [ + "./provision/configuration/configure-hostname.sh", + "./provision/configuration/finalize-vm.sh" + ] + execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}" + } +} diff --git a/images/macos/templates/macOS-12.json b/images/macos/templates/macOS-12.json index e9117a80b..ee63e9820 100644 --- a/images/macos/templates/macOS-12.json +++ b/images/macos/templates/macOS-12.json @@ -95,9 +95,16 @@ }, { "type": "shell", - "execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}", + "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", "scripts": [ "./provision/core/xcode-clt.sh", + "./provision/core/homebrew.sh" + ] + }, + { + "type": "shell", + "execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}", + "scripts": [ "./provision/configuration/add-network-interface-detection.sh", "./provision/configuration/autologin.sh", "./provision/configuration/disable-auto-updates.sh", @@ -136,7 +143,6 @@ "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", "pause_before": "30s", "scripts": [ - "./provision/core/homebrew.sh", "./provision/core/open_windows_check.sh", "./provision/core/powershell.sh", "./provision/core/dotnet.sh", @@ -146,10 +152,12 @@ "./provision/core/ruby.sh", "./provision/core/rubygem.sh", "./provision/core/git.sh", - "./provision/core/node.sh" + "./provision/core/node.sh", + "./provision/core/commonutils.sh" ], "environment_vars": [ - "API_PAT={{user `github_api_pat`}}" + "API_PAT={{user `github_api_pat`}}", + "USER_PASSWORD={{user `vm_password`}}" ] }, { @@ -171,7 +179,6 @@ "type": "shell", "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", "scripts": [ - "./provision/core/commonutils.sh", "./provision/core/llvm.sh", "./provision/core/golang.sh", "./provision/core/swiftlint.sh", @@ -193,6 +200,7 @@ "./provision/core/mongodb.sh", "./provision/core/audiodevice.sh", "./provision/core/vcpkg.sh", + "./provision/core/miniconda.sh", "./provision/core/safari.sh", "./provision/core/chrome.sh", "./provision/core/edge.sh", diff --git a/images/macos/tests/BasicTools.Tests.ps1 b/images/macos/tests/BasicTools.Tests.ps1 index f40a484bd..df7045b50 100644 --- a/images/macos/tests/BasicTools.Tests.ps1 +++ b/images/macos/tests/BasicTools.Tests.ps1 @@ -30,7 +30,7 @@ Describe "Subversion" { } } -Describe "SwiftFormat" -Skip:($os.IsMonterey) { +Describe "SwiftFormat" { It "SwiftFormat" { "swiftformat --version" | Should -ReturnZeroExitCode } @@ -138,13 +138,13 @@ Describe "wget" { } } -Describe "vagrant" -Skip:($os.IsHigherThanCatalina) { +Describe "vagrant" -Skip:($os.IsBigSur) { It "vagrant" { "vagrant --version" | Should -ReturnZeroExitCode } } -Describe "virtualbox" -Skip:($os.IsHigherThanCatalina) { +Describe "virtualbox" -Skip:($os.IsBigSur) { It "virtualbox" { "vboxmanage -v" | Should -ReturnZeroExitCode } @@ -186,4 +186,10 @@ Describe "yq" { It "yq" { "yq --version" | Should -ReturnZeroExitCode } +} + +Describe "imagemagick" { + It "imagemagick" { + "magick -version" | Should -ReturnZeroExitCode + } } \ No newline at end of file diff --git a/images/macos/tests/Common.Tests.ps1 b/images/macos/tests/Common.Tests.ps1 index 3c9a717e7..7e78b182d 100644 --- a/images/macos/tests/Common.Tests.ps1 +++ b/images/macos/tests/Common.Tests.ps1 @@ -58,7 +58,7 @@ Describe "AzCopy" { } } -Describe "Miniconda" -Skip:($os.IsMonterey) { +Describe "Miniconda" { It "Conda" { Get-EnvironmentVariable "CONDA" | Should -Not -BeNullOrEmpty $condaBinPath = Join-Path $env:CONDA "bin" "conda" @@ -79,7 +79,25 @@ Describe "CocoaPods" { } Describe "VSMac" { - It "VS4Mac is installed" { + $vsMacVersions = Get-ToolsetValue "xamarin.vsmac.versions" + $defaultVSMacVersion = Get-ToolsetValue "xamarin.vsmac.default" + + $testCases = $vsMacVersions | ForEach-Object { + $vsPath = "/Applications/Visual Studio $_.app" + if ($_ -eq $defaultVSMacVersion) { + $vsPath = "/Applications/Visual Studio.app" + } + + @{ vsversion = $_ ; vspath = $vsPath } + } + + It "Visual Studio for Mac is installed" -TestCases $testCases { + $vstoolPath = Join-Path $vsPath "Contents/MacOS/vstool" + $vsPath | Should -Exist + $vstoolPath | Should -Exist + } + + It "Visual Studio $defaultVSMacVersion for Mac is default" { $vsPath = "/Applications/Visual Studio.app" $vstoolPath = Join-Path $vsPath "Contents/MacOS/vstool" $vsPath | Should -Exist @@ -113,4 +131,10 @@ Describe "GraalVM" { It "native-image" { '$GRAALVM_11_ROOT/native-image --version' | Should -ReturnZeroExitCode } +} + +Describe "VirtualBox" -Skip:($os.IsBigSur) { + It "Check kext kernel modules" { + kextstat | Out-String | Should -Match "org.virtualbox.kext" + } } \ No newline at end of file diff --git a/images/macos/tests/LLVM.Tests.ps1 b/images/macos/tests/LLVM.Tests.ps1 index 0591d049a..af5b63535 100644 --- a/images/macos/tests/LLVM.Tests.ps1 +++ b/images/macos/tests/LLVM.Tests.ps1 @@ -1,9 +1,10 @@ -$os = Get-OSVersion - Describe "Clang/LLVM" { - It "Clang/LLVM is installed and version is correct" { + BeforeAll { $toolsetVersion = Get-ToolsetValue 'llvm.version' - $clangVersion = & "$(brew --prefix llvm)/bin/clang" --version + } + + It "Clang/LLVM is installed and version is correct" { + $clangVersion = & "$(brew --prefix llvm@$toolsetVersion)/bin/clang" --version $clangVersion[0] | Should -BeLike "*${toolsetVersion}*" } } \ No newline at end of file diff --git a/images/macos/tests/Xamarin.Tests.ps1 b/images/macos/tests/Xamarin.Tests.ps1 index 3d7a97dde..9f5233182 100644 --- a/images/macos/tests/Xamarin.Tests.ps1 +++ b/images/macos/tests/Xamarin.Tests.ps1 @@ -11,7 +11,7 @@ BeforeAll { param ( [string] $Version ) - + $versionParts = $Version.Split(".") return [String]::Join(".", $versionParts[0..1]) } @@ -90,28 +90,28 @@ Describe "Xamarin.iOS" { It "is installed" -TestCases $testCase { param ( [string] $VersionFolderPath ) - + $xamarinBinPath = Join-Path $VersionFolderPath "bin" $VersionFolderPath | Should -Exist $xamarinBinPath | Should -Exist } - + It "is available via short link" -TestCases $testCase { param ( [string] $XamarinIosVersion, [string] $IosVersionsPath, [string] $VersionFolderPath ) - + $shortSymlink = Get-ShortSymlink $XamarinIosVersion # only 'major.minor' $shortSymlinkFolderPath = Join-Path $IosVersionsPath $shortSymlink $shortVersionPath = Join-Path $shortSymlinkFolderPath "VERSION" $fullVersionPath = Join-Path $VersionFolderPath "VERSION" - + Validate-IdenticalFileContent -File1 $shortVersionPath -File2 $fullVersionPath } } - } + } } Describe "Xamarin.Mac" { @@ -120,7 +120,7 @@ Describe "Xamarin.Mac" { $XAMARIN_MAC_VERSIONS_PATH = "/Library/Frameworks/Xamarin.Mac.framework/Versions" $versionFolderPath = Join-Path $XAMARIN_MAC_VERSIONS_PATH $_ $testCase = @{ XamarinMacVersion = $_; VersionFolderPath = $versionFolderPath; MacVersionsPath = $XAMARIN_MAC_VERSIONS_PATH } - + It "is installed" -TestCases $testCase { param ( [string] $VersionFolderPath ) @@ -128,7 +128,7 @@ Describe "Xamarin.Mac" { $VersionFolderPath | Should -Exist $xamarinBinPath | Should -Exist } - + It "is available via short link" -TestCases $testCase { param ( [string] $XamarinMacVersion, @@ -140,7 +140,7 @@ Describe "Xamarin.Mac" { $shortSymlinkFolderPath = Join-Path $MacVersionsPath $shortSymlink $shortVersionPath = Join-Path $shortSymlinkFolderPath "VERSION" $fullVersionPath = Join-Path $VersionFolderPath "VERSION" - + Validate-IdenticalFileContent -File1 $shortVersionPath -File2 $fullVersionPath } } @@ -156,35 +156,35 @@ Describe "Xamarin.Android" { It "is installed" -TestCases $testCase { param ( [string] $VersionFolderPath ) - + $xamarinLibPath = Join-Path $VersionFolderPath "lib" $xamarinLibPath | Should -Exist } - + It "is available via short link" -TestCases $testCase { param ( [string] $XamarinAndroidVersion, [string] $AndroidVersionsPath, [string] $VersionFolderPath ) - + $shortSymlink = Get-ShortSymlink $XamarinAndroidVersion # only 'major.minor' $shortSymlinkFolderPath = Join-Path $AndroidVersionsPath $shortSymlink $shortVersionPath = Join-Path $shortSymlinkFolderPath "VERSION" $fullVersionPath = Join-Path $VersionFolderPath "VERSION" - + Validate-IdenticalFileContent -File1 $shortVersionPath -File2 $fullVersionPath } - + It "has correct symlinks" -TestCases $testCase { param ( [string] $VersionFolderPath ) - + $xamarinLibPath = Join-Path $VersionFolderPath "lib" Join-Path $xamarinLibPath "xbuild" | Should -Exist Join-Path $xamarinLibPath "xbuild-frameworks" | Should -Exist - } + } } - } + } } Describe "Xamarin Bundles" { @@ -194,11 +194,11 @@ Describe "Xamarin Bundles" { $XAMARIN_MAC_VERSIONS_PATH = "/Library/Frameworks/Xamarin.Mac.framework/Versions" $XAMARIN_ANDROID_VERSIONS_PATH = "/Library/Frameworks/Xamarin.Android.framework/Versions" } - + [array]$XAMARIN_BUNDLES = Get-ToolsetValue "xamarin.bundles" $XAMARIN_DEFAULT_BUNDLE = Get-ToolsetValue "xamarin.bundle-default" If ($XAMARIN_DEFAULT_BUNDLE -eq "latest") { $XAMARIN_DEFAULT_BUNDLE = $XAMARIN_BUNDLES[0].symlink } - + $currentBundle = [PSCustomObject] @{ symlink = "Current" mono = $XAMARIN_DEFAULT_BUNDLE @@ -220,7 +220,7 @@ Describe "Xamarin Bundles" { It "Mono symlink exists" -TestCases $allBundles { param ( [string] $BundleSymlink ) - + (Join-Path $MONO_VERSIONS_PATH $BundleSymlink) | Should -Exist } @@ -290,4 +290,10 @@ Describe "Xamarin Bundles" { Validate-IdenticalFileContent -File1 $targetVersionPath -File2 $sourceVersionPath } +} + +Describe "Nuget" { + It "Nuget config contains nuget.org feed" { + Get-Content $env:HOME/.config/NuGet/NuGet.Config | Out-String | Should -Match "nuget.org" + } } \ No newline at end of file diff --git a/images/macos/toolsets/toolset-10.15.json b/images/macos/toolsets/toolset-10.15.json index 52950bffe..05874c59a 100644 --- a/images/macos/toolsets/toolset-10.15.json +++ b/images/macos/toolsets/toolset-10.15.json @@ -18,9 +18,12 @@ ] }, "xamarin": { - "vsmac": "latest", + "vsmac": { + "default": "2019", + "versions": [ "2019" ] + }, "mono-versions": [ - "6.12.0.162", "6.10.0.106", "6.8.0.123", "6.6.0.166", "6.4.0.208" + "6.12.0.182", "6.10.0.106", "6.8.0.123", "6.6.0.166", "6.4.0.208" ], "ios-versions": [ "14.14.2.5", "14.10.0.4", "14.8.0.3", "14.6.0.15", "14.4.1.3", "14.2.0.12", "14.0.0.0", "13.20.2.2", "13.18.2.1", "13.16.0.13", "13.14.1.39", "13.10.0.21", "13.8.3.0", "13.6.0.12", "13.4.0.2", "13.2.0.47" @@ -162,6 +165,7 @@ ] }, "android": { + "cmdline-tools": "latest", "platform_min_version": "24", "build_tools_min_version": "24.0.0", "extra-list": [ @@ -175,9 +179,9 @@ "cmake;3.18.1" ], "ndk": { - "default": "21", + "default": "23", "versions": [ - "21", "22", "23" + "21", "23", "24" ] } }, @@ -224,7 +228,8 @@ "libxext", "libxft", "tcl-tk", - "yq" + "yq", + "imagemagick" ], "cask_packages": [ "julia", @@ -338,7 +343,7 @@ ] }, "llvm": { - "version": "13" + "version": "14" }, "php": { "version": "8.1" diff --git a/images/macos/toolsets/toolset-11.json b/images/macos/toolsets/toolset-11.json index 5927c3607..1306b902b 100644 --- a/images/macos/toolsets/toolset-11.json +++ b/images/macos/toolsets/toolset-11.json @@ -2,8 +2,7 @@ "xcode": { "default": "13.2.1", "versions": [ - { "link": "13.2.1", "version": "13.2.1" }, - { "link": "13.2", "version": "13.2.0" }, + { "link": "13.2.1", "version": "13.2.1", "symlinks": ["13.2"] }, { "link": "13.1", "version": "13.1.0" }, { "link": "13.0", "version": "13.0.0" }, { "link": "12.5.1", "version": "12.5.1", "symlinks": ["12.5"] }, @@ -12,9 +11,12 @@ ] }, "xamarin": { - "vsmac": "latest", + "vsmac": { + "default": "2022", + "versions": [ "2019", "2022" ] + }, "mono-versions": [ - "6.12.0.174" + "6.12.0.182" ], "ios-versions": [ "15.8.0.3", "15.6.0.3", "15.4.0.0", "15.2.0.17", "15.0.0.6", "14.20.0.24", "14.16.0.5", "14.14.2.5", "14.10.0.4", "14.8.0.3", "14.6.0.15", "14.4.1.3", "14.2.0.12", "14.0.0.0", "13.20.2.2" @@ -23,16 +25,23 @@ "8.8.0.3", "8.6.0.3", "8.4.0.0", "8.2.0.17", "7.14.0.27", "7.10.0.5", "7.8.2.5", "7.4.0.10", "7.2.0.3", "7.0.0.15", "6.22.1.26", "6.20.2.2" ], "android-versions": [ - "12.2.4.3", "12.0.0.3", "11.3.0.4", "11.2.2.1", "11.1.0.26", "11.0.2.0" + "12.2.8.3", "12.1.0.2", "12.0.0.3", "11.3.0.4", "11.2.2.1", "11.1.0.26", "11.0.2.0" ], "bundle-default": "6_12_12", "bundles": [ + { + "symlink": "6_12_16", + "mono":"6.12", + "ios": "15.8", + "mac": "8.8", + "android": "12.2" + }, { "symlink": "6_12_15", "mono":"6.12", "ios": "15.8", "mac": "8.8", - "android": "12.2" + "android": "12.1" }, { "symlink": "6_12_14", @@ -156,6 +165,7 @@ ] }, "android": { + "cmdline-tools": "latest", "platform_min_version": "27", "build_tools_min_version": "27.0.0", "extra-list": [ @@ -167,9 +177,9 @@ "cmake;3.18.1" ], "ndk": { - "default": "21", + "default": "23", "versions": [ - "21", "22", "23" + "21", "23", "24" ] } }, @@ -213,7 +223,8 @@ "libxft", "tcl-tk", "r", - "yq" + "yq", + "imagemagick" ], "cask_packages": [ "julia" @@ -295,7 +306,8 @@ "dotnet": { "versions": [ "3.1", - "5.0" + "5.0", + "6.0" ] }, "ruby": { @@ -322,7 +334,7 @@ ] }, "llvm": { - "version": "13" + "version": "14" }, "php": { "version": "8.1" diff --git a/images/macos/toolsets/toolset-12.json b/images/macos/toolsets/toolset-12.json index 5ded72699..f8357ce22 100644 --- a/images/macos/toolsets/toolset-12.json +++ b/images/macos/toolsets/toolset-12.json @@ -1,36 +1,53 @@ { "xcode": { - "default": "13.3", + "default": "13.4.1", "versions": [ - { "link": "13.3.1", "version": "13.3.1" }, - { "link": "13.3", "version": "13.3.0" }, - { "link": "13.2.1", "version": "13.2.1" }, - { "link": "13.2", "version": "13.2.0" }, + { "link": "13.4.1", "version": "13.4.1" }, + { "link": "13.4", "version": "13.4.0" }, + { "link": "13.3.1", "version": "13.3.1", "symlinks": ["13.3"] }, + { "link": "13.2.1", "version": "13.2.1", "symlinks": ["13.2"] }, { "link": "13.1", "version": "13.1.0" } ] }, "xamarin": { - "vsmac": "latest", + "vsmac": { + "default": "2022", + "versions": [ "2019", "2022" ] + }, "mono-versions": [ - "6.12.0.174" + "6.12.0.182" ], "ios-versions": [ - "15.8.0.3", "15.6.0.3", "15.4.0.0", "15.2.0.17", "15.0.0.6" + "15.10.0.5", "15.8.0.3", "15.6.0.3", "15.4.0.0", "15.2.0.17", "15.0.0.6" ], "mac-versions": [ - "8.8.0.3", "8.6.0.3", "8.4.0.0", "8.2.0.17", "7.14.0.27" + "8.10.0.5", "8.8.0.3", "8.6.0.3", "8.4.0.0", "8.2.0.17", "7.14.0.27" ], "android-versions": [ - "12.2.4.3", "12.0.0.3", "11.3.0.4" + "12.2.8.3", "12.1.0.2", "12.0.0.3", "11.3.0.4" ], - "bundle-default": "6_12_15", + "bundle-default": "6_12_17", "bundles": [ + { + "symlink": "6_12_17", + "mono":"6.12", + "ios": "15.10", + "mac": "8.10", + "android": "12.2" + }, + { + "symlink": "6_12_16", + "mono":"6.12", + "ios": "15.8", + "mac": "8.8", + "android": "12.2" + }, { "symlink": "6_12_15", "mono":"6.12", "ios": "15.8", "mac": "8.8", - "android": "12.2" + "android": "12.1" }, { "symlink": "6_12_14", @@ -84,6 +101,7 @@ ] }, "android": { + "cmdline-tools": "latest", "platform_min_version": "27", "build_tools_min_version": "27.0.0", "extra-list": [ @@ -94,9 +112,9 @@ "cmake;3.18.1" ], "ndk": { - "default": "21", + "default": "23", "versions": [ - "21", "22", "23" + "21", "23", "24" ] } }, @@ -107,7 +125,9 @@ { "name": "PSScriptAnalyzer" } ], "npm": { - "global_packages": [] + "global_packages": [ + { "name": "appcenter-cli", "test": "appcenter --version" } + ] }, "brew": { "common_packages": [ @@ -127,6 +147,7 @@ "perl", "sbt", "subversion", + "swiftformat", "swig", "zstd", "gmp", @@ -135,10 +156,13 @@ "libxft", "tcl-tk", "r", - "yq" + "yq", + "imagemagick" ], "cask_packages": [ - "julia" + "julia", + "vagrant", + "virtualbox" ] }, "gcc": { @@ -212,7 +236,8 @@ "dotnet": { "versions": [ "3.1", - "5.0" + "5.0", + "6.0" ] }, "ruby": { @@ -238,7 +263,7 @@ ] }, "llvm": { - "version": "13" + "version": "14" }, "php": { "version": "8.1" diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md index a15a962f7..b22c3c334 100644 --- a/images/win/Windows2019-Readme.md +++ b/images/win/Windows2019-Readme.md @@ -1,39 +1,41 @@ | Announcements | |-| -| [[All OSs] Go versions less than 1.16 will be removed and the default will be set to 1.17 on April, 11](https://github.com/actions/virtual-environments/issues/5280) | +| [[all OSs] Android ndk-bundle along with old NDK versions will be deprecated on July, 24](https://github.com/actions/virtual-environments/issues/5879) | +| [[Windows, macOS] LLVM will be updated to version 14 on July, 11](https://github.com/actions/virtual-environments/issues/5835) | +| [[Azure DevOps] Windows-2016 environment removal postponed until July 22, 2022](https://github.com/actions/virtual-environments/issues/5403) | *** # Microsoft Windows Server 2019 Datacenter -- OS Version: 10.0.17763 Build 2686 -- Image Version: 20220410.1 +- OS Version: 10.0.17763 Build 3165 +- Image Version: 20220717.1 ## Enabled windows optional features - Windows Subsystem for Linux [WSLv1] ## Installed Software ### Language and Runtime -- Bash 4.4.23(2)-release -- Go 1.17.8 -- Julia 1.7.2 -- Kotlin 1.6.20 -- LLVM 13.0.1 -- Node 16.14.2 +- Bash 4.4.23(1)-release +- Go 1.17.12 +- Julia 1.7.3 +- Kotlin 1.7.10 +- LLVM 14.0.6 +- Node 16.16.0 - Perl 5.32.1 -- PHP 8.1.4 +- PHP 8.1.8 - Python 3.7.9 - Ruby 2.5.9p229 ### Package Management - Chocolatey 1.1.0 -- Composer 2.3.4 -- Helm 3.8.0 -- Miniconda 4.11.0 (pre-installed on the image but not added to PATH) -- NPM 8.5.0 -- NuGet 6.1.0.106 -- pip 22.0.4 (python 3.7) -- Pipx 1.0.0 +- Composer 2.3.10 +- Helm 3.9.0 +- Miniconda 4.12.0 (pre-installed on the image but not added to PATH) +- NPM 8.11.0 +- NuGet 6.2.1.2 +- pip 22.1.2 (python 3.7) +- Pipx 1.1.0 - RubyGems 2.7.6.3 -- Vcpkg (build from master \) -- Yarn 1.22.18 +- Vcpkg (build from master \<68b7fec22>) +- Yarn 1.22.19 #### Environment variables | Name | Value | @@ -44,83 +46,84 @@ ### Project Management - Ant 1.10.12 - Gradle 7.4 -- Maven 3.8.5 -- sbt 1.6.2 +- Maven 3.8.6 +- sbt 1.7.1 ### Tools -- 7zip 21.07 +- 7zip 22.01 - aria2 1.36.0 -- azcopy 10.14.1 -- Bazel 5.1.1 -- Bazelisk 1.11.0 -- Bicep 0.5.6 +- azcopy 10.15.0 +- Bazel 5.2.0 +- Bazelisk 1.12.0 +- Bicep 0.8.9 - Cabal 3.6.2.0 -- CMake 3.23.0 -- CodeQL Action Bundle 2.8.5 +- CMake 3.23.2 +- CodeQL Action Bundle 2.10.0 - Docker 20.10.7 -- Docker-compose 1.29.2 +- Docker Compose v1 1.29.2 +- Docker Compose v2 2.6.1 - Docker-wincred 0.6.4 -- ghc 9.2.2 -- Git 2.35.1.windows.2 -- Git LFS 3.0.2 -- Google Cloud SDK 380.0.0 -- InnoSetup 6.2.0 +- ghc 9.2.3 +- Git 2.37.1.windows.1 +- Git LFS 3.2.0 +- Google Cloud SDK 393.0.0 +- InnoSetup 6.2.1 - jq 1.6 -- Kind 0.12.0 -- Kubectl 1.23.5 +- Kind 0.14.0 +- Kubectl 1.24.1 - Mercurial 5.0 - Mingw-w64 8.1.0 - Newman 5.3.2 - NSIS v3.08 - OpenSSL 1.1.1 -- Packer 1.8.0 -- Parcel 2.4.1 -- Pulumi v3.28.0 -- R 4.1.3 -- Service Fabric SDK 8.2.1571.9590 +- Packer 1.8.2 +- Parcel 2.6.2 +- Pulumi v3.36.0 +- R 4.2.1 +- Service Fabric SDK 9.0.1028.9590 - Stack 2.7.5 -- Subversion (SVN) 1.14.1 +- Subversion (SVN) 1.14.2 - Swig 4.0.2 -- VSWhere 3.0.1 +- VSWhere 3.0.3 - WinAppDriver 1.2.2009.02003 - WiX Toolset v3.11.2.4516 -- yamllint 1.26.3 +- yamllint 1.27.1 - zstd 1.5.2 ### CLI Tools -- Alibaba Cloud CLI 3.0.115 -- AWS CLI 2.5.4 -- AWS SAM CLI 1.46.0 -- AWS Session Manager CLI 1.2.312.0 -- Azure CLI 2.35.0 +- Alibaba Cloud CLI 3.0.124 +- AWS CLI 2.7.16 +- AWS SAM CLI 1.53.0 +- AWS Session Manager CLI 1.2.339.0 +- Azure CLI 2.38.0 - Azure DevOps CLI extension 0.25.0 - Cloud Foundry CLI 6.53.0 -- GitHub CLI 2.7.0 +- GitHub CLI 2.14.2 - Hub CLI 2.14.2 ### Rust Tools -- Cargo 1.60.0 -- Rust 1.60.0 -- Rustdoc 1.60.0 -- Rustup 1.24.3 +- Cargo 1.62.0 +- Rust 1.62.0 +- Rustdoc 1.62.0 +- Rustup 1.25.1 #### Packages -- bindgen 0.59.2 -- cargo-audit 0.16.0 -- cargo-outdated 0.11.0 -- cbindgen 0.21.0 -- Clippy 0.1.60 +- bindgen 0.60.1 +- cargo-audit 0.17.0 +- cargo-outdated 0.11.1 +- cbindgen 0.24.3 +- Clippy 0.1.62 - Rustfmt 1.4.38 ### Browsers and webdrivers -- Google Chrome 100.0.4896.75 -- Chrome Driver 100.0.4896.60 -- Microsoft Edge 100.0.1185.36 -- Microsoft Edge Driver 100.0.1185.36 -- Mozilla Firefox 99.0 -- Gecko Driver 0.30.0 +- Google Chrome 103.0.5060.114 +- Chrome Driver 103.0.5060.53 +- Microsoft Edge 103.0.1264.62 +- Microsoft Edge Driver 103.0.1264.62 +- Mozilla Firefox 102.0.1 +- Gecko Driver 0.31.0 - IE Driver 3.150.1.1 -- Selenium server 4.1.0 +- Selenium server 4.3.0 #### Environment variables | Name | Value | @@ -133,10 +136,10 @@ ### Java | Version | Vendor | Environment Variable | | ------------------- | --------------- | -------------------- | -| 8.0.322+6 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | -| 11.0.14+101 | Eclipse Temurin | JAVA_HOME_11_X64 | +| 8.0.332+9 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | +| 11.0.15+10 | Eclipse Temurin | JAVA_HOME_11_X64 | | 13.0.2+8.1 | Adopt OpenJDK | JAVA_HOME_13_X64 | -| 17.0.2+8 | Eclipse Temurin | JAVA_HOME_17_X64 | +| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 | ### Shells | Name | Target | @@ -163,15 +166,15 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Version | Architecture | Environment Variable | | ------- | ------------ | -------------------- | | 1.16.15 | x64 | GOROOT_1_16_X64 | -| 1.17.8 (Default) | x64 | GOROOT_1_17_X64 | -| 1.18.0 | x64 | GOROOT_1_18_X64 | +| 1.17.12 (Default) | x64 | GOROOT_1_17_X64 | +| 1.18.4 | x64 | GOROOT_1_18_X64 | #### Node | Version | Architecture | | ------- | ------------ | | 12.22.12 | x64 | -| 14.19.1 | x64 | -| 16.14.2 | x64 | +| 14.20.0 | x64 | +| 16.16.0 | x64 | #### Python | Version | Architecture | @@ -180,17 +183,18 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | 3.6.8 | x64, x86 | | 3.7.9 (Default) | x64, x86 | | 3.8.10 | x64, x86 | -| 3.9.12 | x64, x86 | -| 3.10.4 | x64, x86 | +| 3.9.13 | x64, x86 | +| 3.10.5 | x64, x86 | #### Ruby | Version | Architecture | | ------- | ------------ | | 2.4.10 | x64 | | 2.5.9 (Default) | x64 | -| 2.6.9 | x64 | -| 2.7.5 | x64 | -| 3.0.3 | x64 | +| 2.6.10 | x64 | +| 2.7.6 | x64 | +| 3.0.4 | x64 | +| 3.1.2 | x64 | #### PyPy | Python Version | PyPy Version | @@ -206,7 +210,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Property | Value | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | | ServiceName | postgresql-x64-14 | -| Version | 14.2 | +| Version | 14.4 | | ServiceStatus | Stopped | | ServiceStartType | Disabled | | EnvironmentVariables | PGBIN=C:\Program Files\PostgreSQL\14\bin
PGDATA=C:\Program Files\PostgreSQL\14\data
PGROOT=C:\Program Files\PostgreSQL\14 | @@ -217,30 +221,30 @@ Note: MSYS2 is pre-installed on image but not added to PATH. #### MongoDB | Version | ServiceName | ServiceStatus | ServiceStartType | | ------- | ----------- | ------------- | ---------------- | -| 5.0.6.0 | MongoDB | Running | Automatic | +| 5.0.9.0 | MongoDB | Running | Automatic | ### Database tools -- Azure CosmosDb Emulator 2.14.6.0 -- DacFx 16.0.5400.1 -- MySQL 5.7.37.0 +- Azure CosmosDb Emulator 2.14.9.0 +- DacFx 16.0.6161.0 +- MySQL 5.7.38.0 - SQL OLEDB Driver 18.6.3.0 - SQLPS 1.0 ### Web Servers | Name | Version | ConfigFile | ServiceName | ServiceStatus | ListenPort | | ------ | ------- | ------------------------------------- | ----------- | ------------- | ---------- | -| Apache | 2.4.53 | C:\tools\Apache24\conf\httpd.conf | Apache | Stopped | 80 | -| Nginx | 1.21.6 | C:\tools\nginx-1.21.6\conf\nginx.conf | nginx | Stopped | 80 | +| Apache | 2.4.54 | C:\tools\Apache24\conf\httpd.conf | Apache | Stopped | 80 | +| Nginx | 1.23.0 | C:\tools\nginx-1.23.0\conf\nginx.conf | nginx | Stopped | 80 | ### Visual Studio Enterprise 2019 | Name | Version | Path | | ----------------------------- | --------------- | -------------------------------------------------------------- | -| Visual Studio Enterprise 2019 | 16.11.32228.343 | C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise | +| Visual Studio Enterprise 2019 | 16.11.32630.194 | C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise | #### Workloads, components and extensions: | Package | Version | | ------------------------------------------------------------------------- | --------------- | -| Component.Android.NDK.R16B | 16.11.32228.297 | +| Component.Android.NDK.R16B | 16.11.32629.160 | | Component.Android.SDK25.Private | 16.0.28625.61 | | Component.Android.SDK30 | 16.10.31205.252 | | Component.Ant | 1.9.3.8 | @@ -249,7 +253,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Component.MDD.Android | 16.0.28517.75 | | Component.MDD.Linux | 16.5.29515.121 | | Component.MDD.Linux.GCC.arm | 16.5.29515.121 | -| Component.Microsoft.VisualStudio.LiveShare | 1.0.4438 | +| Component.Microsoft.VisualStudio.LiveShare | 1.0.4440 | | Component.Microsoft.VisualStudio.RazorExtension | 16.10.31205.252 | | Component.Microsoft.VisualStudio.Tools.Applications | 16.0.31110.1 | | Component.Microsoft.VisualStudio.Web.AzureFunctions | 16.10.31205.252 | @@ -265,7 +269,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Component.WixToolset.VisualStudioExtension.Schemas3 | 1.0.0.18 | | Component.WixToolset.VisualStudioExtension.Schemas4 | 1.0.0.18 | | Component.Xamarin | 16.10.31205.252 | -| Component.Xamarin.RemotedSimulator | 16.10.31205.252 | +| Component.Xamarin.RemotedSimulator | 16.11.32629.160 | | Microsoft.Component.Azure.DataLake.Tools | 16.10.31205.252 | | Microsoft.Component.ClickOnce | 16.11.31603.221 | | Microsoft.Component.MSBuild | 16.5.29515.121 | @@ -295,9 +299,9 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 16.3.29207.166 | | Microsoft.Net.ComponentGroup.TargetingPacks.Common | 16.0.28516.191 | | Microsoft.NetCore.Component.DevelopmentTools | 16.10.31303.231 | -| Microsoft.NetCore.Component.Runtime.3.1 | 16.11.32228.343 | -| Microsoft.NetCore.Component.Runtime.5.0 | 16.11.32228.343 | -| Microsoft.NetCore.Component.SDK | 16.11.32228.343 | +| Microsoft.NetCore.Component.Runtime.3.1 | 16.11.32630.194 | +| Microsoft.NetCore.Component.Runtime.6.0 | 16.11.32630.194 | +| Microsoft.NetCore.Component.SDK | 16.11.32630.194 | | Microsoft.NetCore.Component.Web | 16.10.31303.231 | | Microsoft.VisualStudio.Component.AppInsights.Tools | 16.5.29515.121 | | Microsoft.VisualStudio.Component.AspNet45 | 16.10.31205.252 | @@ -363,7 +367,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Microsoft.VisualStudio.Component.TypeScript.4.3 | 16.0.31506.151 | | Microsoft.VisualStudio.Component.Unity | 16.0.28315.86 | | Microsoft.VisualStudio.Component.UWP.VC.ARM64 | 16.3.29207.166 | -| Microsoft.VisualStudio.Component.VC.14.25.x86.x64 | 16.11.31317.239 | +| Microsoft.VisualStudio.Component.VC.14.25.x86.x64 | 16.11.32428.96 | | Microsoft.VisualStudio.Component.VC.140 | 16.10.31205.252 | | Microsoft.VisualStudio.Component.VC.ASAN | 16.10.31205.252 | | Microsoft.VisualStudio.Component.VC.ATL | 16.4.29313.120 | @@ -392,9 +396,9 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre | 16.10.31205.252 | | Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest | 16.0.28517.75 | | Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest | 16.0.28517.75 | -| Microsoft.VisualStudio.Component.VC.Tools.ARM | 16.10.31205.252 | -| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 16.10.31205.252 | -| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 16.11.31317.239 | +| Microsoft.VisualStudio.Component.VC.Tools.ARM | 16.11.32406.258 | +| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 16.11.32406.258 | +| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 16.11.32406.258 | | Microsoft.VisualStudio.Component.VC.v141.ARM | 16.10.31205.252 | | Microsoft.VisualStudio.Component.VC.v141.ARM.Spectre | 16.5.29515.121 | | Microsoft.VisualStudio.Component.VC.v141.ARM64 | 16.10.31205.252 | @@ -442,9 +446,9 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Microsoft.VisualStudio.ComponentGroup.Web | 16.10.31205.180 | | Microsoft.VisualStudio.ComponentGroup.Web.Client | 16.10.31205.180 | | Microsoft.VisualStudio.ComponentGroup.Web.CloudTools | 16.10.31205.180 | -| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 16.10.31205.180 | -| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake | 16.10.31205.180 | -| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 16.10.31205.180 | +| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 16.11.32413.511 | +| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake | 16.11.32413.511 | +| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 16.11.32413.511 | | Microsoft.VisualStudio.Workload.Azure | 16.11.31503.43 | | Microsoft.VisualStudio.Workload.CoreEditor | 16.10.31205.180 | | Microsoft.VisualStudio.Workload.Data | 16.0.28720.110 | @@ -466,11 +470,11 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | ms-biztalk.BizTalk | 3.13.2.0 | | ProBITools.MicrosoftAnalysisServicesModelingProjects | 2.9.18 | | ProBITools.MicrosoftReportProjectsforVisualStudio | 2.6.11 | -| SSIS.SqlServerIntegrationServicesProjects | 3.16 | +| SSIS.SqlServerIntegrationServicesProjects | 4.0 | | VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects | 1.0.2 | -| Windows Driver Kit | 10.0.21381.0 | -| Windows Driver Kit Visual Studio Extension | 10.1.22000.1 | -| Windows Software Development Kit Extension | 10.1.22000.194 | +| Windows Driver Kit | 10.1.22000.1 | +| Windows Driver Kit Visual Studio Extension | 10.0.21381.0 | +| Windows Software Development Kit | 10.1.22000.194 | | WIX Toolset Studio 2019 Extension | 1.0.0.18 | | WixToolset.WixToolsetVisualStudio2019Extension | 1.0.0.18 | @@ -487,10 +491,10 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Microsoft Visual C++ 2013 Minimum Runtime | x86 | 12.0.21005 | | Microsoft Visual C++ 2019 Debug Runtime | x64 | 14.29.30139 | | Microsoft Visual C++ 2019 Debug Runtime | x86 | 14.29.30139 | -| Microsoft Visual C++ 2022 Additional Runtime | x64 | 14.31.31103 | -| Microsoft Visual C++ 2022 Minimum Runtime | x64 | 14.31.31103 | -| Microsoft Visual C++ 2022 Additional Runtime | x86 | 14.31.31103 | -| Microsoft Visual C++ 2022 Minimum Runtime | x86 | 14.31.31103 | +| Microsoft Visual C++ 2022 Additional Runtime | x64 | 14.32.31332 | +| Microsoft Visual C++ 2022 Minimum Runtime | x64 | 14.32.31332 | +| Microsoft Visual C++ 2022 Additional Runtime | x86 | 14.32.31332 | +| Microsoft Visual C++ 2022 Minimum Runtime | x86 | 14.32.31332 | #### Installed Windows SDKs `Location C:\Program Files (x86)\Windows Kits\10\Extension SDKs\WindowsDesktop` @@ -505,33 +509,34 @@ Note: MSYS2 is pre-installed on image but not added to PATH. ### .NET Core SDK `Location C:\Program Files\dotnet\sdk` -- 3.1.120 3.1.202 3.1.302 3.1.417 5.0.104 5.0.212 5.0.303 5.0.406 +- 3.1.120 3.1.202 3.1.302 3.1.421 5.0.104 5.0.214 5.0.303 5.0.408 5.0.410 ### .NET Core Runtime `Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App` -- 3.1.4 3.1.6 3.1.20 3.1.23 5.0.4 5.0.9 5.0.15 +- 3.1.4 3.1.6 3.1.20 3.1.27 5.0.4 5.0.9 5.0.17 6.0.7 `Location: C:\Program Files\dotnet\shared\Microsoft.NETCore.App` -- 3.1.4 3.1.6 3.1.20 3.1.23 5.0.4 5.0.9 5.0.15 +- 3.1.4 3.1.6 3.1.20 3.1.27 5.0.4 5.0.9 5.0.17 6.0.7 `Location: C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App` -- 3.1.4 3.1.6 3.1.20 3.1.23 5.0.4 5.0.9 5.0.15 +- 3.1.4 3.1.6 3.1.20 3.1.27 5.0.4 5.0.9 5.0.17 6.0.7 ### .NET Framework `Type: Developer Pack` -`Location C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX Tools` -- 4.7.2 4.8 +`Location: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX Tools` +- 4.7.2 +- 4.8 ### .NET tools -- nbgv 3.4.255+06fb9182bf +- nbgv 3.5.108+6e793d63d3 ### PowerShell Tools -- PowerShell 7.2.2 +- PowerShell 7.2.5 #### Azure Powershell Modules | Module | Version | Path | | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------ | -| Az | 1.0.0.zip
1.6.0.zip
2.3.2.zip
2.6.0.zip
3.1.0.zip
3.5.0.zip
3.8.0.zip
4.3.0.zip
4.4.0.zip
4.7.0.zip
5.5.0.zip
5.9.0.zip
6.6.0.zip
7.3.2 | C:\Modules\az_\ | +| Az | 1.0.0.zip
1.6.0.zip
2.3.2.zip
2.6.0.zip
3.1.0.zip
3.5.0.zip
3.8.0.zip
4.3.0.zip
4.4.0.zip
4.7.0.zip
5.5.0.zip
5.9.0.zip
6.6.0.zip
7.5.0 | C:\Modules\az_\ | | Azure | 2.1.0 [Installed]
3.8.0.zip
4.2.1.zip
5.1.1.zip
5.3.0 | C:\Modules\azure_\ | | AzureRM | 2.1.0 [Installed]
3.8.0.zip
4.2.1.zip
5.1.1.zip
6.7.0.zip
6.13.1 | C:\Modules\azurerm_\ | ``` @@ -543,50 +548,50 @@ All other versions are saved but not installed. #### Powershell Modules | Module | Version | | ------------------ | ---------------- | -| AWSPowerShell | 4.1.61 | +| AWSPowerShell | 4.1.127 | | DockerMsftProvider | 1.0.0.8 | | MarkdownPS | 1.9 | -| Microsoft.Graph | 1.9.3 | -| Pester | 3.4.0
5.3.1 | +| Microsoft.Graph | 1.10.0 | +| Pester | 3.4.0
5.3.3 | | PowerShellGet | 1.0.0.1
2.2.5 | | PSScriptAnalyzer | 1.20.0 | -| PSWindowsUpdate | 2.2.0.2 | +| PSWindowsUpdate | 2.2.0.3 | | SqlServer | 21.1.18256 | | VSSetup | 2.2.16 | ### Android -| Package Name | Version | -| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Android Command Line Tools | 4.0 | -| Android SDK Build-tools | 32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3
22.0.1
21.1.2
20.0.0
19.1.0 | -| Android SDK Platforms | android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3)
android-22 (rev 2)
android-21 (rev 2)
android-20 (rev 2)
android-19 (rev 4) | -| Android SDK Platform-Tools | 33.0.1 | -| Android SDK Tools | 26.1.1 | -| Android Support Repository | 47.0.0 | -| CMake | 3.10.2
3.18.1 | -| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 | -| Google Play services | 49 | -| Google Repository | 58 | -| NDK | 21.4.7075529 (default)
22.1.7171670
23.1.7779620 | -| SDK Patch Applier v4 | 1 | +| Package Name | Version | +| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Android Command Line Tools | 7.0 | +| Android SDK Build-tools | 33.0.0
32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3
22.0.1
21.1.2
20.0.0
19.1.0 | +| Android SDK Platforms | android-33 (rev 2)
android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3)
android-22 (rev 2)
android-21 (rev 2)
android-20 (rev 2)
android-19 (rev 4) | +| Android SDK Platform-Tools | 33.0.2 | +| Android SDK Tools | 26.1.1 | +| Android Support Repository | 47.0.0 | +| CMake | 3.10.2
3.18.1 | +| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 | +| Google Play services | 49 | +| Google Repository | 58 | +| NDK | 21.4.7075529
23.2.8568313 (default)
24.0.8215888 | +| SDK Patch Applier v4 | 1 | #### Environment variables | Name | Value | | ----------------------- | ---------------------------------------------------------------------------- | | ANDROID_HOME | C:\Android\android-sdk | -| ANDROID_NDK_HOME | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\21.4.7075529 | -| ANDROID_NDK_LATEST_HOME | C:\Android\android-sdk\ndk\23.1.7779620 | -| ANDROID_NDK_PATH | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\21.4.7075529 | -| ANDROID_NDK_ROOT | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\21.4.7075529 | +| ANDROID_NDK_HOME | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\23.2.8568313 | +| ANDROID_NDK_LATEST_HOME | C:\Android\android-sdk\ndk\24.0.8215888 | +| ANDROID_NDK_PATH | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\23.2.8568313 | +| ANDROID_NDK_ROOT | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\23.2.8568313 | | ANDROID_SDK_ROOT | C:\Android\android-sdk | ### Cached Docker images | Repository:Tag | Digest | Created | | ------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ---------- | -| mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 | sha256:3d199041f4a1a21bbe1383dc8535664661908a5024be1be763446d8b1d1a6c07 | 2022-03-08 | -| mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019 | sha256:21ba7b1464733f7076c149ffa40f52a6d207a5ae78e636cf0bb0e19d8c38934b | 2022-03-08 | -| mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019 | sha256:f828494b61e4059d13f3733a899ab6a64a0160408d519721c79273a45bb0bda5 | 2022-03-08 | -| mcr.microsoft.com/windows/nanoserver:1809 | sha256:e508123972ca40c7662658ee1893a8d20f44a9dcd49be3ffa9dec559e525b71d | 2022-03-03 | -| mcr.microsoft.com/windows/servercore:ltsc2019 | sha256:33d7abef52e917a19145873e9ed487055cb55ce3ccf3056ea189b0eb5e4e3683 | 2022-03-03 | +| mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 | sha256:4b76efcb8239febd279f6c6ec4e1b84ea9e0b7e516fd7aba5ca1fa7c26b4643d | 2022-07-12 | +| mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019 | sha256:efb1e706571bbf485e9625b74ee4a81ff0b2e49dec5fec78a775066112548a54 | 2022-07-12 | +| mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019 | sha256:2d315059f5704a09c75dc45e12352e6a53ad6a208fdd5e79c4005dcdac1ac1de | 2022-07-12 | +| mcr.microsoft.com/windows/nanoserver:1809 | sha256:935da2b4778f3a67b484abc895ccbeca847be1625ee0ff10345fa8060dd51e5a | 2022-07-06 | +| mcr.microsoft.com/windows/servercore:ltsc2019 | sha256:26c6c296a4737ba478fe3c3e531b098f89b5562c40b416ba6fb8177ac462d1af | 2022-07-06 | diff --git a/images/win/Windows2022-Readme.md b/images/win/Windows2022-Readme.md index e0ee3788b..568fd6ccc 100644 --- a/images/win/Windows2022-Readme.md +++ b/images/win/Windows2022-Readme.md @@ -1,39 +1,41 @@ | Announcements | |-| -| [[All OSs] Go versions less than 1.16 will be removed and the default will be set to 1.17 on April, 11](https://github.com/actions/virtual-environments/issues/5280) | +| [[all OSs] Android ndk-bundle along with old NDK versions will be deprecated on July, 24](https://github.com/actions/virtual-environments/issues/5879) | +| [[Windows, macOS] LLVM will be updated to version 14 on July, 11](https://github.com/actions/virtual-environments/issues/5835) | +| [[Azure DevOps] Windows-2016 environment removal postponed until June 30, 2022](https://github.com/actions/virtual-environments/issues/5403) | *** # Microsoft Windows Server 2022 Datacenter -- OS Version: 10.0.20348 Build 587 -- Image Version: 20220410.1 +- OS Version: 10.0.20348 Build 768 +- Image Version: 20220710.1 ## Enabled windows optional features - Windows Subsystem for Linux [WSLv1] ## Installed Software ### Language and Runtime -- Bash 4.4.23(2)-release -- Go 1.17.8 -- Julia 1.7.2 -- Kotlin 1.6.20 -- LLVM 13.0.1 -- Node 16.14.2 +- Bash 4.4.23(1)-release +- Go 1.17.11 +- Julia 1.7.3 +- Kotlin 1.7.10 +- LLVM 14.0.6 +- Node 16.16.0 - Perl 5.32.1 -- PHP 8.1.4 -- Python 3.9.12 -- Ruby 3.0.3p157 +- PHP 8.1.8 +- Python 3.9.13 +- Ruby 3.0.4p208 ### Package Management - Chocolatey 1.1.0 -- Composer 2.3.4 -- Helm 3.8.0 -- Miniconda 4.11.0 (pre-installed on the image but not added to PATH) -- NPM 8.5.0 -- NuGet 6.1.0.106 -- pip 22.0.4 (python 3.9) -- Pipx 1.0.0 -- RubyGems 3.2.32 -- Vcpkg (build from master \) -- Yarn 1.22.18 +- Composer 2.3.9 +- Helm 3.8.2 +- Miniconda 4.12.0 (pre-installed on the image but not added to PATH) +- NPM 8.11.0 +- NuGet 6.2.1.2 +- pip 22.1.2 (python 3.9) +- Pipx 1.1.0 +- RubyGems 3.2.33 +- Vcpkg (build from master \<98f8d00e8>) +- Yarn 1.22.19 #### Environment variables | Name | Value | @@ -43,80 +45,81 @@ ### Project Management - Ant 1.10.12 - Gradle 7.4 -- Maven 3.8.5 +- Maven 3.8.6 - sbt 1.6.2 ### Tools -- 7zip 21.07 +- 7zip 22.00 - aria2 1.36.0 -- azcopy 10.14.1 -- Bazel 5.1.1 -- Bazelisk 1.11.0 -- Bicep 0.5.6 +- azcopy 10.15.0 +- Bazel 5.2.0 +- Bazelisk 1.12.0 +- Bicep 0.8.9 - Cabal 3.6.2.0 -- CMake 3.23.0 -- CodeQL Action Bundle 2.8.5 +- CMake 3.23.2 +- CodeQL Action Bundle 2.10.0 - Docker 20.10.7 -- Docker-compose 1.29.2 +- Docker Compose v1 1.29.2 +- Docker Compose v2 2.6.1 - Docker-wincred 0.6.4 -- ghc 9.2.2 -- Git 2.35.1.windows.2 -- Git LFS 3.0.2 -- InnoSetup 6.2.0 +- ghc 9.2.3 +- Git 2.37.0.windows.1 +- Git LFS 3.2.0 +- InnoSetup 6.2.1 - jq 1.6 -- Kind 0.12.0 -- Kubectl 1.23.5 +- Kind 0.14.0 +- Kubectl 1.24.1 - Mercurial 5.0 -- Mingw-w64 8.1.0 +- Mingw-w64 11.2.0 - Newman 5.3.2 - NSIS v3.08 - OpenSSL 1.1.1 -- Packer 1.8.0 -- Pulumi v3.28.0 -- R 4.1.3 -- Service Fabric SDK 8.2.1571.9590 +- Packer 1.8.2 +- Pulumi v3.35.3 +- R 4.2.1 +- Service Fabric SDK 9.0.1028.9590 - Stack 2.7.5 -- Subversion (SVN) 1.14.1 +- Subversion (SVN) 1.14.2 - Swig 4.0.2 -- VSWhere 3.0.1 +- VSWhere 3.0.3 - WinAppDriver 1.2.2009.02003 - WiX Toolset v3.11.2.4516 -- yamllint 1.26.3 +- yamllint 1.27.1 - zstd 1.5.2 ### CLI Tools -- Alibaba Cloud CLI 3.0.115 -- AWS CLI 2.5.4 -- AWS SAM CLI 1.46.0 -- AWS Session Manager CLI 1.2.312.0 -- Azure CLI 2.35.0 +- Alibaba Cloud CLI 3.0.124 +- AWS CLI 2.7.14 +- AWS SAM CLI 1.53.0 +- AWS Session Manager CLI 1.2.339.0 +- Azure CLI 2.38.0 - Azure DevOps CLI extension 0.25.0 -- GitHub CLI 2.7.0 +- GitHub CLI 2.13.0 - Hub CLI 2.14.2 ### Rust Tools -- Cargo 1.60.0 -- Rust 1.60.0 -- Rustdoc 1.60.0 +- Cargo 1.62.0 +- Rust 1.62.0 +- Rustdoc 1.62.0 - Rustup 1.24.3 #### Packages -- bindgen 0.59.2 -- cargo-audit 0.16.0 -- cargo-outdated 0.11.0 -- cbindgen 0.21.0 -- Clippy 0.1.60 +- bindgen 0.60.1 +- cargo-audit 0.17.0 +- cargo-outdated 0.11.1 +- cbindgen 0.24.3 +- Clippy 0.1.62 - Rustfmt 1.4.38 ### Browsers and webdrivers -- Google Chrome 100.0.4896.75 -- Chrome Driver 100.0.4896.60 -- Microsoft Edge 100.0.1185.36 -- Microsoft Edge Driver 100.0.1185.36 -- Mozilla Firefox 99.0 -- Gecko Driver 0.30.0 +- Google Chrome 103.0.5060.114 +- Chrome Driver 103.0.5060.53 +- Microsoft Edge 103.0.1264.49 +- Microsoft Edge Driver 103.0.1264.49 +- Mozilla Firefox 102.0.1 +- Gecko Driver 0.31.0 - IE Driver 3.150.1.1 -- Selenium server 4.1.0 +- Selenium server 4.3.0 #### Environment variables | Name | Value | @@ -129,9 +132,9 @@ ### Java | Version | Vendor | Environment Variable | | ------------------- | --------------- | -------------------- | -| 8.0.322+6 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | -| 11.0.14+101 | Eclipse Temurin | JAVA_HOME_11_X64 | -| 17.0.2+8 | Eclipse Temurin | JAVA_HOME_17_X64 | +| 8.0.332+9 (default) | Eclipse Temurin | JAVA_HOME_8_X64 | +| 11.0.15+10 | Eclipse Temurin | JAVA_HOME_11_X64 | +| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 | ### Shells | Name | Target | @@ -155,29 +158,30 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Version | Architecture | Environment Variable | | ------- | ------------ | -------------------- | | 1.16.15 | x64 | GOROOT_1_16_X64 | -| 1.17.8 (Default) | x64 | GOROOT_1_17_X64 | -| 1.18.0 | x64 | GOROOT_1_18_X64 | +| 1.17.11 (Default) | x64 | GOROOT_1_17_X64 | +| 1.18.3 | x64 | GOROOT_1_18_X64 | #### Node | Version | Architecture | | ------- | ------------ | | 12.22.12 | x64 | -| 14.19.1 | x64 | -| 16.14.2 | x64 | +| 14.20.0 | x64 | +| 16.16.0 | x64 | #### Python | Version | Architecture | | ------- | ------------ | | 3.7.9 | x64, x86 | | 3.8.10 | x64, x86 | -| 3.9.12 (Default) | x64, x86 | -| 3.10.4 | x64, x86 | +| 3.9.13 (Default) | x64, x86 | +| 3.10.5 | x64, x86 | #### Ruby | Version | Architecture | | ------- | ------------ | -| 2.7.5 | x64 | -| 3.0.3 (Default) | x64 | +| 2.7.6 | x64 | +| 3.0.4 (Default) | x64 | +| 3.1.2 | x64 | #### PyPy | Python Version | PyPy Version | @@ -192,7 +196,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Property | Value | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | | ServiceName | postgresql-x64-14 | -| Version | 14.2 | +| Version | 14.4 | | ServiceStatus | Stopped | | ServiceStartType | Disabled | | EnvironmentVariables | PGBIN=C:\Program Files\PostgreSQL\14\bin
PGDATA=C:\Program Files\PostgreSQL\14\data
PGROOT=C:\Program Files\PostgreSQL\14 | @@ -203,237 +207,249 @@ Note: MSYS2 is pre-installed on image but not added to PATH. #### MongoDB | Version | ServiceName | ServiceStatus | ServiceStartType | | ------- | ----------- | ------------- | ---------------- | -| 5.0.6.0 | MongoDB | Running | Automatic | +| 5.0.9.0 | MongoDB | Running | Automatic | ### Database tools -- Azure CosmosDb Emulator 2.14.6.0 -- DacFx 16.0.5400.1 -- MySQL 8.0.28.0 +- Azure CosmosDb Emulator 2.14.9.0 +- DacFx 16.0.6161.0 +- MySQL 8.0.29.0 - SQL OLEDB Driver 18.6.3.0 - SQLPS 1.0 ### Web Servers | Name | Version | ConfigFile | ServiceName | ServiceStatus | ListenPort | | ------ | ------- | ------------------------------------- | ----------- | ------------- | ---------- | -| Apache | 2.4.53 | C:\tools\Apache24\conf\httpd.conf | Apache | Stopped | 80 | -| Nginx | 1.21.6 | C:\tools\nginx-1.21.6\conf\nginx.conf | nginx | Stopped | 80 | +| Apache | 2.4.54 | C:\tools\Apache24\conf\httpd.conf | Apache | Stopped | 80 | +| Nginx | 1.23.0 | C:\tools\nginx-1.23.0\conf\nginx.conf | nginx | Stopped | 80 | ### Visual Studio Enterprise 2022 | Name | Version | Path | | ----------------------------- | -------------- | -------------------------------------------------------- | -| Visual Studio Enterprise 2022 | 17.1.32328.378 | C:\Program Files\Microsoft Visual Studio\2022\Enterprise | +| Visual Studio Enterprise 2022 | 17.2.32616.157 | C:\Program Files\Microsoft Visual Studio\2022\Enterprise | #### Workloads, components and extensions: | Package | Version | | ------------------------------------------------------------------------- | -------------- | -| Component.Android.NDK.R21E | 17.1.32112.364 | -| Component.Android.SDK.MAUI | 17.1.32112.364 | -| Component.Android.SDK25.Private | 17.1.32112.364 | +| Component.Android.NDK.R21E | 17.2.32408.312 | +| Component.Android.SDK.MAUI | 17.2.32408.312 | +| Component.Android.SDK25.Private | 17.2.32408.312 | | Component.Ant | 1.9.3.8 | -| Component.Linux.CMake | 17.1.32112.364 | -| Component.MDD.Android | 17.1.32112.364 | -| Component.MDD.Linux | 17.1.32112.364 | -| Component.MDD.Linux.GCC.arm | 17.1.32112.364 | -| Component.Microsoft.VisualStudio.LiveShare.2022 | 1.0.5117 | -| Component.Microsoft.VisualStudio.RazorExtension | 17.1.32112.364 | -| Component.Microsoft.VisualStudio.Web.AzureFunctions | 17.1.32112.364 | -| Component.Microsoft.Web.LibraryManager | 17.1.32112.364 | -| Component.Microsoft.WebTools.BrowserLink.WebLivePreview | 17.1.70.52095 | +| Component.Linux.CMake | 17.2.32408.312 | +| Component.MDD.Android | 17.2.32408.312 | +| Component.MDD.Linux | 17.2.32408.312 | +| Component.MDD.Linux.GCC.arm | 17.2.32408.312 | +| Component.Microsoft.VisualStudio.LiveShare.2022 | 1.0.5545 | +| Component.Microsoft.VisualStudio.RazorExtension | 17.2.32408.312 | +| Component.Microsoft.VisualStudio.Web.AzureFunctions | 17.2.32408.312 | +| Component.Microsoft.Web.LibraryManager | 17.2.32408.312 | +| Component.Microsoft.WebTools.BrowserLink.WebLivePreview | 17.2.91.23537 | | Component.Microsoft.Windows.CppWinRT | 2.0.210806.1 | -| Component.OpenJDK | 17.1.32112.364 | -| Component.UnityEngine.x64 | 17.1.32112.364 | -| Component.Unreal | 17.1.32112.364 | -| Component.Unreal.Android | 17.1.32112.364 | +| Component.OpenJDK | 17.2.32408.312 | +| Component.UnityEngine.x64 | 17.2.32408.312 | +| Component.Unreal | 17.2.32408.312 | +| Component.Unreal.Android | 17.2.32408.312 | | Component.VSInstallerProjects2022 | 2.0.0 | | Component.WixToolset.VisualStudioExtension.Dev17 | 1.0.0.18 | | Component.WixToolset.VisualStudioExtension.Schemas3 | 1.0.0.18 | | Component.WixToolset.VisualStudioExtension.Schemas4 | 1.0.0.18 | -| Component.Xamarin | 17.1.32112.364 | -| Component.Xamarin.RemotedSimulator | 17.1.32112.364 | -| Microsoft.Component.Azure.DataLake.Tools | 17.1.32112.364 | -| Microsoft.Component.ClickOnce | 17.1.32112.364 | -| Microsoft.Component.CodeAnalysis.SDK | 17.1.32112.364 | -| Microsoft.Component.MSBuild | 17.1.32112.364 | -| Microsoft.Component.NetFX.Native | 17.1.32112.364 | -| Microsoft.Component.PythonTools | 17.1.32112.364 | -| Microsoft.Component.PythonTools.Web | 17.1.32112.364 | -| Microsoft.Component.VC.Runtime.UCRTSDK | 17.1.32112.364 | -| Microsoft.ComponentGroup.Blend | 17.1.32112.364 | -| Microsoft.ComponentGroup.ClickOnce.Publish | 17.1.32112.364 | -| Microsoft.Net.Component.4.5.2.TargetingPack | 17.1.32112.364 | -| Microsoft.Net.Component.4.6.2.TargetingPack | 17.1.32112.364 | -| Microsoft.Net.Component.4.6.TargetingPack | 17.1.32112.364 | -| Microsoft.Net.Component.4.7.1.TargetingPack | 17.1.32112.364 | -| Microsoft.Net.Component.4.7.2.TargetingPack | 17.1.32112.364 | -| Microsoft.Net.Component.4.7.TargetingPack | 17.1.32112.364 | -| Microsoft.Net.Component.4.8.SDK | 17.1.32112.364 | -| Microsoft.Net.Component.4.8.TargetingPack | 17.1.32112.364 | -| Microsoft.Net.ComponentGroup.4.8.DeveloperTools | 17.1.32112.364 | -| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 17.1.32112.364 | -| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 17.1.32112.364 | -| microsoft.net.runtime.mono.tooling | 6.0.322.12309 | -| microsoft.net.sdk.emscripten | 6.0.6.10801 | -| Microsoft.NetCore.Component.DevelopmentTools | 17.1.32112.364 | -| Microsoft.NetCore.Component.Runtime.6.0 | 17.1.32228.430 | -| Microsoft.NetCore.Component.SDK | 17.1.32228.430 | -| Microsoft.NetCore.Component.Web | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.AppInsights.Tools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.AspNet | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.AspNet45 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Azure.AuthoringTools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Azure.ClientLibs | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Azure.Compute.Emulator | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Azure.Powershell | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Azure.ResourceManager.Tools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Azure.Waverton | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Azure.Waverton.BuildTools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.ClassDesigner | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.CodeMap | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Common.Azure.Tools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.CoreEditor | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Debugger.JustInTime | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Debugger.Snapshot | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.DiagnosticTools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.DockerTools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.DotNetModelBuilder | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.DslTools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Embedded | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.EntityFramework | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.FSharp | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.FSharp.Desktop | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.FSharp.WebTemplates | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.GraphDocument | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Graphics | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Graphics.Tools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.IISExpress | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.IntelliCode | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.LinqToSql | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.LiveUnitTesting | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.ManagedDesktop.Core | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Merq | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.MonoDebugger | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.MSODBC.SQL | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Node.Tools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.NuGet | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.NuGet.BuildTools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.PortableLibrary | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Roslyn.Compiler | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Roslyn.LanguageServices | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Sharepoint.Tools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.SQL.CLR | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.SQL.DataSources | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.SQL.SSDT | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.TeamOffice | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.TestTools.CodedUITest | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.TestTools.WebLoadTest | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.TextTemplating | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.TypeScript.TSServer | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Unity | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.UWP.VC.ARM64 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.14.29.16.11.MFC | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.14.29.16.11.MFC.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.14.29.16.11.x86.x64 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.14.29.16.11.x86.x64.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.ASAN | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.ATL | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.ATL.ARM | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.ATL.ARM64 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.ATL.ARM64EC | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.ATL.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.ATLMFC | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.CLI.Support | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.CMake.Project | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.CoreBuildTools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.CoreIde | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.DiagnosticTools | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.Llvm.Clang | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.MFC.ARM | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.MFC.ARM64 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.MFC.ARM64EC | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.Modules.x86.x64 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.Redist.14.Latest | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.Redist.MSM | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.Tools.ARM | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.Tools.ARM64EC | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.v141.ARM | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.v141.ARM.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.v141.ARM64 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.v141.ARM64.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.v141.ATL | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.v141.ATL.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.v141.MFC | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.v141.x86.x64 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VC.v141.x86.x64.Spectre | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.VSSDK | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Wcf.Tooling | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Web | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.WebDeploy | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Windows10SDK | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Windows10SDK.19041 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Windows10SDK.20348 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Windows11SDK.22000 | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.Workflow | 17.1.32112.364 | -| Microsoft.VisualStudio.Component.WslDebugging | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.AzureFunctions | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.UWP.Support | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142 | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.UWP.Xamarin | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64 | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.Web | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.Web.CloudTools | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake | 17.1.32112.364 | -| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.Azure | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.CoreEditor | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.Data | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.DataScience | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.ManagedDesktop | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.ManagedGame | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.NativeCrossPlat | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.NativeDesktop | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.NativeGame | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.NativeMobile | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.NetCrossPlat | 17.1.32126.369 | -| Microsoft.VisualStudio.Workload.NetWeb | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.Node | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.Office | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.Python | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.Universal | 17.1.32112.364 | -| Microsoft.VisualStudio.Workload.VisualStudioExtension | 17.1.32112.364 | -| wasm.tools | 6.0.322.12309 | +| Component.Xamarin | 17.2.32408.312 | +| Component.Xamarin.RemotedSimulator | 17.2.32408.312 | +| Microsoft.Component.Azure.DataLake.Tools | 17.2.32408.312 | +| Microsoft.Component.ClickOnce | 17.2.32408.312 | +| Microsoft.Component.CodeAnalysis.SDK | 17.2.32408.312 | +| Microsoft.Component.MSBuild | 17.2.32408.312 | +| Microsoft.Component.NetFX.Native | 17.2.32408.312 | +| Microsoft.Component.PythonTools | 17.2.32408.312 | +| Microsoft.Component.PythonTools.Web | 17.2.32408.312 | +| Microsoft.Component.VC.Runtime.UCRTSDK | 17.2.32408.312 | +| Microsoft.ComponentGroup.Blend | 17.2.32408.312 | +| Microsoft.ComponentGroup.ClickOnce.Publish | 17.2.32408.312 | +| Microsoft.Net.Component.4.5.2.TargetingPack | 17.2.32408.312 | +| Microsoft.Net.Component.4.6.2.TargetingPack | 17.2.32408.312 | +| Microsoft.Net.Component.4.6.TargetingPack | 17.2.32408.312 | +| Microsoft.Net.Component.4.7.1.TargetingPack | 17.2.32408.312 | +| Microsoft.Net.Component.4.7.2.TargetingPack | 17.2.32408.312 | +| Microsoft.Net.Component.4.7.TargetingPack | 17.2.32408.312 | +| Microsoft.Net.Component.4.8.SDK | 17.2.32408.312 | +| Microsoft.Net.Component.4.8.TargetingPack | 17.2.32408.312 | +| Microsoft.Net.ComponentGroup.4.8.DeveloperTools | 17.2.32408.312 | +| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 17.2.32408.312 | +| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 17.2.32408.312 | +| microsoft.net.runtime.mono.tooling | 6.0.622.26707 | +| microsoft.net.sdk.emscripten | 6.0.6.16102 | +| Microsoft.NetCore.Component.DevelopmentTools | 17.2.32408.312 | +| Microsoft.NetCore.Component.Runtime.6.0 | 17.2.32602.177 | +| Microsoft.NetCore.Component.SDK | 17.2.32602.177 | +| Microsoft.NetCore.Component.Web | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.AppInsights.Tools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.AspNet | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.AspNet45 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Azure.AuthoringTools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Azure.ClientLibs | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Azure.Compute.Emulator | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Azure.Powershell | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Azure.ResourceManager.Tools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Azure.Waverton | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Azure.Waverton.BuildTools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.ClassDesigner | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.CodeMap | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Common.Azure.Tools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.CoreEditor | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Debugger.JustInTime | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Debugger.Snapshot | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.DiagnosticTools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.DockerTools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.DotNetModelBuilder | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.DslTools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Embedded | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.EntityFramework | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.FSharp | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.FSharp.Desktop | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.FSharp.WebTemplates | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.GraphDocument | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Graphics | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Graphics.Tools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.IISExpress | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.IntelliCode | 17.2.32414.121 | +| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 17.2.32602.177 | +| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.LinqToSql | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.LiveUnitTesting | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.ManagedDesktop.Core | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Merq | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.MonoDebugger | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.MSODBC.SQL | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Node.Tools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.NuGet | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.NuGet.BuildTools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.PortableLibrary | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Roslyn.Compiler | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Roslyn.LanguageServices | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Sharepoint.Tools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.SQL.CLR | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.SQL.DataSources | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.SQL.SSDT | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.TeamOffice | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.TestTools.CodedUITest | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.TestTools.WebLoadTest | 17.2.32602.177 | +| Microsoft.VisualStudio.Component.TextTemplating | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.TypeScript.TSServer | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Unity | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.UWP.VC.ARM64 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.UWP.VC.ARM64EC | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.14.29.16.11.MFC | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.14.29.16.11.MFC.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.14.29.16.11.x86.x64 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.14.29.16.11.x86.x64.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.ASAN | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.ATL | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.ATL.ARM | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.ATL.ARM64 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.ATL.ARM64EC | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.ATL.ARM64EC.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.ATL.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.ATLMFC | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.CLI.Support | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.CMake.Project | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.CoreBuildTools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.CoreIde | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.DiagnosticTools | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Llvm.Clang | 17.2.32422.2 | +| Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.MFC.ARM | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.MFC.ARM64 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.MFC.ARM64EC | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.MFC.ARM64EC.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Modules.x86.x64 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Redist.14.Latest | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Redist.MSM | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64EC.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Tools.ARM | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Tools.ARM64EC | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.v141.ARM | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.v141.ARM.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.v141.ARM64 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.v141.ARM64.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.v141.ATL | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.v141.ATL.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.v141.MFC | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.v141.x86.x64 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VC.v141.x86.x64.Spectre | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.VSSDK | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Wcf.Tooling | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Web | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.WebDeploy | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Windows10SDK | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Windows10SDK.19041 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Windows10SDK.20348 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Windows11SDK.22000 | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.Windows11SDK.22621 | 17.2.32526.322 | +| Microsoft.VisualStudio.Component.Workflow | 17.2.32408.312 | +| Microsoft.VisualStudio.Component.WslDebugging | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.AzureFunctions | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 17.2.32422.2 | +| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.UWP.Support | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142 | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.UWP.Xamarin | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64 | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.Web | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.Web.CloudTools | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake | 17.2.32408.312 | +| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.Azure | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.CoreEditor | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.Data | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.DataScience | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.ManagedDesktop | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.ManagedGame | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.NativeCrossPlat | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.NativeDesktop | 17.2.32526.322 | +| Microsoft.VisualStudio.Workload.NativeGame | 17.2.32526.322 | +| Microsoft.VisualStudio.Workload.NativeMobile | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.NetCrossPlat | 17.2.32503.295 | +| Microsoft.VisualStudio.Workload.NetWeb | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.Node | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.Office | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.Python | 17.2.32408.312 | +| Microsoft.VisualStudio.Workload.Universal | 17.2.32526.322 | +| Microsoft.VisualStudio.Workload.VisualStudioExtension | 17.2.32408.312 | +| wasm.tools | 6.0.622.26707 | +| ProBITools.MicrosoftReportProjectsforVisualStudio2022 | 3.0.1 | | VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects | 2.0.0 | +| Windows Driver Kit | 10.1.22621.1 | | WixToolset.WixToolsetVisualStudio2022Extension | 1.0.0.18 | #### Microsoft Visual C++: @@ -443,12 +459,12 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Microsoft Visual C++ 2012 Minimum Runtime | x64 | 11.0.61030 | | Microsoft Visual C++ 2013 Additional Runtime | x64 | 12.0.40660 | | Microsoft Visual C++ 2013 Minimum Runtime | x64 | 12.0.40660 | -| Microsoft Visual C++ 2022 Additional Runtime | x64 | 14.31.31103 | -| Microsoft Visual C++ 2022 Debug Runtime | x64 | 14.31.31103 | -| Microsoft Visual C++ 2022 Minimum Runtime | x64 | 14.31.31103 | -| Microsoft Visual C++ 2022 Additional Runtime | x86 | 14.31.31103 | -| Microsoft Visual C++ 2022 Debug Runtime | x86 | 14.31.31103 | -| Microsoft Visual C++ 2022 Minimum Runtime | x86 | 14.31.31103 | +| Microsoft Visual C++ 2022 Additional Runtime | x64 | 14.32.31332 | +| Microsoft Visual C++ 2022 Debug Runtime | x64 | 14.32.31332 | +| Microsoft Visual C++ 2022 Minimum Runtime | x64 | 14.32.31332 | +| Microsoft Visual C++ 2022 Additional Runtime | x86 | 14.32.31332 | +| Microsoft Visual C++ 2022 Debug Runtime | x86 | 14.32.31332 | +| Microsoft Visual C++ 2022 Minimum Runtime | x86 | 14.32.31332 | #### Installed Windows SDKs `Location C:\Program Files (x86)\Windows Kits\10\Extension SDKs\WindowsDesktop` @@ -456,36 +472,37 @@ Note: MSYS2 is pre-installed on image but not added to PATH. - 10.0.19041.0 - 10.0.20348.0 - 10.0.22000.0 +- 10.0.22621.0 ### .NET Core SDK `Location C:\Program Files\dotnet\sdk` -- 3.1.120 3.1.202 3.1.302 3.1.417 5.0.104 5.0.212 5.0.303 5.0.406 6.0.201 +- 3.1.120 3.1.202 3.1.302 3.1.420 5.0.104 5.0.214 5.0.303 5.0.408 6.0.301 ### .NET Core Runtime `Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App` -- 3.1.4 3.1.6 3.1.20 3.1.22 3.1.23 5.0.4 5.0.9 5.0.14 5.0.15 6.0.3 +- 3.1.4 3.1.6 3.1.20 3.1.26 5.0.4 5.0.9 5.0.17 6.0.6 `Location: C:\Program Files\dotnet\shared\Microsoft.NETCore.App` -- 3.1.4 3.1.6 3.1.20 3.1.22 3.1.23 5.0.4 5.0.9 5.0.14 5.0.15 6.0.3 +- 3.1.4 3.1.6 3.1.20 3.1.26 5.0.4 5.0.9 5.0.17 6.0.6 `Location: C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App` -- 3.1.4 3.1.6 3.1.20 3.1.23 5.0.4 5.0.9 5.0.15 6.0.3 +- 3.1.4 3.1.6 3.1.20 3.1.26 5.0.4 5.0.9 5.0.17 6.0.6 ### .NET Framework `Type: Developer Pack` -`Location C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX Tools` +`Location: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX Tools` - 4.8 ### .NET tools -- nbgv 3.4.255+06fb9182bf +- nbgv 3.5.107+6463ef6068 ### PowerShell Tools -- PowerShell 7.2.2 +- PowerShell 7.2.5 #### Azure Powershell Modules | Module | Version | Path | | ------- | ------------------------------------------------------------------------------- | ------------------------------ | -| Az | 6.6.0.zip
7.3.2 | C:\Modules\az_\ | +| Az | 6.6.0.zip
7.5.0 | C:\Modules\az_\ | | Azure | 2.1.0 [Installed]
3.8.0.zip
4.2.1.zip
5.1.1.zip
5.3.0 | C:\Modules\azure_\ | | AzureRM | 2.1.0 [Installed]
3.8.0.zip
4.2.1.zip
5.1.1.zip
6.7.0.zip
6.13.1 | C:\Modules\azurerm_\ | ``` @@ -497,49 +514,49 @@ All other versions are saved but not installed. #### Powershell Modules | Module | Version | | ------------------ | ---------------- | -| AWSPowerShell | 4.1.61 | +| AWSPowerShell | 4.1.122 | | DockerMsftProvider | 1.0.0.8 | | MarkdownPS | 1.9 | -| Microsoft.Graph | 1.9.3 | -| Pester | 3.4.0
5.3.1 | +| Microsoft.Graph | 1.10.0 | +| Pester | 3.4.0
5.3.3 | | PowerShellGet | 1.0.0.1
2.2.5 | | PSScriptAnalyzer | 1.20.0 | -| PSWindowsUpdate | 2.2.0.2 | +| PSWindowsUpdate | 2.2.0.3 | | SqlServer | 21.1.18256 | | VSSetup | 2.2.16 | ### Android -| Package Name | Version | -| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Android Command Line Tools | 4.0 | -| Android Emulator | 31.2.9 | -| Android SDK Build-tools | 32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 | -| Android SDK Platforms | android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) | -| Android SDK Platform-Tools | 33.0.1 | -| Android Support Repository | 47.0.0 | -| CMake | 3.18.1 | -| Google Play services | 49 | -| Google Repository | 58 | -| NDK | 21.4.7075529 (default)
22.1.7171670
23.1.7779620 | -| SDK Patch Applier v4 | 1 | +| Package Name | Version | +| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Android Command Line Tools | 7.0 | +| Android Emulator | 31.2.10 | +| Android SDK Build-tools | 33.0.0
32.0.0
31.0.0
30.0.0 30.0.1 30.0.2 30.0.3
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 | +| Android SDK Platforms | android-33 (rev 1)
android-32 (rev 1)
android-31 (rev 1)
android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) | +| Android SDK Platform-Tools | 33.0.2 | +| Android Support Repository | 47.0.0 | +| CMake | 3.18.1 | +| Google Play services | 49 | +| Google Repository | 58 | +| NDK | 21.4.7075529
23.2.8568313 (default)
24.0.8215888 | +| SDK Patch Applier v4 | 1 | #### Environment variables | Name | Value | | ----------------------- | ---------------------------------------------------------------------------- | | ANDROID_HOME | C:\Android\android-sdk | -| ANDROID_NDK_HOME | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\21.4.7075529 | -| ANDROID_NDK_LATEST_HOME | C:\Android\android-sdk\ndk\23.1.7779620 | -| ANDROID_NDK_PATH | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\21.4.7075529 | -| ANDROID_NDK_ROOT | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\21.4.7075529 | +| ANDROID_NDK_HOME | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\23.2.8568313 | +| ANDROID_NDK_LATEST_HOME | C:\Android\android-sdk\ndk\24.0.8215888 | +| ANDROID_NDK_PATH | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\23.2.8568313 | +| ANDROID_NDK_ROOT | C:\Android\android-sdk\ndk-bundle -> C:\Android\android-sdk\ndk\23.2.8568313 | | ANDROID_SDK_ROOT | C:\Android\android-sdk | ### Cached Docker images | Repository:Tag | Digest | Created | | ------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ---------- | -| mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2022 | sha256:1c06a5c6b2f4ef64ca2efa246a8d8e9882f3d44e2f874dccfa71e2c6b3692e6c | 2022-03-08 | -| mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2022 | sha256:8a3249fe6b8d2df1631df08097b776e4bae524b8ab6f1ede8f9a10e0302bd30f | 2022-03-08 | -| mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2022 | sha256:ba09875e33b4d23d202edee998e8736e921224a53ee32b6e8cebe9be177b886b | 2022-03-08 | -| mcr.microsoft.com/windows/nanoserver:ltsc2022 | sha256:496f77fac70d6e109d6673aaf640a7d5b6bfe2f0f861735f72c0f66840ba7f71 | 2022-03-03 | -| mcr.microsoft.com/windows/servercore:ltsc2022 | sha256:343f8c95ec604913c74597f6d541e388f83bc0ce373ee8ea5bb26d268879f338 | 2022-03-03 | +| mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2022 | sha256:31c66a698116346470a864eb3f58698a422e99e688a0b1b51fb178e2541ddc47 | 2022-06-14 | +| mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2022 | sha256:486be6bcb80ad5bae9854f7a022601fd93cf58b7b26fbdc70ca8533b88852ac7 | 2022-06-14 | +| mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2022 | sha256:6c490f4528cb625c60aa119669830639ae3988c3c23dfb2f94a4ef19df2eb606 | 2022-06-14 | +| mcr.microsoft.com/windows/nanoserver:ltsc2022 | sha256:5f36a555eeb0151d5c00c14b01c3d39d9e5dffc36e5b2039cfa6041b6dac2480 | 2022-06-09 | +| mcr.microsoft.com/windows/servercore:ltsc2022 | sha256:b2162caa6da208d9dc10c99e18ee04aadcc4429b219cb316ea404fa9c4de53d1 | 2022-06-09 | diff --git a/images/win/post-generation/GenerateIISExpressCertificate.ps1 b/images/win/post-generation/GenerateIISExpressCertificate.ps1 new file mode 100644 index 000000000..609bbb40a --- /dev/null +++ b/images/win/post-generation/GenerateIISExpressCertificate.ps1 @@ -0,0 +1,40 @@ +$friendlyName = "IIS Express Development Certificate" +$certStore = "Cert:\LocalMachine\My" +$oldCert = Get-ChildItem $certStore | Where-Object FriendlyName -match $friendlyName + +if(-not $oldCert) { + Write-Host "$friendlyName certificate not found" + return +} + +Write-Host "Removing $($oldCert.Thumbprint) certificate" +Remove-Item -Path $oldCert.PSPath -Confirm:$false + +Write-Host "Creating $friendlyName certificate" +$selfSignedCertParam = @{ + Subject = "localhost" + DnsName = "localhost" + KeyAlgorithm = "RSA" + KeyLength = 2048 + NotBefore = (Get-Date) + NotAfter = (Get-Date).AddYears(5) + CertStoreLocation = $certStore + FriendlyName = $friendlyName + HashAlgorithm = "SHA256" + KeyUsage = "DigitalSignature", "KeyEncipherment", "DataEncipherment" + TextExtension = @("2.5.29.37={text}1.3.6.1.5.5.7.3.1") +} +$cert = New-SelfSignedCertificate @selfSignedCertParam + +# The app ID is the IIS Express app ID +$certThumbprint = $cert.Thumbprint +$appId = "{214124cd-d05b-4309-9af9-9caa44b2b74a}" +$startPort = 44300 +$endPort = 44399 + +Write-Host "Binding ${certThumbprint} certificate using netsh port=${startPort}:${endPort} and appID=${appId}" +$startPort..$endPort | ForEach-Object { + $port = $_ + cmd /c "netsh http delete sslcert ipport=0.0.0.0:$port > nul 2>&1" + cmd /c "netsh http add sslcert ipport=0.0.0.0:$port certhash=$certThumbprint appid=$appId certstorename=MY > nul 2>&1" +} diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 index 94cd2ea4b..cdd4ea5b3 100644 --- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 +++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1 @@ -17,6 +17,7 @@ Export-ModuleMember -Function @( 'Set-DefaultPath' 'Add-MachinePathItem' 'Add-DefaultPathItem' + 'Add-DefaultItem' 'Get-SystemVariable' 'Get-DefaultVariable' 'Set-SystemVariable' diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 index 6de28c6d0..3bb83975b 100644 --- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 @@ -239,6 +239,17 @@ function Get-VsixExtenstionFromMarketplace { $request -match 'Microsoft\.VisualStudio\.Services\.Payload\.FileName":"(?[^"]*)' | Out-Null $fileName = $Matches.filename $downloadUri = $assetUri + "/" + $fileName + # ProBITools.MicrosoftReportProjectsforVisualStudio2022 has different URL https://github.com/actions/virtual-environments/issues/5340 + switch ($ExtensionMarketPlaceName) { + "ProBITools.MicrosoftReportProjectsforVisualStudio2022" { + $fileName = "Microsoft.DataTools.ReportingServices.vsix" + $downloadUri = "https://download.microsoft.com/download/b/b/5/bb57be7e-ae72-4fc0-b528-d0ec224997bd/Microsoft.DataTools.ReportingServices.vsix" + } + "ProBITools.MicrosoftAnalysisServicesModelingProjects2022" { + $fileName = "Microsoft.DataTools.AnalysisServices.vsix" + $downloadUri = "https://download.microsoft.com/download/b/b/e/bbe90a41-d7c0-432b-9866-89f698405683/Microsoft.DataTools.AnalysisServices.vsix" + } + } return [PSCustomObject] @{ "ExtensionName" = $extensionName @@ -584,13 +595,21 @@ function Get-GitHubPackageDownloadUrl { if ($Version -eq "latest") { $Version = "*" } + $json = Invoke-RestMethod -Uri "https://api.github.com/repos/${RepoOwner}/${RepoName}/releases?per_page=${SearchInCount}" - $versionToDownload = ($json.Where{ $_.prerelease -eq $IsPrerelease }.tag_name | - Select-String -Pattern "\d+.\d+.\d+").Matches.Value | - Where-Object {$_ -Like "${Version}.*" -or $_ -eq ${Version}} | - Sort-Object {[version]$_} | + $tags = $json.Where{ $_.prerelease -eq $IsPrerelease -and $_.assets }.tag_name + $versionToDownload = $tags | + Select-String -Pattern "\d+.\d+.\d+" | + ForEach-Object { $_.Matches.Value } | + Where-Object { $_ -like "$Version.*" -or $_ -eq $Version } | + Sort-Object { [version]$_ } | Select-Object -Last 1 + if (-not $versionToDownload) { + Write-Host "Failed to get a tag name from ${RepoOwner}/${RepoName} releases" + exit 1 + } + $UrlFilter = $UrlFilter -replace "{BinaryName}",$BinaryName -replace "{Version}",$versionToDownload $downloadUrl = $json.assets.browser_download_url -like $UrlFilter diff --git a/images/win/scripts/ImageHelpers/PathHelpers.ps1 b/images/win/scripts/ImageHelpers/PathHelpers.ps1 index f8dc0ecb9..df7ce10ed 100644 --- a/images/win/scripts/ImageHelpers/PathHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/PathHelpers.ps1 @@ -75,7 +75,7 @@ function Set-DefaultVariable { $key = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey($Name, $Writable) $key.SetValue($DefaultVariable, $Value, $Kind) - Get-DefaultVariable $DefaultVariable + Get-DefaultVariable -DefaultVariable $DefaultVariable -Name $Name $key.Handle.Close() [System.GC]::Collect() } @@ -135,6 +135,25 @@ function Add-DefaultPathItem { Disconnect-Hive } +function Add-DefaultItem { + param( + [string]$DefaultVariable, + [string]$Value, + [string]$Name = "DEFAULT\Environment", + [string]$Kind = "ExpandString", + [bool]$Writable = $true + ) + + Connect-Hive + $regPath = Join-Path "HKLM:\" $Name + if (-not (Test-Path $Name)) { + Write-Host "Creating $regPath key" + New-Item -Path $regPath -Force | Out-Null + } + Set-DefaultVariable -DefaultVariable $DefaultVariable -Value $Value -Name $Name -Kind $Kind -Writable $Writable + Disconnect-Hive +} + function New-ItemPath { param ( [string]$Path diff --git a/images/win/scripts/Installers/Finalize-VM.ps1 b/images/win/scripts/Installers/Finalize-VM.ps1 index dd78ba826..f759a0980 100644 --- a/images/win/scripts/Installers/Finalize-VM.ps1 +++ b/images/win/scripts/Installers/Finalize-VM.ps1 @@ -6,6 +6,13 @@ Write-Host "Cleanup WinSxS" Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase +# Sets the default install version to v1 for new distributions +# https://github.com/actions/virtual-environments/issues/5760 +if (Test-IsWin22) { + Write-Host "Sets the default install version to v1 for new distributions" + Add-DefaultItem -DefaultVariable "DefaultVersion" -Value 1 -Name "DEFAULT\Software\Microsoft\Windows\CurrentVersion\Lxss" -Kind "DWord" +} + Write-Host "Clean up various directories" @( "$env:SystemDrive\Recovery", diff --git a/images/win/scripts/Installers/Install-AndroidSDK.ps1 b/images/win/scripts/Installers/Install-AndroidSDK.ps1 index 6f70e77a4..7ec7812de 100644 --- a/images/win/scripts/Installers/Install-AndroidSDK.ps1 +++ b/images/win/scripts/Installers/Install-AndroidSDK.ps1 @@ -3,8 +3,24 @@ ## Desc: Install and update Android SDK and tools ################################################################################ -# install command-line tools -$cmdlineToolsUrl = "https://dl.google.com/android/repository/commandlinetools-win-7302050_latest.zip" +# get packages to install from the toolset +$androidToolset = (Get-ToolsetContent).android + +# install latest command-line tools +$cmdlineToolsVersion = $androidToolset."cmdline-tools" +if ($cmdlineToolsVersion -eq "latest") { + $googlePkgs = Invoke-RestMethod "https://dl.google.com/android/repository/repository2-1.xml" + $cmdlineToolsVersion = $googlePkgs.SelectSingleNode( + "//remotePackage[@path='cmdline-tools;latest']/archives/archive/complete/url[starts-with(text(), 'commandlinetools-win-')]" + ).'#text' + + if (-not $cmdlineToolsVersion) { + Write-Host "Failed to parse latest command-line tools version" + exit 1 + } +} + +$cmdlineToolsUrl = "https://dl.google.com/android/repository/${cmdlineToolsVersion}" $cmdlineToolsArchPath = Start-DownloadWithRetry -Url $cmdlineToolsUrl -Name "cmdline-tools.zip" $sdkInstallRoot = "C:\Program Files (x86)\Android\android-sdk" $sdkRoot = "C:\Android\android-sdk" @@ -50,9 +66,6 @@ Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager ` -AndroidSDKRootPath $sdkRoot ` -AndroidPackages "platform-tools" -# get packages to install from the toolset -$androidToolset = (Get-ToolsetContent).android - # get packages info $androidPackages = Get-AndroidPackages -AndroidSDKManagerPath $sdkManager diff --git a/images/win/scripts/Installers/Install-Docker.ps1 b/images/win/scripts/Installers/Install-Docker.ps1 index fa0dcaf63..7d5e18a41 100644 --- a/images/win/scripts/Installers/Install-Docker.ps1 +++ b/images/win/scripts/Installers/Install-Docker.ps1 @@ -1,7 +1,7 @@ ################################################################################ ## File: Install-Docker.ps1 ## Desc: Install Docker. -## Must be an independent step becuase it requires a restart before we +## Must be an independent step because it requires a restart before we ## can continue. ################################################################################ @@ -11,9 +11,13 @@ Write-Host "Install-Package Docker" Install-Package -Name docker -ProviderName DockerMsftProvider -RequiredVersion 20.10.7 -Force Start-Service docker -Write-Host "Install-Package Docker-Compose" +Write-Host "Install-Package Docker-Compose v1" Choco-Install -PackageName docker-compose +Write-Host "Install-Package Docker-Compose v2" +$dockerComposev2Url = "https://github.com/docker/compose/releases/latest/download/docker-compose-windows-x86_64.exe" +Start-DownloadWithRetry -Url $dockerComposev2Url -Name docker-compose.exe -DownloadPath "C:\Program Files\Docker\cli-plugins" + Write-Host "Install docker-wincred" $dockerCredLatestRelease = Invoke-RestMethod -Uri "https://api.github.com/repos/docker/docker-credential-helpers/releases/latest" $dockerCredDownloadUrl = $dockerCredLatestRelease.assets.browser_download_url -match "docker-credential-wincred-.+\.zip" | Select-Object -First 1 diff --git a/images/win/scripts/Installers/Install-Git.ps1 b/images/win/scripts/Installers/Install-Git.ps1 index 2a0c769a0..e2d3cd435 100644 --- a/images/win/scripts/Installers/Install-Git.ps1 +++ b/images/win/scripts/Installers/Install-Git.ps1 @@ -2,10 +2,14 @@ ## File: Install-Git.ps1 ## Desc: Install Git for Windows ################################################################################ +Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1" # Install git -# Temporary hardcode version 2.35.1 due to the issue with the actions\checkout https://github.com/actions/checkout/issues/760 -Choco-Install -PackageName git -ArgumentList '--version', "2.35.1.2", '--installargs="/VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /o:PathOption=CmdTools /o:BashTerminalOption=ConHost /o:EnableSymlinks=Enabled /COMPONENTS=gitlfs"' +Choco-Install -PackageName git -ArgumentList '--installargs="/VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /o:PathOption=CmdTools /o:BashTerminalOption=ConHost /o:EnableSymlinks=Enabled /COMPONENTS=gitlfs"' + +Update-SessionEnvironment + +git config --system --add safe.directory "*" # Install hub Choco-Install -PackageName hub @@ -21,7 +25,7 @@ if (Test-IsWin16) { } # Add well-known SSH host keys to ssh_known_hosts -ssh-keyscan -t rsa github.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts" +ssh-keyscan -t rsa,ecdsa,ed25519 github.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts" ssh-keyscan -t rsa ssh.dev.azure.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts" Invoke-PesterTests -TestFile "Git" diff --git a/images/win/scripts/Installers/Install-JavaTools.ps1 b/images/win/scripts/Installers/Install-JavaTools.ps1 index 0cc61a7b4..5d531c4ea 100644 --- a/images/win/scripts/Installers/Install-JavaTools.ps1 +++ b/images/win/scripts/Installers/Install-JavaTools.ps1 @@ -148,7 +148,7 @@ setx M2_REPO $m2_repo /M setx MAVEN_OPTS $maven_opts /M # Download cobertura jars -$uri = 'https://downloads.sourceforge.net/project/cobertura/cobertura/2.1.1/cobertura-2.1.1-bin.zip' +$uri = 'https://repo1.maven.org/maven2/net/sourceforge/cobertura/cobertura/2.1.1/cobertura-2.1.1-bin.zip' $coberturaPath = "C:\cobertura-2.1.1" $archivePath = Start-DownloadWithRetry -Url $uri -Name "cobertura.zip" diff --git a/images/win/scripts/Installers/Install-Mingw64.ps1 b/images/win/scripts/Installers/Install-Mingw64.ps1 index 15bb31825..6d9043a80 100644 --- a/images/win/scripts/Installers/Install-Mingw64.ps1 +++ b/images/win/scripts/Installers/Install-Mingw64.ps1 @@ -3,7 +3,8 @@ ## Desc: Install GNU tools for Windows ################################################################################ -Choco-Install -PackageName mingw -ArgumentList "--version=8.1.0" +$toolsetVersion = (Get-ToolsetContent).mingw.version +Choco-Install -PackageName mingw -ArgumentList "--version=$toolsetVersion" # Make a copy of mingw32-make.exe to make.exe, which is a more discoverable name # and so the same command line can be used on Windows as on macOS and Linux diff --git a/images/win/scripts/Installers/Install-WDK.ps1 b/images/win/scripts/Installers/Install-WDK.ps1 index 139f50c13..9528be456 100644 --- a/images/win/scripts/Installers/Install-WDK.ps1 +++ b/images/win/scripts/Installers/Install-WDK.ps1 @@ -4,34 +4,41 @@ ################################################################################ # Requires Windows SDK with the same version number as the WDK -if (Test-IsWin19) -{ +if (Test-IsWin22) { + # SDK available through Visual Studio + $wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2196230" + $FilePath = "C:\Program Files (x86)\Windows Kits\10\Vsix\VS2022\*\WDK.vsix" + $VSver = "2022" +} elseif (Test-IsWin19) { $winSdkUrl = "https://go.microsoft.com/fwlink/?linkid=2173743" $wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2166289" $FilePath = "C:\Program Files (x86)\Windows Kits\10\Vsix\VS2019\WDK.vsix" $VSver = "2019" -} -elseif (Test-IsWin16) -{ +} elseif (Test-IsWin16) { $winSdkUrl = "https://go.microsoft.com/fwlink/p/?LinkID=2023014" $wdkUrl = "https://go.microsoft.com/fwlink/?linkid=2026156" $FilePath = "C:\Program Files (x86)\Windows Kits\10\Vsix\WDK.vsix" $VSver = "2017" -} -else -{ - throw "Invalid version of Visual Studio is found. Either 2017 or 2019 are required" +} else { + throw "Invalid version of Visual Studio is found. Either 2017,2019 or 2022 are required" } $argumentList = ("/features", "+", "/quiet") -# `winsdksetup.exe /features + /quiet` installs all features without showing the GUI -Install-Binary -Url $winSdkUrl -Name "winsdksetup.exe" -ArgumentList $argumentList +if ((Test-IsWin16) -or (Test-IsWin19)) { + # `winsdksetup.exe /features + /quiet` installs all features without showing the GUI + Install-Binary -Url $winSdkUrl -Name "winsdksetup.exe" -ArgumentList $argumentList +} # `wdksetup.exe /features + /quiet` installs all features without showing the GUI Install-Binary -Url $wdkUrl -Name "wdksetup.exe" -ArgumentList $argumentList # Need to install the VSIX to get the build targets when running VSBuild -Install-VsixExtension -FilePath $FilePath -Name "WDK.vsix" -VSversion $VSver -InstallOnly +# Windows 2022 - Skip installation due to a regression +# https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk +if ((Test-IsWin16) -or (Test-IsWin19)) { + $FilePath = Resolve-Path -Path $FilePath + Install-VsixExtension -FilePath $FilePath -Name "WDK.vsix" -VSversion $VSver -InstallOnly +} Invoke-PesterTests -TestFile "WDK" diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 index a4379c0b5..980dd2dc7 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 @@ -60,7 +60,7 @@ function Get-CbindgenVersion { } function Get-CargoAuditVersion { - return cargo audit --version + return cargo-audit --version } function Get-CargoOutdatedVersion { @@ -226,15 +226,14 @@ function Get-DotnetRuntimes { function Get-DotnetFrameworkTools { $path = "${env:ProgramFiles(x86)}\Microsoft SDKs\Windows\*\*\NETFX*" - $frameworkVersions = @() - Get-ChildItem -Path $path -Directory | ForEach-Object { - $frameworkVersions += ($_.Name -Split(" "))[1] - $frameworkPath = $_.Fullname -Replace " \d+\.\d+(\.\d+)?", " " - } + Get-ChildItem -Path $path -Directory | Group-Object { + $_.Fullname -Replace " \d+\.\d+(\.\d+)?", " " + } | ForEach-Object { [PSCustomObject]@{ - Versions = $frameworkVersions -Join " " - Path = $frameworkPath + Versions = $_.Group.Name | ForEach-Object { $_.Split(" ")[1] } + Path = $_.Name } + } } function Get-PowerShellAzureModules { diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 index cdff2962a..cf34a2fa4 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 @@ -94,6 +94,7 @@ $toolsList = @( (Get-CodeQLBundleVersion), (Get-DockerVersion), (Get-DockerComposeVersion), + (Get-DockerComposeVersionV2), (Get-DockerWincredVersion), (Get-GHCVersion), (Get-GitVersion), @@ -266,12 +267,15 @@ Get-DotnetRuntimes | Foreach-Object { } $markdown += New-MDHeader ".NET Framework" -Level 3 -$frameworks = Get-DotnetFrameworkTools $markdown += "``Type: Developer Pack``" $markdown += New-MDNewLine -$markdown += "``Location $($frameworks.Path)``" -$markdown += New-MDNewLine -$markdown += New-MDList -Lines $frameworks.Versions -Style Unordered +Get-DotnetFrameworkTools | Foreach-Object { + $path = $_.Path + $versions = $_.Versions + $markdown += "``Location: $path``" + $markdown += New-MDNewLine + $markdown += New-MDList -Lines $versions -Style Unordered +} $markdown += New-MDHeader ".NET tools" -Level 3 $tools = Get-DotnetTools diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1 index d714f83c7..e85b328fe 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1 @@ -31,7 +31,7 @@ function Get-BicepVersion { } function Get-RVersion { - ($(cmd /c "Rscript --version 2>&1") | Out-String) -match "R scripting front-end version (?\d+\.\d+\.\d+)" | Out-Null + ($(cmd /c "Rscript --version 2>&1") | Out-String) -match "Rscript .* version (?\d+\.\d+\.\d+)" | Out-Null $rVersion = $Matches.Version return "R $rVersion" } @@ -56,9 +56,13 @@ function Get-DockerVersion { } function Get-DockerComposeVersion { - $(docker-compose --version) -match "docker-compose version (?\d+\.\d+\.\d+)" | Out-Null - $dockerComposeVersion = $Matches.Version - return "Docker-compose $dockerComposeVersion" + $dockerComposeVersion = docker-compose version --short + return "Docker Compose v1 $dockerComposeVersion" +} + +function Get-DockerComposeVersionV2 { + $dockerComposeVersion = docker compose version --short + return "Docker Compose v2 $dockerComposeVersion" } function Get-DockerWincredVersion { @@ -87,8 +91,7 @@ function Get-JQVersion { } function Get-KubectlVersion { - $(kubectl version --client=true --short=true) -match "Client Version: v(?.+)" | Out-Null - $kubectlVersion = $Matches.Version + $kubectlVersion = (kubectl version --client --output=json | ConvertFrom-Json).clientVersion.gitVersion.Replace('v','') return "Kubectl $kubectlVersion" } @@ -99,7 +102,7 @@ function Get-KindVersion { } function Get-MinGWVersion { - (gcc --version | Select-String -Pattern "MinGW-W64 project") -match "(?\d+\.\d+\.\d+)" | Out-Null + (gcc --version | Select-String -Pattern "MinGW-W64") -match "(?\d+\.\d+\.\d+)" | Out-Null $mingwVersion = $Matches.Version return "Mingw-w64 $mingwVersion" } @@ -274,13 +277,17 @@ function Get-GHVersion { } function Get-VisualCPPComponents { - $vcpp = Get-CimInstance -ClassName Win32_Product -Filter "Name LIKE 'Microsoft Visual C++%'" - $vcpp | Sort-Object Name, Version | ForEach-Object { - $isMatch = $_.Name -match "^(?Microsoft Visual C\+\+ \d{4})\s+(?\w{3})\s+(?.+)\s+-" + $regKeys = @( + "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" + "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" + ) + $vcpp = Get-ItemProperty -Path $regKeys | Where-Object DisplayName -like "Microsoft Visual C++*" + $vcpp | Sort-Object DisplayName, DisplayVersion | ForEach-Object { + $isMatch = $_.DisplayName -match "^(?Microsoft Visual C\+\+ \d{4})\s+(?\w{3})\s+(?.+)\s+-" if ($isMatch) { $name = '{0} {1}' -f $matches["Name"], $matches["Ext"] $arch = $matches["Arch"].ToLower() - $version = $_.Version + $version = $_.DisplayVersion [PSCustomObject]@{ Name = $name Architecture = $arch @@ -299,4 +306,4 @@ function Get-SwigVersion { (swig -version | Out-String) -match "version (?\d+\.\d+\.\d+)" | Out-Null $swigVersion = $Matches.Version return "Swig $swigVersion" -} \ No newline at end of file +} diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.VisualStudio.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.VisualStudio.psm1 index b085433c3..a29f7e8c9 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.VisualStudio.psm1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.VisualStudio.psm1 @@ -54,9 +54,9 @@ function Get-VisualStudioExtensions { # SDK if (Test-IsWin19) { - $sdkPackageVersion = Get-SDKVersion + $sdkVersion = Get-SDKVersion $sdkPackages = @( - @{Package = 'Windows Software Development Kit Extension'; Version = $sdkPackageVersion} + @{Package = 'Windows Software Development Kit'; Version = $sdkVersion} ) } @@ -68,14 +68,21 @@ function Get-VisualStudioExtensions { ) # WDK - $wdkPackageVersion = Get-VSExtensionVersion -packageName 'Microsoft.Windows.DriverKit' - $wdkExtensionVersion = Get-WDKVersion + $wdkVersion = Get-WDKVersion + $wdkExtensionVersion = Get-VSExtensionVersion -packageName 'Microsoft.Windows.DriverKit' $wdkPackages = @( - @{Package = 'Windows Driver Kit'; Version = $wdkPackageVersion} + @{Package = 'Windows Driver Kit'; Version = $wdkVersion} @{Package = 'Windows Driver Kit Visual Studio Extension'; Version = $wdkExtensionVersion} ) } - + + if (Test-IsWin22) { + # WDK + $wdkVersion = Get-WDKVersion + $wdkPackages = @( + @{Package = 'Windows Driver Kit'; Version = $wdkVersion} + ) + } $extensions = @( $vsixs diff --git a/images/win/scripts/Tests/Docker.Tests.ps1 b/images/win/scripts/Tests/Docker.Tests.ps1 index 1a87c924f..4e6a27cde 100644 --- a/images/win/scripts/Tests/Docker.Tests.ps1 +++ b/images/win/scripts/Tests/Docker.Tests.ps1 @@ -10,6 +10,10 @@ Describe "Docker" { "docker-credential-wincred version" | Should -ReturnZeroExitCode } + It "docker compose v2" { + "docker compose version" | Should -ReturnZeroExitCode + } + It "docker service is up" { "docker images" | Should -ReturnZeroExitCode } diff --git a/images/win/scripts/Tests/LLVM.Tests.ps1 b/images/win/scripts/Tests/LLVM.Tests.ps1 index a20fd9609..c7a5df40e 100644 --- a/images/win/scripts/Tests/LLVM.Tests.ps1 +++ b/images/win/scripts/Tests/LLVM.Tests.ps1 @@ -1,7 +1,10 @@ Describe "Clang/LLVM" { - It "Clang/LLVM installed and version is correct" { + BeforeAll { $toolsetVersion = (Get-ToolsetContent).llvm.version + } + + It "Clang/LLVM installed and version is correct" { $clangVersion = clang --version $clangVersion[0] | Should -BeLike "*${toolsetVersion}*" } -} \ No newline at end of file +} diff --git a/images/win/scripts/Tests/Tools.Tests.ps1 b/images/win/scripts/Tests/Tools.Tests.ps1 index 4476a43b3..08f27f715 100644 --- a/images/win/scripts/Tests/Tools.Tests.ps1 +++ b/images/win/scripts/Tests/Tools.Tests.ps1 @@ -40,7 +40,7 @@ Describe "R" { Describe "DACFx" { It "DACFx" { - (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*).DisplayName -Contains "Microsoft SQL Server Data-Tier Application Framework (x64)" | Should -BeTrue + (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*).DisplayName -Contains "Microsoft SQL Server Data-Tier Application Framework" | Should -BeTrue $sqlPackagePath = 'C:\Program Files\Microsoft SQL Server\160\DAC\bin\SqlPackage.exe' "${sqlPackagePath}" | Should -Exist } @@ -103,8 +103,7 @@ Describe "GoogleCloudSDK" -Skip:(Test-IsWin22) { Describe "NET48" { It "NET48" { - $netPath = (Get-DotnetFrameworkTools).Path.Split("<")[0] - ${netPath} + "4.8 Tools" | Should -Exist + (Get-DotnetFrameworkTools).Versions | Should -Contain "4.8" } } diff --git a/images/win/scripts/Tests/WDK.Tests.ps1 b/images/win/scripts/Tests/WDK.Tests.ps1 index 6c5dc3295..b58d018a1 100644 --- a/images/win/scripts/Tests/WDK.Tests.ps1 +++ b/images/win/scripts/Tests/WDK.Tests.ps1 @@ -1,11 +1,13 @@ -Describe "WDK" -Skip:(Test-IsWin22) { - It "WDK exists" { - $WDKVersion = (Get-CimInstance -ClassName Win32_Product -Filter "Name = 'Windows Driver Kit'").Version - $WDKVersion| Should -Not -BeNullOrEmpty - } +Describe "WDK" { + It "WDK exists" { + $regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" + $installedApplications = Get-ItemProperty -Path $regKey + $WDKVersion = $installedApplications | Where-Object DisplayName -eq 'Windows Driver Kit' | Select-Object -First 1 -ExpandProperty DisplayVersion + $WDKVersion | Should -Not -BeNullOrEmpty + } - It "WDK version from system" { - $version = Get-VSExtensionVersion -packageName "Microsoft.Windows.DriverKit" - $version | Should -Not -BeNullOrEmpty - } + It "Windows Driver Kit VSIX extension" -Skip:(Test-IsWin22) { + $version = Get-VSExtensionVersion -packageName "Microsoft.Windows.DriverKit" + $version | Should -Not -BeNullOrEmpty + } } diff --git a/images/win/toolsets/toolset-2016.json b/images/win/toolsets/toolset-2016.json index 285c9582c..1a0aaab6d 100644 --- a/images/win/toolsets/toolset-2016.json +++ b/images/win/toolsets/toolset-2016.json @@ -157,6 +157,7 @@ ] }, "android": { + "cmdline-tools": "latest", "platform_min_version": "19", "build_tools_min_version": "19.1.0", "extra_list": [ @@ -186,6 +187,9 @@ ] } }, + "mingw": { + "version": "8.1.0" + }, "MsysPackages": { "msys2": [ "base-devel", diff --git a/images/win/toolsets/toolset-2019.json b/images/win/toolsets/toolset-2019.json index 8830b4925..2581f69b9 100644 --- a/images/win/toolsets/toolset-2019.json +++ b/images/win/toolsets/toolset-2019.json @@ -125,7 +125,7 @@ "name": "az", "url" : "https://raw.githubusercontent.com/Azure/az-ps-module-versions/main/versions-manifest.json", "versions": [ - "7.3.2" + "7.5.0" ], "zip_versions": [ "1.0.0", @@ -159,6 +159,7 @@ ] }, "android": { + "cmdline-tools": "latest", "platform_min_version": "19", "build_tools_min_version": "19.1.0", "extra_list": [ @@ -182,12 +183,15 @@ "patcher;v4" ], "ndk": { - "default": "21", + "default": "23", "versions": [ - "21", "22", "23" + "21", "23", "24" ] } }, + "mingw": { + "version": "8.1.0" + }, "MsysPackages": { "msys2": [ "base-devel", @@ -474,7 +478,7 @@ "version": "8.1" }, "llvm": { - "version": "13" + "version": "14" }, "postgresql": { "version": "14" diff --git a/images/win/toolsets/toolset-2022.json b/images/win/toolsets/toolset-2022.json index 00b8468c1..ede4ed949 100644 --- a/images/win/toolsets/toolset-2022.json +++ b/images/win/toolsets/toolset-2022.json @@ -117,7 +117,7 @@ "name": "az", "url" : "https://raw.githubusercontent.com/Azure/az-ps-module-versions/main/versions-manifest.json", "versions": [ - "7.3.2" + "7.5.0" ], "zip_versions": [ "6.6.0" @@ -139,6 +139,7 @@ ] }, "android": { + "cmdline-tools": "latest", "platform_min_version": "27", "build_tools_min_version": "27.0.0", "extra_list": [ @@ -152,12 +153,15 @@ "patcher;v4" ], "ndk": { - "default": "21", + "default": "23", "versions": [ - "21", "22", "23" + "21", "23", "24" ] } }, + "mingw": { + "version": "11.2.0.07112021" + }, "MsysPackages": { "msys2": [], "mingw": [] @@ -195,20 +199,29 @@ "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.Runtimes.ARM.Spectre", "Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre", + "Microsoft.VisualStudio.Component.VC.Runtimes.ARM64EC.Spectre", "Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre", "Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest", "Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest", "Microsoft.VisualStudio.Component.VC.Tools.ARM", "Microsoft.VisualStudio.Component.VC.MFC.ARM", + "Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre", "Microsoft.VisualStudio.Component.VC.ATL.ARM64", + "Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre", + "Microsoft.VisualStudio.Component.VC.ATL.ARM64EC", + "Microsoft.VisualStudio.Component.VC.ATL.ARM64EC.Spectre", "Microsoft.VisualStudio.Component.VC.MFC.ARM64", + "Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre", "Microsoft.VisualStudio.Component.VC.MFC.ARM64EC", + "Microsoft.VisualStudio.Component.VC.MFC.ARM64EC.Spectre", "Microsoft.VisualStudio.Component.VC.Modules.x86.x64", "Microsoft.VisualStudio.Component.VC.Tools.ARM64", "Microsoft.VisualStudio.Component.VC.Tools.ARM64EC", @@ -234,6 +247,7 @@ "Microsoft.VisualStudio.Component.Windows10SDK.19041", "Microsoft.VisualStudio.Component.Windows10SDK.20348", "Microsoft.VisualStudio.Component.Windows11SDK.22000", + "Microsoft.VisualStudio.Component.Windows11SDK.22621", "Microsoft.VisualStudio.Component.Workflow", "Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices", "Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools", @@ -261,7 +275,8 @@ ], "vsix": [ "VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects", - "WixToolset.WixToolsetVisualStudio2022Extension" + "WixToolset.WixToolsetVisualStudio2022Extension", + "ProBITools.MicrosoftReportProjectsforVisualStudio2022" ] }, "docker": { @@ -344,7 +359,7 @@ "version": "3.08" }, "llvm": { - "version": "13" + "version": "14" }, "php": { "version": "8.1" diff --git a/images/win/windows2016.json b/images/win/windows2016.json index eeb8973a2..901d164d4 100644 --- a/images/win/windows2016.json +++ b/images/win/windows2016.json @@ -2,6 +2,7 @@ "variables": { "client_id": "{{env `ARM_CLIENT_ID`}}", "client_secret": "{{env `ARM_CLIENT_SECRET`}}", + "client_cert_path": "{{env `ARM_CLIENT_CERT_PATH`}}", "subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}", "tenant_id": "{{env `ARM_TENANT_ID`}}", "object_id": "{{env `ARM_OBJECT_ID`}}", @@ -37,6 +38,7 @@ "type": "azure-arm", "client_id": "{{user `client_id`}}", "client_secret": "{{user `client_secret`}}", + "client_cert_path": "{{user `client_cert_path`}}", "subscription_id": "{{user `subscription_id`}}", "object_id": "{{user `object_id`}}", "tenant_id": "{{user `tenant_id`}}", @@ -181,8 +183,6 @@ "{{ template_dir }}/scripts/Installers/Install-Vsix.ps1", "{{ template_dir }}/scripts/Installers/Install-AzureCli.ps1", "{{ template_dir }}/scripts/Installers/Install-AzureDevOpsCli.ps1", - "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1", - "{{ template_dir }}/scripts/Installers/Install-Bazel.ps1", "{{ template_dir }}/scripts/Installers/Install-CommonUtils.ps1", "{{ template_dir }}/scripts/Installers/Install-AliyunCli.ps1", "{{ template_dir }}/scripts/Installers/Install-PostgreSQL.ps1", @@ -192,6 +192,8 @@ "{{ template_dir }}/scripts/Installers/Install-PyPy.ps1", "{{ template_dir }}/scripts/Installers/Install-Toolset.ps1", "{{ template_dir }}/scripts/Installers/Configure-Toolset.ps1", + "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1", + "{{ template_dir }}/scripts/Installers/Install-Bazel.ps1", "{{ template_dir }}/scripts/Installers/Install-AndroidSDK.ps1", "{{ template_dir }}/scripts/Installers/Install-Pipx.ps1", "{{ template_dir }}/scripts/Installers/Install-PipxPackages.ps1", diff --git a/images/win/windows2019.json b/images/win/windows2019.json index 577bf1f30..f2a50f970 100644 --- a/images/win/windows2019.json +++ b/images/win/windows2019.json @@ -2,6 +2,7 @@ "variables": { "client_id": "{{env `ARM_CLIENT_ID`}}", "client_secret": "{{env `ARM_CLIENT_SECRET`}}", + "client_cert_path": "{{env `ARM_CLIENT_CERT_PATH`}}", "subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}", "tenant_id": "{{env `ARM_TENANT_ID`}}", "object_id": "{{env `ARM_OBJECT_ID`}}", @@ -36,6 +37,7 @@ "type": "azure-arm", "client_id": "{{user `client_id`}}", "client_secret": "{{user `client_secret`}}", + "client_cert_path": "{{user `client_cert_path`}}", "subscription_id": "{{user `subscription_id`}}", "object_id": "{{user `object_id`}}", "tenant_id": "{{user `tenant_id`}}", @@ -176,7 +178,6 @@ "{{ template_dir }}/scripts/Installers/Install-Vsix.ps1", "{{ template_dir }}/scripts/Installers/Install-AzureCli.ps1", "{{ template_dir }}/scripts/Installers/Install-AzureDevOpsCli.ps1", - "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1", "{{ template_dir }}/scripts/Installers/Install-CommonUtils.ps1", "{{ template_dir }}/scripts/Installers/Install-JavaTools.ps1", "{{ template_dir }}/scripts/Installers/Install-Kotlin.ps1" @@ -206,6 +207,7 @@ "{{ template_dir }}/scripts/Installers/Install-PyPy.ps1", "{{ template_dir }}/scripts/Installers/Install-Toolset.ps1", "{{ template_dir }}/scripts/Installers/Configure-Toolset.ps1", + "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1", "{{ template_dir }}/scripts/Installers/Install-AndroidSDK.ps1", "{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1", "{{ template_dir }}/scripts/Installers/Install-Pipx.ps1", diff --git a/images/win/windows2022.json b/images/win/windows2022.json index 858a18ff8..703e4a1c9 100644 --- a/images/win/windows2022.json +++ b/images/win/windows2022.json @@ -2,6 +2,7 @@ "variables": { "client_id": "{{env `ARM_CLIENT_ID`}}", "client_secret": "{{env `ARM_CLIENT_SECRET`}}", + "client_cert_path": "{{env `ARM_CLIENT_CERT_PATH`}}", "subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}", "tenant_id": "{{env `ARM_TENANT_ID`}}", "object_id": "{{env `ARM_OBJECT_ID`}}", @@ -36,6 +37,7 @@ "type": "azure-arm", "client_id": "{{user `client_id`}}", "client_secret": "{{user `client_secret`}}", + "client_cert_path": "{{user `client_cert_path`}}", "subscription_id": "{{user `subscription_id`}}", "object_id": "{{user `object_id`}}", "tenant_id": "{{user `tenant_id`}}", @@ -172,10 +174,10 @@ "type": "powershell", "scripts": [ "{{ template_dir }}/scripts/Installers/Install-Wix.ps1", + "{{ template_dir }}/scripts/Installers/Install-WDK.ps1", "{{ template_dir }}/scripts/Installers/Install-Vsix.ps1", "{{ template_dir }}/scripts/Installers/Install-AzureCli.ps1", "{{ template_dir }}/scripts/Installers/Install-AzureDevOpsCli.ps1", - "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1", "{{ template_dir }}/scripts/Installers/Install-CommonUtils.ps1", "{{ template_dir }}/scripts/Installers/Install-JavaTools.ps1", "{{ template_dir }}/scripts/Installers/Install-Kotlin.ps1" @@ -205,6 +207,7 @@ "{{ template_dir }}/scripts/Installers/Install-PyPy.ps1", "{{ template_dir }}/scripts/Installers/Install-Toolset.ps1", "{{ template_dir }}/scripts/Installers/Configure-Toolset.ps1", + "{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1", "{{ template_dir }}/scripts/Installers/Install-AndroidSDK.ps1", "{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1", "{{ template_dir }}/scripts/Installers/Install-Pipx.ps1",