Merge remote-tracking branch 'upstream/main'

This commit is contained in:
Larissa Fortuna
2022-07-19 15:51:05 -07:00
128 changed files with 4059 additions and 1882 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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?

5
.gitignore vendored
View File

@@ -387,4 +387,7 @@ public
.dynamodb/
# visual studio code launch configuration
launch.json
launch.json
# Ignore dynamic template
images/*/*-temp.json

View File

@@ -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

View File

@@ -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 <sup>beta</sup> | `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 <sup>deprecated</sup> | `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

View File

@@ -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.

View File

@@ -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}"
}

View File

@@ -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
}

View File

@@ -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"

View File

@@ -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

View File

@@ -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
}
}

View File

@@ -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"

View File

@@ -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)"

View File

@@ -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
}

View File

@@ -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 \<f6af75acc>)
- 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<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3<br>23.0.1 23.0.2 23.0.3 |
| Android SDK Platform-Tools | 33.0.1 |
| Android SDK Platforms | android-32 (rev 1)<br>android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2)<br>android-23 (rev 3) |
| Android SDK Tools | 26.1.1 |
| Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>3.18.1 |
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 21.4.7075529 (default)<br>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<br>32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3<br>23.0.1 23.0.2 23.0.3 |
| Android SDK Platform-Tools | 33.0.2 |
| Android SDK Platforms | android-33 (rev 2)<br>android-32 (rev 1)<br>android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2)<br>android-23 (rev 3) |
| Android SDK Tools | 26.1.1 |
| Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>3.18.1 |
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 21.4.7075529<br>23.2.8568313 (default)<br>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 |

View File

@@ -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 \<f6af75acc>)
- 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<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>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)<br>android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3) |
| Android SDK Tools | 26.1.1 |
| Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>3.18.1 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 21.4.7075529 (default)<br>22.1.7171670<br>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<br>32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>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)<br>android-32 (rev 1)<br>android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3) |
| Android SDK Tools | 26.1.1 |
| Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>3.18.1 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 21.4.7075529<br>23.2.8568313 (default)<br>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 |

View File

@@ -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<br>32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>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)<br>android-32 (rev 1)<br>android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3) |
| Android SDK Tools | 26.1.1 |
| Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>3.18.1 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 21.4.7075529<br>23.2.8568313 (default)<br>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 |

View File

@@ -0,0 +1,2 @@
# Name of pool supported by this image
POOL_NAME="Ubuntu 2204"

View File

@@ -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

View File

@@ -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 "<br>")
return ($versions | Join-String -Separator "<br>")
}
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

View File

@@ -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

View File

@@ -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 (?<version>${VersionPattern}" | Out-Null
Invoke-Expression "$clangCommand --version" | Where-Object { $_ -match "${VersionLineMatcher}" } | ForEach-Object {
$_ -match "${VersionLineMatcher} (?<version>${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 (?<version>\d+\.\d+\.\d+)-" | Out-Null
$_ -match "now (\d+:)?(?<version>\d+\.\d+\.\d+)-" | Out-Null
$Matches.version
}
}

View File

@@ -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"

View File

@@ -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

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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 <<EOF >> /etc/apt/apt.conf.d/99bad_proxy
Acquire::http::Pipeline-Depth 0;

View File

@@ -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

View File

@@ -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
}

View File

@@ -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
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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[]')

View File

@@ -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##*-}"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -5,4 +5,4 @@
################################################################################
# Install Powershell
apt-get install -y powershell
apt-get install -y powershell

View File

@@ -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 <<EOF > $imagedata_file
[

View File

@@ -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"

View File

@@ -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/*

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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 "<PackageName>" -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
}
}
}

View File

@@ -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
}
}
}

View File

@@ -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" {

View File

@@ -1,4 +1,4 @@
Describe "MongoDB" {
Describe "MongoDB" -Skip:(Test-IsUbuntu22) {
It "<ToolName>" -TestCases @(
@{ ToolName = "mongo" }
@{ ToolName = "mongod" }

View File

@@ -50,7 +50,7 @@ Describe "Java" {
"`"$javaPath`" -version" | Should -MatchCommandOutput ([regex]::Escape("openjdk version `"${Version}."))
}
It "Java Adopt <Version>" -TestCases $adoptJdkVersions {
It "Java Adopt <Version>" -TestCases $adoptJdkVersions -Skip:(Test-IsUbuntu22) {
$javaPath = Join-Path (Get-ChildItem ${env:AGENT_TOOLSDIRECTORY}\Java_Adopt_jdk\${Version}*) "x64\bin\java"
"`"$javaPath`" -version" | Should -ReturnZeroExitCode

View File

@@ -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 <ErlangCommand>" -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" {

View File

@@ -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",

View File

@@ -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",

View File

@@ -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"
}
}

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"]
}
}

View File

@@ -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"
}
}

View File

@@ -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 \<bd1ef2df4>)
- Yarn 1.22.18
- Vcpkg 2022 (build from master \<feecd1fb4>)
- 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<br>12.4 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>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<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3 |
| Android SDK Platforms | android-32 (rev 1)<br>android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2) |
| Android SDK Platform-Tools | 33.0.1 |
| Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>3.18.1 |
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 15.2.4203891<br>18.1.5063045<br>21.4.7075529 (default)<br>22.1.7171670<br>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<br>32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3 |
| Android SDK Platforms | android-33 (rev 1)<br>android-32 (rev 1)<br>android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2) |
| Android SDK Platform-Tools | 33.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>3.18.1 |
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 15.2.4203891<br>18.1.5063045<br>21.4.7075529<br>23.2.8568313 (default)<br>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

View File

@@ -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 \<f6af75acc>)
- 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<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
| iOS 14.4 | 12.4 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
| iOS 14.5 | 12.5.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| iOS 15.0 | 13.0<br>13.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad (9th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| iOS 15.2 | 13.2<br>13.2.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad (9th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| tvOS 13.4 | 11.7 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 14.3 | 12.4 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 14.5 | 12.5.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
| tvOS 15.0 | 13.0<br>13.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
| tvOS 15.2 | 13.2<br>13.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
| watchOS 6.2 | 11.7 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
| watchOS 7.2 | 12.4 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm |
| watchOS 7.4 | 12.5.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm |
| watchOS 8.0 | 13.0<br>13.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
| watchOS 8.3 | 13.2<br>13.2.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
| OS | Xcode Version | Simulators |
| ----------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 13.7 | 11.7 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
| iOS 14.4 | 12.4 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
| iOS 14.5 | 12.5.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| iOS 15.0 | 13.0<br>13.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad (9th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| iOS 15.2 | 13.2.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad (9th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| tvOS 13.4 | 11.7 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 14.3 | 12.4 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
| tvOS 14.5 | 12.5.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
| tvOS 15.0 | 13.0<br>13.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
| tvOS 15.2 | 13.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
| watchOS 6.2 | 11.7 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
| watchOS 7.2 | 12.4 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm |
| watchOS 7.4 | 12.5.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm |
| watchOS 8.0 | 13.0<br>13.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
| watchOS 8.3 | 13.2.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
### Android
| Package Name | Version |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 4.0 |
| Android Emulator | 31.2.9 |
| Android SDK Build-tools | 32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3 |
| Android SDK Platforms | android-32 (rev 1)<br>android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3) |
| Android SDK Platform-Tools | 33.0.1 |
| Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>3.18.1 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 21.4.7075529 (default)<br>22.1.7171670<br>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<br>32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3 |
| Android SDK Platforms | android-33 (rev 1)<br>android-32 (rev 1)<br>android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3) |
| Android SDK Platform-Tools | 33.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>3.18.1 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 21.4.7075529<br>23.2.8568313 (default)<br>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

View File

@@ -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 \<c25761eb7>)
- 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)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| iOS 15.2 | 13.2<br>13.2.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| iOS 15.4 | 13.3<br>13.3.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPhone SE (3rd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| tvOS 15.0 | 13.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
| tvOS 15.2 | 13.2<br>13.2.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
| tvOS 15.4 | 13.3<br>13.3.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
| watchOS 8.0 | 13.1 | Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
| watchOS 8.3 | 13.2<br>13.2.1 | Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
| watchOS 8.5 | 13.3<br>13.3.1 | Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
| OS | Xcode Version | Simulators |
| ----------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 15.0 | 13.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| iOS 15.2 | 13.2.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| iOS 15.4 | 13.3.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPhone SE (3rd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| iOS 15.5 | 13.4<br>13.4.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPhone SE (3rd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
| tvOS 15.0 | 13.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
| tvOS 15.2 | 13.2.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
| tvOS 15.4 | 13.3.1<br>13.4<br>13.4.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
| watchOS 8.0 | 13.1 | Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
| watchOS 8.3 | 13.2.1 | Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
| watchOS 8.5 | 13.3.1<br>13.4<br>13.4.1 | Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
### Android
| Package Name | Version |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 4.0 |
| Android Emulator | 31.2.9 |
| Android SDK Build-tools | 32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3 |
| Android SDK Platforms | android-32 (rev 1)<br>android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>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)<br>22.1.7171670<br>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<br>32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3 |
| Android SDK Platforms | android-33 (rev 1)<br>android-32 (rev 1)<br>android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>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<br>23.2.8568313 (default)<br>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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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
}

View File

@@ -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() {

View File

@@ -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 {

View File

@@ -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 "(?<version>\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 @(
@{

View File

@@ -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

View File

@@ -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 {
}
}
}

View File

@@ -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",

View File

@@ -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" {

View File

@@ -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",

View File

@@ -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 }}"
}
}

View File

@@ -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",

View File

@@ -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
}
}

View File

@@ -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 <vsversion> 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"
}
}

View File

@@ -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 <toolsetVersion> is installed and version is correct" {
$clangVersion = & "$(brew --prefix llvm@$toolsetVersion)/bin/clang" --version
$clangVersion[0] | Should -BeLike "*${toolsetVersion}*"
}
}

View File

@@ -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 <BundleSymlink> 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"
}
}

View File

@@ -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"

View File

@@ -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"

Some files were not shown because too many files have changed in this diff Show More