diff --git a/.gitattributes b/.gitattributes
index 957a75d0..2adc2026 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,2 +1 @@
-# Do not normalize line endings
-* -text
\ No newline at end of file
+* text=auto eol=lf
\ No newline at end of file
diff --git a/.github/workflows/issue-triager.yml b/.github/workflows/issue-triager.yml
index 12d04db5..c948a620 100644
--- a/.github/workflows/issue-triager.yml
+++ b/.github/workflows/issue-triager.yml
@@ -24,9 +24,21 @@ jobs:
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
- github.issues.addLabels({
+ const issueLabels = await github.issues.listLabelsOnIssue({
issue_number: context.issue.number,
owner: context.repo.owner,
- repo: context.repo.repo,
- labels: ['needs triage']
- })
\ No newline at end of file
+ repo: context.repo.repo
+ });
+
+ const isAnnouncement = issueLabels.data && issueLabels.data
+ .map(label => label.name)
+ .includes('Announcement');
+
+ if (!isAnnouncement) {
+ github.issues.addLabels({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ labels: ['needs triage']
+ })
+ }
\ No newline at end of file
diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml
new file mode 100644
index 00000000..42eb7cad
--- /dev/null
+++ b/.github/workflows/linter.yml
@@ -0,0 +1,25 @@
+# CI Validation
+
+name: CI
+
+on:
+ pull_request:
+ branches: [$default-branch]
+
+jobs:
+ build:
+ name: Lint JSON & MD files
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout Code
+ uses: actions/checkout@v2
+
+ - name: Lint Code Base
+ uses: github/super-linter@v3
+ env:
+ VALIDATE_ALL_CODEBASE: false
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ VALIDATE_JSON: true
+ VALIDATE_MD: true
+ DEFAULT_BRANCH: ${{ github.base_ref }}
diff --git a/help/CreateImageAndAzureResources.md b/help/CreateImageAndAzureResources.md
index 123d335c..3401c1fc 100644
--- a/help/CreateImageAndAzureResources.md
+++ b/help/CreateImageAndAzureResources.md
@@ -12,6 +12,7 @@ After successful image generation, a snapshot of the temporary VM will be conver
- `packer` - Can be downloaded from https://www.packer.io/downloads
- `PowerShell 5.0 or higher` or `PSCore` for linux distributes.
- `Azure CLI ` - https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest
+- `Azure Powershell module` - https://docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-4.6.1
### Azure DevOps self-hosted pool requirements
To connect to a temporary VM packer use WinRM or SSH connections on public IP interfaces.
@@ -31,7 +32,7 @@ Download `packer` from https://www.packer.io/downloads, or install it via Chocol
choco install packer
```
-Install Azure CLI - https://docs.microsoft.com/ru-ru/cli/azure/install-azure-cli-windows?view=azure-cli-latest&tabs=azure-cli.
+Install Azure CLI - https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-windows?view=azure-cli-latest&tabs=azure-cli.
```
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msi
```
diff --git a/helpers/GenerateResourcesAndImage.ps1 b/helpers/GenerateResourcesAndImage.ps1
index 32177094..67858841 100644
--- a/helpers/GenerateResourcesAndImage.ps1
+++ b/helpers/GenerateResourcesAndImage.ps1
@@ -16,27 +16,32 @@ Function Get-PackerTemplatePath {
[ImageType] $ImageType
)
- $relativePath = "N/A"
-
switch ($ImageType) {
([ImageType]::Windows2016) {
- $relativePath = "\images\win\Windows2016-Azure.json"
+ $relativeTemplatePath = Join-Path "win" "windows2016.json"
}
([ImageType]::Windows2019) {
- $relativePath = "\images\win\Windows2019-Azure.json"
+ $relativeTemplatePath = Join-Path "win" "windows2019.json"
}
([ImageType]::Ubuntu1604) {
- $relativePath = "\images\linux\ubuntu1604.json"
+ $relativeTemplatePath = Join-Path "linux" "ubuntu1604.json"
}
([ImageType]::Ubuntu1804) {
- $relativePath = "\images\linux\ubuntu1804.json"
+ $relativeTemplatePath = Join-Path "linux" "ubuntu1804.json"
}
([ImageType]::Ubuntu2004) {
- $relativePath = "\images\linux\ubuntu2004.json"
+ $relativeTemplatePath = Join-Path "linux" "ubuntu2004.json"
}
+ default { throw "Unknown type of image" }
}
- return $RepositoryRoot + $relativePath;
+ $imageTemplatePath = [IO.Path]::Combine($RepositoryRoot, "images", $relativeTemplatePath)
+
+ if (-not (Test-Path $imageTemplatePath)) {
+ throw "Template for image '$ImageType' doesn't exist on path '$imageTemplatePath'"
+ }
+
+ return $imageTemplatePath;
}
Function Get-LatestCommit {
@@ -45,7 +50,7 @@ Function Get-LatestCommit {
process {
Write-Host "Latest commit:"
- git log --pretty=format:"Date: %cd; Commit: %H - %s; Author: %an <%ae>" -1
+ git --no-pager log --pretty=format:"Date: %cd; Commit: %H - %s; Author: %an <%ae>" -1
}
}
@@ -87,12 +92,12 @@ Function GenerateResourcesAndImage {
[Parameter(Mandatory = $True)]
[string] $ResourceGroupName,
[Parameter(Mandatory = $True)]
- [string] $ImageGenerationRepositoryRoot,
- [Parameter(Mandatory = $True)]
[ImageType] $ImageType,
[Parameter(Mandatory = $True)]
[string] $AzureLocation,
[Parameter(Mandatory = $False)]
+ [string] $ImageGenerationRepositoryRoot = $pwd,
+ [Parameter(Mandatory = $False)]
[int] $SecondsToWaitForServicePrincipalSetup = 30,
[Parameter(Mandatory = $False)]
[string] $GithubFeedToken,
@@ -110,12 +115,12 @@ Function GenerateResourcesAndImage {
$ServicePrincipalClientSecret = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper();
$InstallPassword = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper();
- Login-AzureRmAccount
- Set-AzureRmContext -SubscriptionId $SubscriptionId
+ Connect-AzAccount
+ Set-AzContext -SubscriptionId $SubscriptionId
$alreadyExists = $true;
try {
- Get-AzureRmResourceGroup -Name $ResourceGroupName
+ Get-AzResourceGroup -Name $ResourceGroupName
Write-Verbose "Resource group was found, will delete and recreate it."
}
catch {
@@ -126,8 +131,8 @@ Function GenerateResourcesAndImage {
if ($alreadyExists) {
if($Force -eq $true) {
# Cleanup the resource group if it already exitsted before
- Remove-AzureRmResourceGroup -Name $ResourceGroupName -Force
- New-AzureRmResourceGroup -Name $ResourceGroupName -Location $AzureLocation
+ 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?"
@@ -146,13 +151,13 @@ Function GenerateResourcesAndImage {
switch ($result)
{
- 0 { Remove-AzureRmResourceGroup -Name $ResourceGroupName -Force; New-AzureRmResourceGroup -Name $ResourceGroupName -Location $AzureLocation }
+ 0 { Remove-AzResourceGroup -Name $ResourceGroupName -Force; New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation }
1 { <# Do nothing #> }
2 { exit }
}
}
} else {
- New-AzureRmResourceGroup -Name $ResourceGroupName -Location $AzureLocation
+ New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation
}
# This script should follow the recommended naming conventions for azure resources
@@ -164,25 +169,32 @@ Function GenerateResourcesAndImage {
$storageAccountName = $storageAccountName.Replace("-", "").Replace("_", "").Replace("(", "").Replace(")", "").ToLower()
$storageAccountName += "001"
- New-AzureRmStorageAccount -ResourceGroupName $ResourceGroupName -AccountName $storageAccountName -Location $AzureLocation -SkuName "Standard_LRS"
+ New-AzStorageAccount -ResourceGroupName $ResourceGroupName -AccountName $storageAccountName -Location $AzureLocation -SkuName "Standard_LRS"
$spDisplayName = [System.GUID]::NewGuid().ToString().ToUpper()
- $sp = New-AzureRmADServicePrincipal -DisplayName $spDisplayName -Password (ConvertTo-SecureString $ServicePrincipalClientSecret -AsPlainText -Force)
+ $credentialProperties = @{ StartDate=Get-Date; EndDate=Get-Date -Year 2024; Password=$ServicePrincipalClientSecret }
+ $credentials = New-Object -TypeName Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential -Property $credentialProperties
+ $sp = New-AzADServicePrincipal -DisplayName $spDisplayName -PasswordCredential $credentials
$spAppId = $sp.ApplicationId
$spClientId = $sp.ApplicationId
$spObjectId = $sp.Id
Start-Sleep -Seconds $SecondsToWaitForServicePrincipalSetup
- New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $spAppId
+ New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $spAppId
Start-Sleep -Seconds $SecondsToWaitForServicePrincipalSetup
- $sub = Get-AzureRmSubscription -SubscriptionId $SubscriptionId
+ $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`"", ""
Get-LatestCommit -ErrorAction SilentlyContinue
- packer.exe build -on-error=ask `
+ $packerBinary = Get-Command "packer"
+ if (-not ($packerBinary)) {
+ throw "'packer' binary is not found on PATH"
+ }
+
+ & $packerBinary build -on-error=ask `
-var "client_id=$($spClientId)" `
-var "client_secret=$($ServicePrincipalClientSecret)" `
-var "subscription_id=$($SubscriptionId)" `
diff --git a/images.CI/linux-and-win/azure-pipelines/windows2016.yml b/images.CI/linux-and-win/azure-pipelines/windows2016.yml
index 39d013f9..0220a38f 100644
--- a/images.CI/linux-and-win/azure-pipelines/windows2016.yml
+++ b/images.CI/linux-and-win/azure-pipelines/windows2016.yml
@@ -16,5 +16,5 @@ pr:
jobs:
- template: image-generation.yml
parameters:
- image_type: Windows2016-Azure
+ image_type: windows2016
image_readme_name: Windows2016-Readme.md
\ No newline at end of file
diff --git a/images.CI/linux-and-win/azure-pipelines/windows2019.yml b/images.CI/linux-and-win/azure-pipelines/windows2019.yml
index 01f65c0e..ccad8f88 100644
--- a/images.CI/linux-and-win/azure-pipelines/windows2019.yml
+++ b/images.CI/linux-and-win/azure-pipelines/windows2019.yml
@@ -16,5 +16,5 @@ pr:
jobs:
- template: image-generation.yml
parameters:
- image_type: Windows2019-Azure
+ image_type: windows2019
image_readme_name: Windows2019-Readme.md
\ No newline at end of file
diff --git a/images.CI/macos/azure-pipelines/image-generation.yml b/images.CI/macos/azure-pipelines/image-generation.yml
index 490cbda6..89216e21 100644
--- a/images.CI/macos/azure-pipelines/image-generation.yml
+++ b/images.CI/macos/azure-pipelines/image-generation.yml
@@ -9,6 +9,13 @@ jobs:
- group: Mac-Cloud Image Generation Key Vault
steps:
+ - pwsh: |
+ $cleanBuildNumber = "$(Build.BuildNumber)" -replace "(.+_unstable)(\.\d+)", '$1'
+ $virtualMachineName = "${cleanBuildNumber}.$(System.JobAttempt)"
+ echo "##vso[task.setvariable variable=VirtualMachineName;]$virtualMachineName"
+ echo "##vso[build.updatebuildnumber]$virtualMachineName"
+ displayName: Update BuildNumber
+
- checkout: self
clean: true
fetchDepth: 1
@@ -40,6 +47,15 @@ jobs:
SourceFolder: 'images/macos/provision/log/'
RemoveSourceFolder: true
+ - task: PowerShell@2
+ displayName: 'Select datastore'
+ inputs:
+ targetType: 'filePath'
+ filePath: ./images.CI/macos/select-datastore.ps1
+ arguments: -VIServer "$(vcenter-server-v2)" `
+ -VIUserName "$(vcenter-username-v2)" `
+ -VIPassword "$(vcenter-password-v2)"
+
- pwsh: |
$SensitiveData = @(
'IP address:',
@@ -52,11 +68,11 @@ jobs:
-var="vcenter_password=$(vcenter-password-v2)" `
-var="vcenter_datacenter=$(vcenter-datacenter-v2)" `
-var="cluster_or_esxi_host=$(esxi-cluster-v2)" `
- -var="esxi_datastore=${{ parameters.target_datastore }}" `
+ -var="esxi_datastore=$(buildDatastore)" `
-var="output_folder=$(output-folder)" `
-var="vm_username=$(vm-username)" `
-var="vm_password=$(vm-password)" `
- -var="build_id=$(Build.BuildNumber)" `
+ -var="build_id=$(VirtualMachineName)" `
-var="baseimage_name=${{ parameters.base_image_name }}" `
-var="github_feed_token=$(github-feed-token)" `
-var="xcode_install_user=$(xcode-installation-user)" `
@@ -83,7 +99,7 @@ jobs:
ls $(Common.TestResultsDirectory)
echo "Put VM name to 'VM_Done_Name' file"
- echo "$(Build.BuildNumber)" > "$(Build.ArtifactStagingDirectory)/VM_Done_Name"
+ echo "$(VirtualMachineName)" > "$(Build.ArtifactStagingDirectory)/VM_Done_Name"
displayName: Prepare artifact
- bash: |
@@ -103,3 +119,26 @@ jobs:
failTaskOnFailedTests: true
displayName: Publish test results
condition: always()
+
+ - task: PowerShell@2
+ displayName: 'Move vm to cold storage'
+ condition: succeededOrFailed()
+ inputs:
+ targetType: 'filePath'
+ filePath: ./images.CI/macos/move-vm.ps1
+ arguments: -VMName "$(VirtualMachineName)" `
+ -TargetDataStore "${{ parameters.target_datastore }}" `
+ -VIServer "$(vcenter-server-v2)" `
+ -VIUserName "$(vcenter-username-v2)" `
+ -VIPassword "$(vcenter-password-v2)"
+
+ - task: PowerShell@2
+ displayName: 'Destroy VM (if build canceled only)'
+ condition: eq(variables['Agent.JobStatus'], 'Canceled')
+ inputs:
+ targetType: 'filePath'
+ filePath: ./images.CI/macos/destroy-vm.ps1
+ arguments: -VMName "$(VirtualMachineName)" `
+ -VIServer "$(vcenter-server-v2)" `
+ -VIUserName "$(vcenter-username-v2)" `
+ -VIPassword "$(vcenter-password-v2)"
diff --git a/images.CI/macos/destroy-vm.ps1 b/images.CI/macos/destroy-vm.ps1
new file mode 100644
index 00000000..f6ed1b1a
--- /dev/null
+++ b/images.CI/macos/destroy-vm.ps1
@@ -0,0 +1,95 @@
+<#
+.SYNOPSIS
+
+This script deletes vm from vCenter
+
+.PARAMETER VMName
+VM name to delete (Example "macOS-10.15_20201012.4")
+
+.PARAMETER VIServer
+vCenter address (Example "10.0.1.16")
+
+.PARAMETER VIUserName
+vCenter username (Example "Administrator")
+
+.PARAMETER VIPassword
+vCenter password (Example "12345678")
+#>
+
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VMName,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIServer,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIUserName,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIPassword
+)
+
+# Import helpers module
+Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
+
+# Connection to a vCenter Server system
+Connect-VCServer
+
+# Check vm clone status
+$chainId = (Get-VIEvent -Entity $VMName).ChainId
+if ($chainId)
+{
+ $task = Get-Task -Status Running | Where-Object { ($_.Name -eq 'CloneVM_Task') -and ($_.ExtensionData.Info.EventChainId -in $chainId) }
+ if ($task)
+ {
+ try
+ {
+ Stop-Task -Task $task -Confirm:$false -ErrorAction Stop
+ Write-Host "The vm '$VMName' clone task has been canceled"
+ }
+ catch
+ {
+ Write-Host "##vso[task.LogIssue type=error;]Failed to cancel the task"
+ }
+ }
+}
+
+# Remove a vm
+$vm = Get-VM -Name $VMName -ErrorAction SilentlyContinue
+
+if ($vm)
+{
+ $vmState = $vm.PowerState
+ if ($vmState -ne "PoweredOff")
+ {
+ try
+ {
+ $null = Stop-VM -VM $vm -Confirm:$false -ErrorAction Stop
+ Write-Host "The vm '$VMName' has been powered off"
+ }
+ catch
+ {
+ Write-Host "##vso[task.LogIssue type=error;]Failed to shutdown '$VMName'"
+ }
+ }
+
+ try
+ {
+ Remove-VM -VM $vm -DeletePermanently -Confirm:$false -ErrorAction Stop
+ Write-Host "The vm '$VMName' has been removed"
+ }
+ catch
+ {
+ Write-Host "##vso[task.LogIssue type=error;]Failed to remove '$VMName'"
+ }
+}
+else
+{
+ Write-Host "VM '$VMName' not found"
+}
\ No newline at end of file
diff --git a/images.CI/macos/helpers.psm1 b/images.CI/macos/helpers.psm1
new file mode 100644
index 00000000..a5be3fee
--- /dev/null
+++ b/images.CI/macos/helpers.psm1
@@ -0,0 +1,26 @@
+<#
+.SYNOPSIS
+
+Helper functions to use in images.CI scripts
+#>
+
+Function Connect-VCServer
+{
+ try
+ {
+ # Preference
+ $global:ProgressPreference = 'SilentlyContinue'
+ $global:WarningPreference = 'SilentlyContinue'
+ # Ignore SSL
+ $null = Set-PowerCLIConfiguration -Scope Session -InvalidCertificateAction Ignore -ParticipateInCEIP $false -Confirm:$false -WebOperationTimeoutSeconds 600
+ $securePassword = ConvertTo-SecureString -String $VIPassword -AsPlainText -Force
+ $cred = New-Object System.Management.Automation.PSCredential($VIUserName, $securePassword)
+ $null = Connect-VIServer -Server $VIServer -Credential $cred -ErrorAction Stop
+ Write-Host "Connection to the vSphere server has been established"
+ }
+ catch
+ {
+ Write-Host "##vso[task.LogIssue type=error;]Failed to connect to the vSphere server"
+ exit 1
+ }
+}
\ No newline at end of file
diff --git a/images.CI/macos/move-vm.ps1 b/images.CI/macos/move-vm.ps1
new file mode 100644
index 00000000..69872140
--- /dev/null
+++ b/images.CI/macos/move-vm.ps1
@@ -0,0 +1,70 @@
+<#
+.SYNOPSIS
+
+This script migrates given VM to another datastore
+
+.PARAMETER VMName
+VM name to migrate (Example "macOS-10.15_20201012.4")
+
+.PARAMETER TargetDataStore
+Target datastore (Example "ds-image")
+
+.PARAMETER VIServer
+vCenter address (Example "10.0.1.16")
+
+.PARAMETER VIUserName
+vCenter username (Example "Administrator")
+
+.PARAMETER VIPassword
+vCenter password (Example "12345678")
+#>
+
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VMName,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$TargetDataStore,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIServer,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIUserName,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIPassword
+)
+
+# Import helpers module
+Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
+
+# Connection to a vCenter Server system
+Connect-VCServer
+
+$vm = Get-VM $VMName
+
+if ($env:AGENT_JOBSTATUS -eq 'Failed') {
+ try {
+ if($vm.PowerState -ne "PoweredOff") {
+ Stop-VM -VM $vm -Confirm:$false -ErrorAction Stop
+ }
+ Set-VM -VM $vm -Name "${VMName}_failed" -Confirm:$false -ErrorAction Stop
+ Write-Host "VM has been successfully powered off and renamed to [${VMName}_failed]"
+ } catch {
+ Write-Host "##vso[task.LogIssue type=error;]Failed to power off and rename VM '$VMName'"
+ }
+}
+
+try {
+ Move-VM -Vm $vm -Datastore $TargetDataStore -ErrorAction Stop
+ Write-Host "VM has been moved successfully to target datastore '$TargetDataStore'"
+} catch {
+ Write-Host "##vso[task.LogIssue type=error;]Failed to move VM '$VMName' to target datastore '$TargetDataStore'"
+}
\ No newline at end of file
diff --git a/images.CI/macos/select-datastore.ps1 b/images.CI/macos/select-datastore.ps1
new file mode 100644
index 00000000..d6477700
--- /dev/null
+++ b/images.CI/macos/select-datastore.ps1
@@ -0,0 +1,64 @@
+<#
+.SYNOPSIS
+
+This script selects local datastore based on the following rules:
+
+- Name starts with ds-local-Datastore
+- Datastore FreespaceGB > 400 Gb
+- VM count on the datastore < 2
+
+.PARAMETER VIServer
+vCenter address (Example "10.0.1.16")
+
+.PARAMETER VIUserName
+vCenter username (Example "Administrator")
+
+.PARAMETER VIPassword
+vCenter password (Example "12345678")
+#>
+
+
+[CmdletBinding()]
+param(
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIServer,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIUserName,
+
+ [Parameter(Mandatory)]
+ [ValidateNotNullOrEmpty()]
+ [string]$VIPassword
+)
+
+# Import helpers module
+Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
+
+# Connection to a vCenter Server system
+Connect-VCServer
+
+# Get a target datastore for current deployment
+# 1. Name starts with ds-local-Datastore
+# 2. FreespaceGB > 400 Gb
+# 3. VM count on a datastore < 2
+$templateDatastore = "ds-local-Datastore-*"
+$thresholdInGb = 400
+$vmCount = 2
+$allDatastores = Get-Datastore -Name $templateDatastore | Where-Object { $_.State -eq "Available" }
+$buildDatastore = $allDatastores | Where-Object { $_.FreeSpaceGB -ge $thresholdInGb } | Where-Object {
+ $vmOnDatastore = @((Get-ChildItem -Path $_.DatastoreBrowserPath).Name -notmatch "^\.").Count
+ $vmOnDatastore -lt $vmCount
+ } | Select-Object -ExpandProperty Name -First 1
+
+if ($buildDatastore)
+{
+ Write-Host "Datastore selected successfully"
+ Write-Host "##vso[task.setvariable variable=buildDatastore;issecret=true]$buildDatastore"
+}
+else
+{
+ Write-Host "##vso[task.LogIssue type=error;]No datastores found for the condition"
+ exit 1
+}
\ No newline at end of file
diff --git a/images/linux/Ubuntu1604-README.md b/images/linux/Ubuntu1604-README.md
index 131c9144..b4513e8b 100644
--- a/images/linux/Ubuntu1604-README.md
+++ b/images/linux/Ubuntu1604-README.md
@@ -1,384 +1,229 @@
-
-| Announcements |
-|-|
-| [Clang/LLVM 10 will be set as a default one and Clang/LLVM 6 will be deprecated for Ubuntu 20.04 on September, 23](https://github.com/actions/virtual-environments/issues/1536) |
+| Announcements |
+|-|
+| [Ubuntu-latest workflows will use Ubuntu-20.04](https://github.com/actions/virtual-environments/issues/1816) |
+| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) |
***
# Ubuntu 16.04.7 LTS
-The following software is installed on machines with the 20200914.1 update.
-***
+- Image Version: 20201015.1
+
+## Installed Software
+### Language and Runtime
+- GNU C++ 5.5.0, 7.5.0, 8.4.0, 9.3.0
+- GNU Fortran 5.5.0, 8.4.0, 9.3.0
+- Clang 6.0.0, 8.0.0, 9.0.1
+- Erlang 11.1
+- Mono 6.12.0.90
+- Node 12.19.0
+- Python 2.7.12
+- Python3 3.5.2
+- PowerShell 7.0.3
+- Ruby 2.3.1p112
+- Swift 5.3
+- Julia 1.5.2
+
+### Package Management
+- Gem 3.1.4
+- Helm 3.3.4
+- Homebrew 2.5.6
+- Miniconda 4.8.3
+- Npm 6.14.8
+- Pip 8.1.1
+- Pip3 8.1.1
+- Vcpkg 2020.06.15
+- Yarn 1.22.5
+
+### Project Management
+- Ant 1.9.6
+- Gradle 6.7
+- Maven 3.6.3
+- Sbt 1.4.0
+
+### Tools
- 7-Zip 9.20
-- Ansible (ansible 2.9.13)
-- AzCopy7 (available by azcopy alias) 7.3.0
-- AzCopy10 (available by azcopy10 alias) 10.6.0
-- Azure CLI (azure-cli 2.11.1)
-- Azure CLI (azure-devops 0.18.0)
-- Basic packages:
- - dbus
- - dnsutils
- - dpkg
- - fakeroot
- - gnupg2
- - iproute2
- - iputils-ping
- - lib32z1
- - libc++abi-dev
- - libc++-dev
- - libcurl3
- - libgbm-dev
- - libgconf-2-4
- - libgtk-3-0
- - libicu55
- - libsecret-1-dev
- - libsqlite3-dev
- - libunwind8
- - libxkbfile-dev
- - libxss1
- - locales
- - openssh-client
- - pkg-config
- - rpm
- - texinfo
- - tk
- - tzdata
- - upx
- - xorriso
- - xvfb
- - xz-utils
- - zstd
- - zsync
- - bison
- - brotli
- - bzip2
- - curl
- - file
- - flex
- - ftp
- - jq
- - m4
- - netcat
- - parallel
- - patchelf
- - rsync
- - shellcheck
- - sqlite3
- - ssh
- - sudo
- - telnet
- - time
- - unzip
- - wget
- - yamllint
- - zip
-- Alibaba Cloud CLI (3.0.56)
-- AWS CLI (aws-cli/1.18.137 Python/2.7.12 Linux/4.15.0-1095-azure botocore/1.17.60)
-- AWS CLI Session manager plugin (1.1.61.0)
-- build-essential
-- nvm (0.35.3)
-- Clang 6.0 (6.0.0)
-- Clang 8 (8.0.0)
-- Clang 9 (9.0.1)
-- Swift version 5.2.5 (swift-5.2.5-RELEASE)
-Target: x86_64-unknown-linux-gnu
-- CMake (cmake version 3.17.0)
-- Docker Compose (docker-compose version 1.27.2, build 18f557f9)
-- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
-- Docker-Buildx (0.4.2+azure)
-- Cached container images
- - node:10 (Digest: sha256:ab6f988c514b5c5fb6d5a6d18afb216084b256719791c6cc61096da58e66c436)
- - node:12 (Digest: sha256:20ffb04c1d35e273dc7aa68fe31ef136630d95128689283a8eb914329158022b)
- - buildpack-deps:stretch (Digest: sha256:4f72cea5afa05e21bf2aec93b219b0843a10af5e2f407cc184f211e45f929ccc)
- - buildpack-deps:buster (Digest: sha256:8a76b9f9ee417eb330e97d3129e373277515e98d0f3a95a89ab944b645190efd)
- - debian:9 (Digest: sha256:bc125c699d736ac84c92b76ab7028741bbac69f207b7a8a4065bca6f79d5698e)
- - debian:8 (Digest: sha256:e180975d5c1012518e711c92ab26a4ff98218f439a97d9adbcd503b0d3ad1c8a)
- - jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
- - node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
- - node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
- - alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
- - alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
- - alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
- - ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4)
- - alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10)
- - mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
-- .NET Core SDK:
- - 3.1.402
- - 3.1.401
- - 3.1.302
- - 3.1.301
- - 3.1.300
- - 3.1.202
- - 3.1.201
- - 3.1.200
- - 3.1.108
- - 3.1.107
- - 3.1.106
- - 3.1.105
- - 3.1.104
- - 3.1.103
- - 3.1.102
- - 3.1.101
- - 3.1.100
- - 3.0.103
- - 3.0.102
- - 3.0.101
- - 3.0.100
- - 2.1.810
- - 2.1.809
- - 2.1.808
- - 2.1.807
- - 2.1.806
- - 2.1.805
- - 2.1.804
- - 2.1.803
- - 2.1.802
- - 2.1.801
- - 2.1.701
- - 2.1.700
- - 2.1.615
- - 2.1.614
- - 2.1.613
- - 2.1.612
- - 2.1.611
- - 2.1.610
- - 2.1.609
- - 2.1.608
- - 2.1.607
- - 2.1.606
- - 2.1.605
- - 2.1.604
- - 2.1.603
- - 2.1.602
- - 2.1.518
- - 2.1.517
- - 2.1.516
- - 2.1.515
- - 2.1.514
- - 2.1.513
- - 2.1.512
- - 2.1.511
- - 2.1.510
- - 2.1.509
- - 2.1.508
- - 2.1.507
- - 2.1.506
- - 2.1.505
- - 2.1.504
- - 2.1.503
- - 2.1.502
- - 2.1.500
- - 2.1.403
- - 2.1.402
- - 2.1.401
- - 2.1.302
- - 2.1.301
- - 2.1.300
-- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.0.3)
-- Firefox (Mozilla Firefox 80.0.1)
-- Geckodriver (0.27.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
-- GNU C++ 7.5.0
-- GNU C++ 8.4.0
-- GNU C++ 9.3.0
-- GNU Fortran 8.4.0
-- GNU Fortran 9.3.0
-- Git (2.28.0)
-- Git Large File Storage (LFS) (2.12.0)
-- Git-ftp (1.0.2)
-- Hub CLI (2.14.2)
-- GitHub CLI 0.12.0
-- Google Chrome (Google Chrome 85.0.4183.102 )
-- ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}); Chrome Driver is available via CHROMEWEBDRIVER environment variable
-- Google Cloud SDK (309.0.0)
-- Haskell Cabal (cabal-install version 3.4.0.0
-compiled using version 3.4.0.0 of the Cabal library )
-- GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2)
-- Haskell Stack (Version 2.3.3, Git revision cb44d51bed48b723a5deb08c3348c0b3ccfc437e x86_64 hpack-0.33.0)
-- Heroku (heroku/7.42.13 linux-x64 node-v12.16.2)
-- HHVM (HipHop VM 4.56.1 (rel))
-- ImageMagick
-- Azul Zulu OpenJDK:
- - 7 (openjdk version "1.7.0_272")
-- Adopt OpenJDK:
- - 8 (openjdk version "1.8.0_265") (default)
- - 11 (openjdk version "11.0.8" 2020-07-14)
- - 12 (openjdk version "12.0.2" 2019-07-16)
-- Ant (Apache Ant(TM) version 1.9.6 compiled on July 20 2018)
-- Gradle 6.6.1
-- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
-- Kind (kind v0.8.1 go1.14.2 linux/amd64)
-- kubectl (Client Version: v1.19.1)
-- helm (v3.3.1+g249e521)
-- minikube version: v1.13.0
-- kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z })
-- oc CLI Client Version: 4.5.0-202005291417-9933eb9
-- Leiningen (Leiningen 2.9.4 on Java 1.8.0_265 OpenJDK 64-Bit Server VM)
-- Mercurial (Mercurial Distributed SCM (version 4.4.1))
-- Miniconda (conda 4.8.3)
-- Mono (Mono JIT compiler version 6.12.0.90 (tarball Fri Sep 4 13:58:50 UTC 2020))
-- NuGet (NuGet Version: 5.5.0.6382)
-- MySQL (mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapper)
+- Ansible 2.9.14
+- AzCopy10 10.6.0 (available by `azcopy10` alias)
+- AzCopy7 7.3.0 (available by `azcopy` alias)
+- Bazel 3.6.0
+- Bazelisk 1.7.2
+- CMake 3.17.0
+- CodeQL Action Bundle 2.3.0
+- curl 7.47.0
+- Docker Compose 1.27.4
+- Docker-Buildx 0.4.2
+- Docker-Moby 19.03.13
+- Git 2.28.0
+- Git LFS 2.12.0
+- Git-ftp 1.0.2
+- Google Cloud SDK 314.0.0
+- Haveged 1.9.1
+- Heroku 7.46.0
+- HHVM (HipHop VM) 4.56.1
+- jq 1.5
+- Kind 0.9.0
+- Kubectl 1.19.3
+- Kustomize 3.8.5
+- Leiningen 2.9.4
+- m4 1.4.17
+- Mercurial 4.4.1
+- Minikube 1.14.0
+- Newman 5.2.0
+- nvm 0.36.0
+- Packer 1.6.4
+- PhantomJS 2.1.1
+- Pulumi 2.12.0
+- R 4.0.3
+- Sphinx Open Source Search Server 2.2.9
+- SVN 1.9.3
+- Swig 3.0.8
+- Terraform 0.13.4
+- unzip 6.00
+- wget 1.17.1
+- yamllint 1.2.1
+- zip 3.0
+- zstd 1.3.1
+
+### CLI Tools
+- Alibaba Cloud CLI 3.0.60
+- AWS CLI 1.18.158
+- AWS CLI Session manager plugin 1.2.7.0
+- AWS SAM CLI 1.6.2
+- Azure CLI (azure-cli) 2.13.0
+- Azure CLI (azure-devops) 0.18.0
+- GitHub CLI 1.1.0
+- Hub CLI 2.14.2
+- Netlify CLI 2.65.6
+- oc CLI 4.5.0
+- ORAS CLI 0.8.1
+- Vercel CLI 20.1.2
+
+### Java
+| Version | Vendor | Environment Variable |
+| ------------------- | ------------ | -------------------- |
+| 1.7.0_272 | Zulu | JAVA_HOME_7_X64 |
+| 1.8.0_265 (default) | AdoptOpenJDK | JAVA_HOME_8_X64 |
+| 11.0.8 | AdoptOpenJDK | JAVA_HOME_11_X64 |
+| 12.0.2 | AdoptOpenJDK | JAVA_HOME_12_X64 |
+
+### PHP
+| Tool | Version |
+| -------- | ----------------------------------------- |
+| PHP | 5.6.40 7.0.33 7.1.33 7.2.34 7.3.23 7.4.11 |
+| Composer | 1.10.15 |
+| PHPUnit | 7.5.20 |
+
+### Haskell
+- GHC 8.10.2
+- Cabal 3.4.0.0
+- Stack 2.5.1
+
+### Rust Tools
+- Rust 1.47.0
+- Rustup 1.22.1
+- Rustdoc 1.47.0
+- Cargo 1.47.0
+
+#### Packages
+- Bindgen 0.55.1
+- Cargo audit 0.12.1
+- Cargo outdated 0.9.11
+- Cargo clippy 0.0.212
+- Cbindgen 0.15.0
+- Rustfmt 1.4.20
+
+### Browsers and Drivers
+- Google Chrome 86.0.4240.75
+- ChromeDriver 86.0.4240.22
+- Mozilla Firefox 81.0.2
+- Geckodriver 0.27.0
+
+### .NET Core SDK
+- 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.519 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.616 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 2.1.811 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.109 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403
+
+### Az Module
+- 1.0.0 1.6.0 2.3.2 2.6.0 2.8.0 3.1.0 3.5.0 3.8.0 4.3.0 4.4.0 4.6.0 4.7.0
+
+### Databases
+- Postgre SQL 13.0
+- MongoDB 4.4.1
+- sqlite3 3.11.0
+
+#### MySQL
+- MySQL 5.7.31
- MySQL Server (user:root password:root)
- MS SQL Server Client Tools
-- 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'
-- Node.js (v12.18.3)
-- Grunt (grunt-cli v1.3.2)
-- Gulp (CLI version: 2.3.0
-Local version: Unknown)
-- n (6.7.0)
-- Parcel (1.12.4)
-- TypeScript (Version 4.0.2)
-- Webpack (4.44.1)
-- Webpack CLI (3.3.12)
-- Yarn (1.22.5)
-- Newman (5.2.0)
-- Bazel (bazel 3.5.0)
-- Bazelisk (1.6.1)
-- ORAS CLI 0.8.1
-- PhantomJS (2.1.1)
-- PHP 5.6 (PHP 5.6.40-30+ubuntu16.04.1+deb.sury.org+1 (cli) )
-- PHP 7.0 (PHP 7.0.33-30+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:46:59) ( NTS ))
-- PHP 7.1 (PHP 7.1.33-17+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:46:52) ( NTS ))
-- PHP 7.2 (PHP 7.2.33-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:43:59) ( NTS ))
-- PHP 7.3 (PHP 7.3.22-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Sep 9 2020 06:46:12) ( NTS ))
-- PHP 7.4 (PHP 7.4.10 (cli) (built: Sep 9 2020 06:35:57) ( NTS ))
-- Composer (Composer version 1.10.13 2020-09-09 11:46:34)
-- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
-- Pollinate
-- psql (PostgreSQL) 12.4
-- Powershell (PowerShell 7.0.3)
-- Pulumi v2.10.0
-- ruby (2.3.1p112)
-- gem (3.1.4)
-- OpenSSL 1.1.0h 27 Mar 2018 (Library: OpenSSL 1.1.1g 21 Apr 2020)
-- Libssl 1.1.1g-1+ubuntu16.04.1+deb.sury.org+1
-- R 4.0.2
-- rustup (1.22.1)
-- rust (1.46.0)
-- cargo (1.46.0)
-- rustfmt (1.4.18-stable)
-- clippy (0.0.212)
-- rustdoc (1.46.0)
-- bindgen (0.55.1)
-- cbindgen (0.14.4)
-- cargo audit (0.12.0)
-- cargo outdated (v0.9.11)
-- Julia (julia version 1.5.1)
-- sbt (1.3.13)
-- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
-- Sphinx Open Source Search Server
-- Subversion (svn, version 1.9.3 (r1718519))
-- Terraform (Terraform v0.13.2)
-- Packer (1.6.2)
-- Vcpkg 2020.06.15-unknownhash
-- Vercel CLI (20.1.0)
-- MongoDB on Linux v4.4.1
-- Haveged 1.9.1-3
-- Swig 3.0.8
-- Netlify CLI (netlify-cli/2.63.0 linux-x64 node-v12.18.3)
-- Google Repository 58
-- Google Play services 49
-- Google APIs 24
-- Google APIs 23
-- Google APIs 22
-- Google APIs 21
-- CMake 3.10.2.4988404
-3.6.4111459
-- Android ConstraintLayout 1.0.2
-- Android ConstraintLayout 1.0.1
-- Android ConstraintLayout Solver 1.0.2
-- Android ConstraintLayout Solver 1.0.1
-- Android SDK Platform-Tools 30.0.4
-- Android SDK Platform 30
-- Android SDK Platform 29
-- Android SDK Platform 28
-- Android SDK Platform 27
-- Android SDK Platform 26
-- Android SDK Platform 25
-- Android SDK Platform 24
-- Android SDK Platform 23
-- Android SDK Platform 22
-- Android SDK Platform 21
-- Android SDK Platform 19
-- Android SDK Platform 17
-- Android SDK Platform 15
-- Android SDK Platform 10
-- Android SDK Patch Applier v4
-- Android SDK Build-Tools 30.0.2
-- Android SDK Build-Tools 30.0.1
-- Android SDK Build-Tools 30.0.0
-- Android SDK Build-Tools 29.0.3
-- Android SDK Build-Tools 29.0.2
-- Android SDK Build-Tools 29.0.0
-- Android SDK Build-Tools 28.0.3
-- Android SDK Build-Tools 28.0.2
-- Android SDK Build-Tools 28.0.1
-- Android SDK Build-Tools 28.0.0
-- Android SDK Build-Tools 27.0.3
-- Android SDK Build-Tools 27.0.2
-- Android SDK Build-Tools 27.0.1
-- Android SDK Build-Tools 27.0.0
-- Android SDK Build-Tools 26.0.3
-- Android SDK Build-Tools 26.0.2
-- Android SDK Build-Tools 26.0.1
-- Android SDK Build-Tools 26.0.0
-- Android SDK Build-Tools 25.0.3
-- Android SDK Build-Tools 25.0.2
-- Android SDK Build-Tools 25.0.1
-- Android SDK Build-Tools 25.0.0
-- Android SDK Build-Tools 24.0.3
-- Android SDK Build-Tools 24.0.2
-- Android SDK Build-Tools 24.0.1
-- Android SDK Build-Tools 24.0.0
-- Android SDK Build-Tools 23.0.3
-- Android SDK Build-Tools 23.0.2
-- Android SDK Build-Tools 23.0.1
-- Android SDK Build-Tools 22.0.1
-- Android SDK Build-Tools 21.1.2
-- Android SDK Build-Tools 20.0.0
-- Android SDK Build-Tools 19.1.0
-- Android SDK Build-Tools 17.0.0
-- Android NDK 21.3.6528147
-- Az Module (1.0.0)
-- Az Module (1.6.0)
-- Az Module (2.3.2)
-- Az Module (2.6.0)
-- Az Module (2.8.0)
-- Az Module (3.1.0)
-- Az Module (3.5.0)
-- Az Module (3.8.0)
-- Az Module (4.3.0)
-- Az Module (4.4.0)
-- Az Module (4.6.0)
-- Ruby:
- - Ruby 2.4.10
- - Ruby 2.5.8
- - Ruby 2.6.6
- - Ruby 2.7.1
-- Python (Python 2.7.12)
-- pip (pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7))
-- Python3 (Python 3.5.2)
-- pip3 (pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5))
-- Python:
- - Python 2.7.18
- - Python 3.5.10
- - Python 3.6.12
- - Python 3.7.9
- - Python 3.8.5
-- PyPy:
- - PyPy 2.7.13 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
- - PyPy 3.6.9 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
-- node:
- - node 8.17.0
- - node 10.22.0
- - node 12.18.3
- - node 14.10.1
-- go:
- - go 1.11.13
- - go 1.12.17
- - go 1.13.15
- - go 1.14.9
- - go 1.15.2
-- boost:
- - boost 1.69.0
- - boost 1.72.0
-- AWS SAM CLI, version 1.2.0
-- Homebrew on Linux (Homebrew 2.5.1
-Homebrew/linuxbrew-core (git revision d52011; last commit 2020-09-12))
+
+```
+ 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
+#### Ruby
+- 2.4.10
+- 2.5.8
+- 2.6.6
+- 2.7.1
+
+#### Python
+- 2.7.18
+- 3.5.10
+- 3.6.12
+- 3.7.9
+- 3.8.6
+- 3.9.0
+
+#### PyPy
+- 2.7.13 [PyPy 7.3.2]
+- 3.6.9 [PyPy 7.3.2]
+
+#### Node.js
+- 8.17.0
+- 10.22.1
+- 12.19.0
+- 14.13.1
+
+#### Go
+- 1.11.13
+- 1.12.17
+- 1.13.15
+- 1.14.10
+- 1.15.3
+
+#### Boost
+- 1.69.0
+- 1.72.0
+
+### Android
+| Package Name | Version |
+| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Android SDK Platform-Tools | 30.0.4 |
+| Android SDK Tools | 26.1.1 |
+| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3)
android-22 (rev 2)
android-21 (rev 2)
android-20 (rev 2)
android-19 (rev 4)
android-18 (rev 3)
android-17 (rev 3)
android-16 (rev 5)
android-15 (rev 5)
android-14 (rev 4)
android-13 (rev 1)
android-12 (rev 3)
android-11 (rev 2)
android-10 (rev 2) |
+| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3
22.0.1
21.1.2
20.0.0
19.1.0 |
+| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 |
+| NDK | 21.3.6528147 |
+| Android Support Repository | 47.0.0 |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| SDK Patch Applier v4 | 1 |
+| CMake | 3.10.2
3.6.4111459 |
+
+### Cached Docker images
+- alpine:3.7
+- alpine:3.8
+- alpine:3.9
+- alpine:3.10
+- buildpack-deps:stretch
+- buildpack-deps:buster
+- debian:8
+- debian:9
+- jekyll/builder
+- mcr.microsoft.com/azure-pipelines/node8-typescript
+- node:10
+- node:12
+- node:10-alpine
+- node:12-alpine
+- ubuntu:14.04
+
+### Installed apt packages
+- bison, brotli, bzip2, curl, dbus, dnsutils, dpkg, fakeroot, file, flex, ftp, gnupg2, iproute2, iputils-ping, jq, lib32z1, libc++-dev, libc++abi-dev, libcurl3, libgbm-dev, libgconf-2-4, libgtk-3-0, libicu55, libsecret-1-dev, libsqlite3-dev, libunwind8, libxkbfile-dev, libxss1, locales, m4, netcat, openssh-client, parallel, patchelf, pkg-config, rpm, rsync, shellcheck, sqlite3, ssh, sudo, telnet, texinfo, time, tk, tzdata, unzip, upx, wget, xorriso, xvfb, xz-utils, yamllint, zip, zstd, zsync
+
+
diff --git a/images/linux/Ubuntu1804-README.md b/images/linux/Ubuntu1804-README.md
index afcf59dc..0029ea31 100644
--- a/images/linux/Ubuntu1804-README.md
+++ b/images/linux/Ubuntu1804-README.md
@@ -1,378 +1,233 @@
-
-| Announcements |
-|-|
-| [Clang/LLVM 10 will be set as a default one and Clang/LLVM 6 will be deprecated for Ubuntu 20.04 on September, 23](https://github.com/actions/virtual-environments/issues/1536) |
+| Announcements |
+|-|
+| [Ubuntu-latest workflows will use Ubuntu-20.04](https://github.com/actions/virtual-environments/issues/1816) |
+| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) |
***
# Ubuntu 18.04.5 LTS
-The following software is installed on machines with the 20200914.1 update.
-***
+- Image Version: 20201015.1
+
+## Installed Software
+### Language and Runtime
+- GNU C++ 7.5.0, 8.4.0, 9.3.0, 10.1.0
+- GNU Fortran 7.5.0, 8.4.0, 9.3.0
+- Clang 6.0.0, 8.0.0, 9.0.0
+- Erlang 11.1
+- Mono 6.12.0.90
+- Node 12.19.0
+- Python 2.7.17
+- Python3 3.6.9
+- PowerShell 7.0.3
+- Ruby 2.5.1p57
+- Swift 5.3
+- Julia 1.5.2
+
+### Package Management
+- Gem 3.1.4
+- Helm 3.3.4
+- Homebrew 2.5.6
+- Miniconda 4.8.3
+- Npm 6.14.8
+- Pip 9.0.1
+- Pip3 9.0.1
+- Pipx 0.15.5.1
+- Vcpkg 2020.06.15
+- Yarn 1.22.5
+
+### Project Management
+- Ant 1.10.5
+- Gradle 6.7
+- Maven 3.6.3
+- Sbt 1.4.0
+
+### Tools
- 7-Zip 16.02
-- Ansible (ansible 2.9.13)
-- AzCopy7 (available by azcopy alias) 7.3.0
-- AzCopy10 (available by azcopy10 alias) 10.6.0
-- Azure CLI (azure-cli 2.11.1)
-- Azure CLI (azure-devops 0.18.0)
-- Basic packages:
- - dbus
- - dnsutils
- - dpkg
- - fakeroot
- - gnupg2
- - iproute2
- - iputils-ping
- - lib32z1
- - libc++abi-dev
- - libc++-dev
- - libcurl3
- - libgbm-dev
- - libgconf-2-4
- - libgtk-3-0
- - libsecret-1-dev
- - libsqlite3-dev
- - libunwind8
- - libxkbfile-dev
- - libxss1
- - locales
- - openssh-client
- - pkg-config
- - rpm
- - texinfo
- - tk
- - tzdata
- - upx
- - xorriso
- - xvfb
- - xz-utils
- - zstd
- - zsync
- - bison
- - brotli
- - bzip2
- - curl
- - file
- - flex
- - ftp
- - jq
- - m4
- - netcat
- - parallel
- - patchelf
- - rsync
- - shellcheck
- - sqlite3
- - ssh
- - sudo
- - telnet
- - time
- - unzip
- - wget
- - yamllint
- - zip
-- Alibaba Cloud CLI (3.0.56)
-- AWS CLI (aws-cli/1.18.137 Python/2.7.17 Linux/5.4.0-1025-azure botocore/1.17.60)
-- AWS CLI Session manager plugin (1.1.61.0)
-- build-essential
-- Clang 6.0 (6.0.0)
-- Clang 8 (8.0.0)
-- Clang 9 (9.0.0)
-- Swift version 5.2.5 (swift-5.2.5-RELEASE)
-Target: x86_64-unknown-linux-gnu
-- CMake (cmake version 3.17.0)
-- Podman (2.0.6)
-- Buildah (1.15.2)
-- Skopeo (1.1.1)
-- Docker Compose (docker-compose version 1.27.2, build 18f557f9)
-- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
-- Docker-Buildx (0.4.2+azure)
-- Cached container images
- - node:10 (Digest: sha256:ab6f988c514b5c5fb6d5a6d18afb216084b256719791c6cc61096da58e66c436)
- - node:12 (Digest: sha256:20ffb04c1d35e273dc7aa68fe31ef136630d95128689283a8eb914329158022b)
- - buildpack-deps:stretch (Digest: sha256:4f72cea5afa05e21bf2aec93b219b0843a10af5e2f407cc184f211e45f929ccc)
- - buildpack-deps:buster (Digest: sha256:8a76b9f9ee417eb330e97d3129e373277515e98d0f3a95a89ab944b645190efd)
- - debian:9 (Digest: sha256:bc125c699d736ac84c92b76ab7028741bbac69f207b7a8a4065bca6f79d5698e)
- - debian:8 (Digest: sha256:e180975d5c1012518e711c92ab26a4ff98218f439a97d9adbcd503b0d3ad1c8a)
- - jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
- - node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
- - node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
- - alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
- - alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
- - alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
- - ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4)
- - alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10)
- - mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
-- .NET Core SDK:
- - 3.1.402
- - 3.1.401
- - 3.1.302
- - 3.1.301
- - 3.1.300
- - 3.1.202
- - 3.1.201
- - 3.1.200
- - 3.1.108
- - 3.1.107
- - 3.1.106
- - 3.1.105
- - 3.1.104
- - 3.1.103
- - 3.1.102
- - 3.1.101
- - 3.1.100
- - 3.0.103
- - 3.0.102
- - 3.0.101
- - 3.0.100
- - 2.1.810
- - 2.1.809
- - 2.1.808
- - 2.1.807
- - 2.1.806
- - 2.1.805
- - 2.1.804
- - 2.1.803
- - 2.1.802
- - 2.1.801
- - 2.1.701
- - 2.1.700
- - 2.1.615
- - 2.1.614
- - 2.1.613
- - 2.1.612
- - 2.1.611
- - 2.1.610
- - 2.1.609
- - 2.1.608
- - 2.1.607
- - 2.1.606
- - 2.1.605
- - 2.1.604
- - 2.1.603
- - 2.1.602
- - 2.1.518
- - 2.1.517
- - 2.1.516
- - 2.1.515
- - 2.1.514
- - 2.1.513
- - 2.1.512
- - 2.1.511
- - 2.1.510
- - 2.1.509
- - 2.1.508
- - 2.1.507
- - 2.1.506
- - 2.1.505
- - 2.1.504
- - 2.1.503
- - 2.1.502
- - 2.1.500
- - 2.1.403
- - 2.1.402
- - 2.1.401
- - 2.1.302
- - 2.1.301
- - 2.1.300
-- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.0.3)
-- Firefox (Mozilla Firefox 80.0.1)
-- Geckodriver (0.27.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
-- GNU C++ 7.5.0
-- GNU C++ 8.4.0
-- GNU C++ 9.3.0
-- GNU Fortran 8.4.0
-- GNU Fortran 9.3.0
-- Git (2.28.0)
-- Git Large File Storage (LFS) (2.12.0)
-- Git-ftp (1.3.1)
-- Hub CLI (2.14.2)
-- GitHub CLI 0.12.0
-- Google Chrome (Google Chrome 85.0.4183.102 )
-- ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}); Chrome Driver is available via CHROMEWEBDRIVER environment variable
-- Google Cloud SDK (309.0.0)
-- Haskell Cabal (cabal-install version 3.4.0.0
-compiled using version 3.4.0.0 of the Cabal library )
-- GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2)
-- Haskell Stack (Version 2.3.3, Git revision cb44d51bed48b723a5deb08c3348c0b3ccfc437e x86_64 hpack-0.33.0)
-- Heroku (heroku/7.42.13 linux-x64 node-v12.16.2)
-- HHVM (HipHop VM 4.74.0 (rel))
-- ImageMagick
-- Azul Zulu OpenJDK:
- - 7 (openjdk version "1.7.0_272")
-- Adopt OpenJDK:
- - 8 (openjdk version "1.8.0_265") (default)
- - 11 (openjdk version "11.0.8" 2020-07-14)
- - 12 (openjdk version "12.0.2" 2019-07-16)
-- Ant (Apache Ant(TM) version 1.10.5 compiled on March 28 2019)
-- Gradle 6.6.1
-- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
-- Kind (kind v0.8.1 go1.14.2 linux/amd64)
-- kubectl (Client Version: v1.19.1)
-- helm (v3.3.1+g249e521)
-- minikube version: v1.13.0
-- kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z })
-- oc CLI Client Version: 4.5.0-202005291417-9933eb9
-- Leiningen (Leiningen 2.9.4 on Java 1.8.0_265 OpenJDK 64-Bit Server VM)
-- Mercurial (Mercurial Distributed SCM (version 4.5.3))
-- Miniconda (conda 4.8.3)
-- Mono (Mono JIT compiler version 6.12.0.90 (tarball Fri Sep 4 14:01:23 UTC 2020))
-- NuGet (NuGet Version: 5.5.0.6382)
-- MySQL (mysql Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using EditLine wrapper)
+- Ansible 2.9.14
+- AzCopy10 10.6.0 (available by `azcopy10` alias)
+- AzCopy7 7.3.0 (available by `azcopy` alias)
+- Bazel 3.6.0
+- Bazelisk 1.7.2
+- Buildah 1.16.4
+- CMake 3.17.0
+- CodeQL Action Bundle 2.3.0
+- curl 7.58.0
+- Docker Compose 1.27.4
+- Docker-Buildx 0.4.2
+- Docker-Moby 19.03.13
+- Git 2.28.0
+- Git LFS 2.12.0
+- Git-ftp 1.3.1
+- Google Cloud SDK 314.0.0
+- Haveged 1.9.1
+- Heroku 7.46.0
+- HHVM (HipHop VM) 4.79.0
+- jq 1.5
+- Kind 0.9.0
+- Kubectl 1.19.3
+- Kustomize 3.8.5
+- Leiningen 2.9.4
+- m4 1.4.18
+- Mercurial 4.5.3
+- Minikube 1.14.0
+- Newman 5.2.0
+- nvm 0.36.0
+- Packer 1.6.4
+- PhantomJS 2.1.1
+- Podman 2.1.1
+- Pulumi 2.12.0
+- R 4.0.3
+- Skopeo 1.2.0
+- Sphinx Open Source Search Server 2.2.11
+- SVN 1.9.7
+- Swig 3.0.12
+- Terraform 0.13.4
+- unzip 6.00
+- wget 1.19.4
+- yamllint 1.25.0
+- zip 3.0
+- zstd 1.3.3
+
+### CLI Tools
+- Alibaba Cloud CLI 3.0.60
+- AWS CLI 1.18.157
+- AWS CLI Session manager plugin 1.1.61.0
+- AWS SAM CLI 1.6.2
+- Azure CLI (azure-cli) 2.13.0
+- Azure CLI (azure-devops) 0.18.0
+- GitHub CLI 1.1.0
+- Hub CLI 2.14.2
+- Netlify CLI 2.65.5
+- oc CLI 4.5.0
+- ORAS CLI 0.8.1
+- Vercel CLI 20.1.2
+
+### Java
+| Version | Vendor | Environment Variable |
+| ------------------- | ------------ | -------------------- |
+| 1.7.0_272 | Zulu | JAVA_HOME_7_X64 |
+| 1.8.0_265 (default) | AdoptOpenJDK | JAVA_HOME_8_X64 |
+| 11.0.8 | AdoptOpenJDK | JAVA_HOME_11_X64 |
+| 12.0.2 | AdoptOpenJDK | JAVA_HOME_12_X64 |
+
+### PHP
+| Tool | Version |
+| -------- | --------------------------- |
+| PHP | 7.1.33 7.2.34 7.3.23 7.4.11 |
+| Composer | 1.10.15 |
+| PHPUnit | 7.5.20 |
+
+### Haskell
+- GHC 8.10.2
+- Cabal 3.4.0.0
+- Stack 2.3.3
+
+### Rust Tools
+- Rust 1.47.0
+- Rustup 1.22.1
+- Rustdoc 1.47.0
+- Cargo 1.47.0
+
+#### Packages
+- Bindgen 0.55.1
+- Cargo audit 0.12.1
+- Cargo outdated 0.9.11
+- Cargo clippy 0.0.212
+- Cbindgen 0.15.0
+- Rustfmt 1.4.20
+
+### Browsers and Drivers
+- Google Chrome 86.0.4240.75
+- ChromeDriver 86.0.4240.22
+- Mozilla Firefox 81.0
+- Geckodriver 0.27.0
+
+### .NET Core SDK
+- 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.519 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.616 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 2.1.811 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.109 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403
+
+### Az Module
+- 1.0.0 1.6.0 2.3.2 2.6.0 2.8.0 3.1.0 3.5.0 3.8.0 4.3.0 4.4.0 4.6.0 4.7.0
+
+### Databases
+- Postgre SQL 13.0
+- MongoDB 4.4.1
+- sqlite3 3.22.0
+
+#### MySQL
+- MySQL 5.7.31
- MySQL Server (user:root password:root)
- MS SQL Server Client Tools
-- 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'
-- nvm (0.35.3)
-- Node.js (v12.18.3)
-- Grunt (grunt-cli v1.3.2)
-- Gulp (CLI version: 2.3.0
-Local version: Unknown)
-- n (6.7.0)
-- Parcel (1.12.4)
-- TypeScript (Version 4.0.2)
-- Webpack (4.44.1)
-- Webpack CLI (3.3.12)
-- Yarn (1.22.5)
-- Newman (5.2.0)
-- Bazel (bazel 3.5.0)
-- Bazelisk (1.6.1)
-- ORAS CLI 0.8.1
-- PhantomJS (2.1.1)
-- PHP 7.1 (PHP 7.1.33-17+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:47:20) ( NTS ))
-- PHP 7.2 (PHP 7.2.33-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Aug 7 2020 14:44:29) ( NTS ))
-- PHP 7.3 (PHP 7.3.22-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Sep 9 2020 06:46:30) ( NTS ))
-- PHP 7.4 (PHP 7.4.10 (cli) (built: Sep 9 2020 06:36:14) ( NTS ))
-- Composer (Composer version 1.10.13 2020-09-09 11:46:34)
-- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
-- Pollinate
-- psql (PostgreSQL) 12.4
-- Powershell (PowerShell 7.0.3)
-- Pulumi v2.10.0
-- ruby (2.5.1p57)
-- gem (3.1.4)
-- OpenSSL 1.1.1g 21 Apr 2020
-- Libssl 1.1.1g-1+ubuntu18.04.1+deb.sury.org+1
-- R 4.0.2
-- rustup (1.22.1)
-- rust (1.46.0)
-- cargo (1.46.0)
-- rustfmt (1.4.18-stable)
-- clippy (0.0.212)
-- rustdoc (1.46.0)
-- bindgen (0.55.1)
-- cbindgen (0.14.4)
-- cargo audit (0.12.0)
-- cargo outdated (v0.9.11)
-- Julia (julia version 1.5.1)
-- sbt (1.3.13)
-- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
-- Sphinx Open Source Search Server
-- Subversion (svn, version 1.9.7 (r1800392))
-- Terraform (Terraform v0.13.2)
-- Packer (1.6.2)
-- Vcpkg 2020.06.15-unknownhash
-- Vercel CLI (20.1.0)
-- MongoDB on Linux v4.4.1
-- Haveged 1.9.1-6
-- Swig 3.0.12
-- Netlify CLI (netlify-cli/2.63.0 linux-x64 node-v12.18.3)
-- Google Repository 58
-- Google Play services 49
-- Google APIs 24
-- Google APIs 23
-- Google APIs 22
-- Google APIs 21
-- CMake 3.10.2.4988404
-3.6.4111459
-- Android SDK Platform-Tools 30.0.4
-- Android SDK Platform 30
-- Android SDK Platform 29
-- Android SDK Platform 28
-- Android SDK Platform 27
-- Android SDK Platform 26
-- Android SDK Platform 25
-- Android SDK Platform 24
-- Android SDK Platform 23
-- Android SDK Platform 22
-- Android SDK Platform 21
-- Android SDK Platform 19
-- Android SDK Platform 17
-- Android SDK Patch Applier v4
-- Android SDK Build-Tools 30.0.2
-- Android SDK Build-Tools 30.0.1
-- Android SDK Build-Tools 30.0.0
-- Android SDK Build-Tools 29.0.3
-- Android SDK Build-Tools 29.0.2
-- Android SDK Build-Tools 29.0.0
-- Android SDK Build-Tools 28.0.3
-- Android SDK Build-Tools 28.0.2
-- Android SDK Build-Tools 28.0.1
-- Android SDK Build-Tools 28.0.0
-- Android SDK Build-Tools 27.0.3
-- Android SDK Build-Tools 27.0.2
-- Android SDK Build-Tools 27.0.1
-- Android SDK Build-Tools 27.0.0
-- Android SDK Build-Tools 26.0.3
-- Android SDK Build-Tools 26.0.2
-- Android SDK Build-Tools 26.0.1
-- Android SDK Build-Tools 26.0.0
-- Android SDK Build-Tools 25.0.3
-- Android SDK Build-Tools 25.0.2
-- Android SDK Build-Tools 25.0.1
-- Android SDK Build-Tools 25.0.0
-- Android SDK Build-Tools 24.0.3
-- Android SDK Build-Tools 24.0.2
-- Android SDK Build-Tools 24.0.1
-- Android SDK Build-Tools 24.0.0
-- Android SDK Build-Tools 23.0.3
-- Android SDK Build-Tools 23.0.2
-- Android SDK Build-Tools 23.0.1
-- Android SDK Build-Tools 22.0.1
-- Android SDK Build-Tools 21.1.2
-- Android SDK Build-Tools 20.0.0
-- Android SDK Build-Tools 19.1.0
-- Android SDK Build-Tools 17.0.0
-- Android NDK 21.3.6528147
-- Az Module (1.0.0)
-- Az Module (1.6.0)
-- Az Module (2.3.2)
-- Az Module (2.6.0)
-- Az Module (2.8.0)
-- Az Module (3.1.0)
-- Az Module (3.5.0)
-- Az Module (3.8.0)
-- Az Module (4.3.0)
-- Az Module (4.4.0)
-- Az Module (4.6.0)
-- Ruby:
- - Ruby 2.4.10
- - Ruby 2.5.8
- - Ruby 2.6.6
- - Ruby 2.7.1
-- Python (Python 2.7.17)
-- pip (pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7))
-- Python3 (Python 3.6.9)
-- pip3 (pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6))
-- Python:
- - Python 2.7.18
- - Python 3.5.10
- - Python 3.6.12
- - Python 3.7.9
- - Python 3.8.5
-- PyPy:
- - PyPy 2.7.13 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
- - PyPy 3.6.9 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
-- node:
- - node 8.17.0
- - node 10.22.0
- - node 12.18.3
- - node 14.10.1
-- go:
- - go 1.11.13
- - go 1.12.17
- - go 1.13.15
- - go 1.14.9
- - go 1.15.2
-- boost:
- - boost 1.69.0
- - boost 1.72.0
-- AWS SAM CLI, version 1.2.0
-- Homebrew on Linux (Homebrew 2.5.1
-Homebrew/linuxbrew-core (git revision d52011; last commit 2020-09-12))
+
+```
+ 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
+#### Ruby
+- 2.4.10
+- 2.5.8
+- 2.6.6
+- 2.7.1
+
+#### Python
+- 2.7.18
+- 3.5.10
+- 3.6.12
+- 3.7.9
+- 3.8.6
+- 3.9.0
+
+#### PyPy
+- 2.7.13 [PyPy 7.3.2]
+- 3.6.9 [PyPy 7.3.2]
+
+#### Node.js
+- 8.17.0
+- 10.22.1
+- 12.19.0
+- 14.13.1
+
+#### Go
+- 1.11.13
+- 1.12.17
+- 1.13.15
+- 1.14.10
+- 1.15.3
+
+#### Boost
+- 1.69.0
+- 1.72.0
+
+### Android
+| Package Name | Version |
+| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Android SDK Platform-Tools | 30.0.4 |
+| Android SDK Tools | 26.1.1 |
+| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3)
android-22 (rev 2)
android-21 (rev 2)
android-20 (rev 2)
android-19 (rev 4)
android-18 (rev 3)
android-17 (rev 3) |
+| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3
22.0.1
21.1.2
20.0.0
19.1.0 |
+| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 |
+| NDK | 21.3.6528147 |
+| Android Support Repository | 47.0.0 |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| SDK Patch Applier v4 | 1 |
+| CMake | 3.10.2
3.6.4111459 |
+
+### Cached Docker images
+- alpine:3.7
+- alpine:3.8
+- alpine:3.9
+- alpine:3.10
+- buildpack-deps:stretch
+- buildpack-deps:buster
+- debian:8
+- debian:9
+- jekyll/builder
+- mcr.microsoft.com/azure-pipelines/node8-typescript
+- node:10
+- node:12
+- node:10-alpine
+- node:12-alpine
+- ubuntu:14.04
+
+### Installed apt packages
+- bison, brotli, bzip2, curl, dbus, dnsutils, dpkg, fakeroot, file, flex, ftp, gnupg2, iproute2, iputils-ping, jq, lib32z1, libc++-dev, libc++abi-dev, libcurl3, libgbm-dev, libgconf-2-4, libgtk-3-0, libsecret-1-dev, libsqlite3-dev, libunwind8, libxkbfile-dev, libxss1, locales, m4, netcat, openssh-client, parallel, patchelf, pkg-config, rpm, rsync, shellcheck, sqlite3, ssh, sudo, telnet, texinfo, time, tk, tzdata, unzip, upx, wget, xorriso, xvfb, xz-utils, zip, zstd, zsync
+
+
diff --git a/images/linux/Ubuntu2004-README.md b/images/linux/Ubuntu2004-README.md
index 8f33731f..b192a23a 100644
--- a/images/linux/Ubuntu2004-README.md
+++ b/images/linux/Ubuntu2004-README.md
@@ -1,325 +1,222 @@
-
-| Announcements |
-|-|
-| [Clang/LLVM 10 will be set as a default one and Clang/LLVM 6 will be deprecated for Ubuntu 20.04 on September, 23](https://github.com/actions/virtual-environments/issues/1536) |
+| Announcements |
+|-|
+| [Ubuntu-latest workflows will use Ubuntu-20.04](https://github.com/actions/virtual-environments/issues/1816) |
+| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) |
***
# Ubuntu 20.04.1 LTS
-The following software is installed on machines with the 20200914.1 update.
-***
+- Image Version: 20201015.1
+
+## Installed Software
+### Language and Runtime
+- GNU C++ 7.5.0, 8.4.0, 9.3.0, 10.2.0
+- GNU Fortran 8.4.0, 9.3.0
+- Clang 8.0.1, 9.0.1, 10.0.0
+- Erlang 11.1
+- Mono 6.12.0.90
+- Node 12.19.0
+- Python 3.8.5
+- Python3 3.8.5
+- PowerShell 7.0.3
+- Ruby 2.7.0p0
+- Swift 5.3
+- Julia 1.5.2
+
+### Package Management
+- Gem 3.1.2
+- Helm 3.3.4
+- Homebrew 2.5.6
+- Miniconda 4.8.3
+- Npm 6.14.8
+- Pip 20.0.2
+- Pip3 20.0.2
+- Pipx 0.15.5.1
+- Vcpkg 2020.06.15
+- Yarn 1.22.5
+
+### Project Management
+- Ant 1.10.7
+- Gradle 6.7
+- Maven 3.6.3
+- Sbt 1.4.0
+
+### Tools
- 7-Zip 16.02
-- Ansible (ansible 2.9.6)
-- AzCopy7 (available by azcopy alias) 7.3.0
-- AzCopy10 (available by azcopy10 alias) 10.6.0
-- Azure CLI (azure-cli 2.11.1)
-- Azure CLI (azure-devops 0.18.0)
-- Basic packages:
- - dbus
- - dnsutils
- - dpkg
- - fakeroot
- - gnupg2
- - iproute2
- - iputils-ping
- - lib32z1
- - libc++abi-dev
- - libc++-dev
- - libcurl4
- - libgbm-dev
- - libgconf-2-4
- - libgtk-3-0
- - libsecret-1-dev
- - libsqlite3-dev
- - libunwind8
- - libxkbfile-dev
- - libxss1
- - locales
- - openssh-client
- - pkg-config
- - python-is-python2
- - rpm
- - texinfo
- - tk
- - tzdata
- - upx
- - xorriso
- - xvfb
- - xz-utils
- - zstd
- - zsync
- - bison
- - brotli
- - bzip2
- - curl
- - file
- - flex
- - ftp
- - jq
- - m4
- - netcat
- - parallel
- - patchelf
- - rsync
- - shellcheck
- - sqlite3
- - ssh
- - sudo
- - telnet
- - time
- - unzip
- - wget
- - yamllint
- - zip
-- Alibaba Cloud CLI (3.0.56)
-- AWS CLI (aws-cli/2.0.48 Python/3.7.3 Linux/5.4.0-1025-azure exe/x86_64.ubuntu.20)
-- AWS CLI Session manager plugin (1.1.61.0)
-- build-essential
-- Clang 6.0 (6.0.1)
-- Clang 8 (8.0.1)
-- Clang 9 (9.0.1)
-- Swift version 5.2.5 (swift-5.2.5-RELEASE)
-Target: x86_64-unknown-linux-gnu
-- CMake (cmake version 3.17.0)
-- Podman (2.0.6)
-- Buildah (1.15.2)
-- Skopeo (1.1.1)
-- Docker Compose (docker-compose version 1.27.2, build 18f557f9)
-- Docker-Moby (Docker version 19.03.12+azure, build 0ed913b885c8919944a2e4c8d0b80a318a8dd48b)
-- Docker-Buildx (0.4.2+azure)
-- Cached container images
- - node:10 (Digest: sha256:ab6f988c514b5c5fb6d5a6d18afb216084b256719791c6cc61096da58e66c436)
- - node:12 (Digest: sha256:20ffb04c1d35e273dc7aa68fe31ef136630d95128689283a8eb914329158022b)
- - buildpack-deps:stretch (Digest: sha256:4f72cea5afa05e21bf2aec93b219b0843a10af5e2f407cc184f211e45f929ccc)
- - buildpack-deps:buster (Digest: sha256:8a76b9f9ee417eb330e97d3129e373277515e98d0f3a95a89ab944b645190efd)
- - debian:9 (Digest: sha256:bc125c699d736ac84c92b76ab7028741bbac69f207b7a8a4065bca6f79d5698e)
- - debian:8 (Digest: sha256:e180975d5c1012518e711c92ab26a4ff98218f439a97d9adbcd503b0d3ad1c8a)
- - jekyll/builder:latest (Digest: sha256:4bc6a3b6eddebef1652ef38ceb965fc9c1b06677f65f764e1e17b88dc2aa9934)
- - node:12-alpine (Digest: sha256:9623cd396644f9b2e595d833dc0188a880333674488d939338ab5fde10ef7c43)
- - node:10-alpine (Digest: sha256:2f202af4d6baba655fef9c93f41a914b33ee576b9f55a6e69ba23b49e3b62766)
- - alpine:3.9 (Digest: sha256:414e0518bb9228d35e4cd5165567fb91d26c6a214e9c95899e1e056fcd349011)
- - alpine:3.10 (Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35)
- - alpine:3.8 (Digest: sha256:2bb501e6173d9d006e56de5bce2720eb06396803300fe1687b58a7ff32bf4c14)
- - ubuntu:14.04 (Digest: sha256:ffc76f71dd8be8c9e222d420dc96901a07b61616689a44c7b3ef6a10b7213de4)
- - alpine:3.7 (Digest: sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10)
- - mcr.microsoft.com/azure-pipelines/node8-typescript:latest (Digest: sha256:e52e60b9f71183969830a3664279b5d8c799b4b0ec2c25a0686f7c02f6a9669a)
-- .NET Core SDK:
- - 3.1.402
- - 3.1.401
- - 3.1.302
- - 3.1.301
- - 3.1.300
- - 3.1.202
- - 3.1.201
- - 3.1.200
- - 3.1.108
- - 3.1.107
- - 3.1.106
- - 3.1.105
- - 3.1.104
- - 3.1.103
- - 3.1.102
- - 3.1.101
- - 3.1.100
- - 2.1.810
- - 2.1.809
- - 2.1.808
- - 2.1.807
- - 2.1.806
- - 2.1.805
- - 2.1.804
- - 2.1.803
- - 2.1.802
- - 2.1.801
- - 2.1.701
- - 2.1.700
- - 2.1.615
- - 2.1.614
- - 2.1.613
- - 2.1.612
- - 2.1.611
- - 2.1.610
- - 2.1.609
- - 2.1.608
- - 2.1.607
- - 2.1.606
- - 2.1.605
- - 2.1.604
- - 2.1.603
- - 2.1.602
- - 2.1.518
- - 2.1.517
- - 2.1.516
- - 2.1.515
- - 2.1.514
- - 2.1.513
- - 2.1.512
- - 2.1.511
- - 2.1.510
- - 2.1.509
- - 2.1.508
- - 2.1.507
- - 2.1.506
- - 2.1.505
- - 2.1.504
- - 2.1.503
- - 2.1.502
- - 2.1.500
- - 2.1.403
- - 2.1.402
- - 2.1.401
- - 2.1.302
- - 2.1.301
- - 2.1.300
-- Erlang (Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 11.0.3)
-- Firefox (Mozilla Firefox 80.0.1)
-- Geckodriver (0.27.0); Gecko Driver is available via GECKOWEBDRIVER environment variable
-- GNU C++ 7.5.0
-- GNU C++ 8.4.0
-- GNU C++ 9.3.0
-- GNU Fortran 8.4.0
-- GNU Fortran 9.3.0
-- Git (2.28.0)
-- Git Large File Storage (LFS) (2.12.0)
-- Git-ftp (1.6.0)
-- Hub CLI (2.14.2)
-- GitHub CLI 0.12.0
-- Google Chrome (Google Chrome 85.0.4183.102 )
-- ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}); Chrome Driver is available via CHROMEWEBDRIVER environment variable
-- Google Cloud SDK (309.0.0)
-- Haskell Cabal (cabal-install version 3.4.0.0
-compiled using version 3.4.0.0 of the Cabal library )
-- GHC (The Glorious Glasgow Haskell Compilation System, version 8.10.2)
-- Haskell Stack (Version 2.3.3, Git revision cb44d51bed48b723a5deb08c3348c0b3ccfc437e x86_64 hpack-0.33.0)
-- Heroku (heroku/7.42.13 linux-x64 node-v12.16.2)
-- HHVM (HipHop VM 4.74.0 (rel))
-- ImageMagick
-- Adopt OpenJDK:
- - 8 (openjdk version "1.8.0_265")
- - 11 (openjdk version "11.0.8" 2020-07-14) (default)
-- Ant (Apache Ant(TM) version 1.10.7 compiled on October 24 2019)
-- Gradle 6.6.1
-- Maven (Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f))
-- Kind (kind v0.8.1 go1.14.2 linux/amd64)
-- kubectl (Client Version: v1.19.1)
-- helm (v3.3.1+g249e521)
-- minikube version: v1.13.0
-- kustomize ({kustomize/v3.8.2 2020-08-29T17:44:01Z })
-- oc CLI Client Version: 4.5.0-202005291417-9933eb9
-- Leiningen (Leiningen 2.9.4 on Java 11.0.8 OpenJDK 64-Bit Server VM)
-- Mercurial (Mercurial Distributed SCM (version 5.3.1))
-- Miniconda (conda 4.8.3)
-- Mono (Mono JIT compiler version 6.12.0.90 (tarball Fri Sep 4 14:02:38 UTC 2020))
-- NuGet (NuGet Version: 5.5.0.6382)
-- MySQL (mysql Ver 8.0.21-0ubuntu0.20.04.4 for Linux on x86_64 ((Ubuntu)))
+- Ansible 2.9.6
+- AzCopy10 10.6.0 (available by `azcopy10` alias)
+- AzCopy7 7.3.0 (available by `azcopy` alias)
+- Bazel 3.6.0
+- Bazelisk 1.7.2
+- Buildah 1.16.4
+- CMake 3.17.0
+- CodeQL Action Bundle 2.3.0
+- curl 7.68.0
+- Docker Compose 1.27.4
+- Docker-Buildx 0.4.2
+- Docker-Moby 19.03.13
+- Git 2.28.0
+- Git LFS 2.12.0
+- Git-ftp 1.6.0
+- Google Cloud SDK 314.0.0
+- Haveged 1.9.1
+- Heroku 7.46.0
+- HHVM (HipHop VM) 4.79.0
+- jq 1.6
+- Kind 0.9.0
+- Kubectl 1.19.3
+- Kustomize 3.8.5
+- Leiningen 2.9.4
+- m4 1.4.18
+- Mercurial 5.3.1
+- Minikube 1.14.0
+- Newman 5.2.0
+- nvm 0.36.0
+- Packer 1.6.4
+- PhantomJS 2.1.1
+- Podman 2.1.1
+- Pulumi 2.12.0
+- R 4.0.3
+- Skopeo 1.2.0
+- Sphinx Open Source Search Server 2.2.11
+- SVN 1.13.0
+- Swig 4.0.1
+- Terraform 0.13.4
+- unzip 6.00
+- wget 1.20.3
+- yamllint 1.25.0
+- zip 3.0
+- zstd 1.4.4
+
+### CLI Tools
+- Alibaba Cloud CLI 3.0.60
+- AWS CLI 2.0.56
+- AWS CLI Session manager plugin 1.1.61.0
+- AWS SAM CLI 1.6.2
+- Azure CLI (azure-cli) 2.13.0
+- Azure CLI (azure-devops) 0.18.0
+- GitHub CLI 1.1.0
+- Hub CLI 2.14.2
+- Netlify CLI 2.65.5
+- oc CLI 4.5.0
+- ORAS CLI 0.8.1
+- Vercel CLI 20.1.2
+
+### Java
+| Version | Vendor | Environment Variable |
+| ---------------- | ------------ | -------------------- |
+| 1.8.0_265 | AdoptOpenJDK | JAVA_HOME_8_X64 |
+| 11.0.8 (default) | AdoptOpenJDK | JAVA_HOME_11_X64 |
+
+### PHP
+| Tool | Version |
+| -------- | ------- |
+| PHP | 7.4.11 |
+| Composer | 1.10.15 |
+| PHPUnit | 7.5.20 |
+
+### Haskell
+- GHC 8.10.2
+- Cabal 3.4.0.0
+- Stack 2.3.3
+
+### Rust Tools
+- Rust 1.47.0
+- Rustup 1.22.1
+- Rustdoc 1.47.0
+- Cargo 1.47.0
+
+#### Packages
+- Bindgen 0.55.1
+- Cargo audit 0.12.1
+- Cargo outdated 0.9.11
+- Cargo clippy 0.0.212
+- Cbindgen 0.15.0
+- Rustfmt 1.4.20
+
+### Browsers and Drivers
+- Google Chrome 86.0.4240.75
+- ChromeDriver 86.0.4240.22
+- Mozilla Firefox 81.0
+- Geckodriver 0.27.0
+
+### .NET Core SDK
+- 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.519 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.616 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 2.1.811 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.109 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403
+
+### Az Module
+- 4.8.0
+
+### Databases
+- Postgre SQL 13.0
+- MongoDB 4.4.1
+- sqlite3 3.31.1
+
+#### MySQL
+- MySQL 8.0.21
- MySQL Server (user:root password:root)
- MS SQL Server Client Tools
-- 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'
-- nvm (0.35.3)
-- Node.js (v12.18.3)
-- Grunt (grunt-cli v1.3.2)
-- Gulp (CLI version: 2.3.0
-Local version: Unknown)
-- n (6.7.0)
-- Parcel (1.12.4)
-- TypeScript (Version 4.0.2)
-- Webpack (4.44.1)
-- Webpack CLI (3.3.12)
-- Yarn (1.22.5)
-- Newman (5.2.0)
-- Bazel (bazel 3.5.0)
-- Bazelisk (1.6.1)
-- ORAS CLI 0.8.1
-- PhantomJS (2.1.1)
-- PHP 7.4 (PHP 7.4.10 (cli) (built: Sep 9 2020 06:36:30) ( NTS ))
-> To use ppa:ondrej/php APT repository On Ubuntu 20.04 it is necessary to add it to the APT sources
+
```
-apt-add-repository ppa:ondrej/php -y
-apt-get update
+ 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'
```
-- Composer (Composer version 1.10.13 2020-09-09 11:46:34)
-- PHPUnit (PHPUnit 7.5.20 by Sebastian Bergmann and contributors.)
-- Pollinate
-- psql (PostgreSQL) 12.4
-- Powershell (PowerShell 7.0.3)
-- Pulumi v2.10.0
-- ruby (2.7.0p0)
-- gem (3.1.2)
-- OpenSSL 1.1.1f 31 Mar 2020
-- Libssl 1.1.1f-1ubuntu2
-- R 4.0.2
-- rustup (1.22.1)
-- rust (1.46.0)
-- cargo (1.46.0)
-- rustfmt (1.4.18-stable)
-- clippy (0.0.212)
-- rustdoc (1.46.0)
-- bindgen (0.55.1)
-- cbindgen (0.14.4)
-- cargo audit (0.12.0)
-- cargo outdated (v0.9.11)
-- Julia (julia version 1.5.1)
-- sbt (copying runtime jar...
-1.3.13)
-- Selenium server standalone (available via SELENIUM_JAR_PATH environment variable)
-- Sphinx Open Source Search Server
-- Subversion (svn, version 1.13.0 (r1867053))
-- Terraform (Terraform v0.13.2)
-- Packer (1.6.2)
-- Vcpkg 2020.06.15-unknownhash
-- Vercel CLI (20.1.0)
-- MongoDB on Linux v4.4.1
-- Haveged 1.9.1-6ubuntu1
-- Swig 4.0.1
-- Netlify CLI (netlify-cli/2.63.0 linux-x64 node-v12.18.3)
-- Google Repository 58
-- Google Play services 49
-- CMake 3.10.2.4988404
-- Android SDK Platform-Tools 30.0.4
-- Android SDK Platform 30
-- Android SDK Platform 29
-- Android SDK Platform 28
-- Android SDK Platform 27
-- Android SDK Patch Applier v4
-- Android SDK Build-Tools 30.0.2
-- Android SDK Build-Tools 30.0.1
-- Android SDK Build-Tools 30.0.0
-- Android SDK Build-Tools 29.0.3
-- Android SDK Build-Tools 29.0.2
-- Android SDK Build-Tools 29.0.0
-- Android SDK Build-Tools 28.0.3
-- Android SDK Build-Tools 28.0.2
-- Android SDK Build-Tools 28.0.1
-- Android SDK Build-Tools 28.0.0
-- Android SDK Build-Tools 27.0.3
-- Android SDK Build-Tools 27.0.2
-- Android SDK Build-Tools 27.0.1
-- Android SDK Build-Tools 27.0.0
-- Android NDK 21.3.6528147
-- Az Module (4.6.1)
-- Ruby:
- - Ruby 2.5.8
- - Ruby 2.6.6
- - Ruby 2.7.1
-- Python (Python 2.7.18rc1)
-- pip (pip 20.2.3 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7))
-- Python3 (Python 3.8.2)
-- pip3 (pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8))
-- Python:
- - Python 2.7.18
- - Python 3.5.10
- - Python 3.6.12
- - Python 3.7.9
- - Python 3.8.5
-- PyPy:
- - PyPy 2.7.13 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
- - PyPy 3.6.9 [PyPy 7.3.1 with GCC 7.3.1 20180303 (Red Hat 7.3.1-5)]
-- node:
- - node 8.17.0
- - node 10.22.0
- - node 12.18.3
- - node 14.10.1
-- go:
- - go 1.14.9
- - go 1.15.2
-- AWS SAM CLI, version 1.2.0
-- Homebrew on Linux (Homebrew 2.5.1
-Homebrew/linuxbrew-core (git revision d52011; last commit 2020-09-12))
+### Cached Tools
+#### Ruby
+- 2.5.8
+- 2.6.6
+- 2.7.1
+
+#### Python
+- 2.7.18
+- 3.5.10
+- 3.6.12
+- 3.7.9
+- 3.8.6
+- 3.9.0
+
+#### PyPy
+- 2.7.13 [PyPy 7.3.2]
+- 3.6.9 [PyPy 7.3.2]
+
+#### Node.js
+- 8.17.0
+- 10.22.1
+- 12.19.0
+- 14.13.1
+
+#### Go
+- 1.14.10
+- 1.15.3
+
+### Android
+| Package Name | Version |
+| -------------------------- | ----------------------------------------------------------------------------------------------------------------- |
+| Android SDK Platform-Tools | 30.0.4 |
+| Android SDK Tools | 26.1.1 |
+| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) |
+| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 |
+| NDK | 21.3.6528147 |
+| Android Support Repository | 47.0.0 |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| SDK Patch Applier v4 | 1 |
+| CMake | 3.10.2 |
+
+### Cached Docker images
+- alpine:3.7
+- alpine:3.8
+- alpine:3.9
+- alpine:3.10
+- buildpack-deps:stretch
+- buildpack-deps:buster
+- debian:8
+- debian:9
+- jekyll/builder
+- mcr.microsoft.com/azure-pipelines/node8-typescript
+- node:10
+- node:12
+- node:10-alpine
+- node:12-alpine
+- ubuntu:14.04
+
+### Installed apt packages
+- bison, brotli, bzip2, curl, dbus, dnsutils, dpkg, fakeroot, file, flex, ftp, gnupg2, iproute2, iputils-ping, jq, lib32z1, libc++-dev, libc++abi-dev, libcurl4, libgbm-dev, libgconf-2-4, libgtk-3-0, libsecret-1-dev, libsqlite3-dev, libunwind8, libxkbfile-dev, libxss1, locales, m4, netcat, openssh-client, parallel, patchelf, pkg-config, python-is-python3, rpm, rsync, shellcheck, sqlite3, ssh, sudo, telnet, texinfo, time, tk, tzdata, unzip, upx, wget, xorriso, xvfb, xz-utils, zip, zstd, zsync
+
+
diff --git a/images/linux/post-generation/homebrew-permissions.sh b/images/linux/post-generation/homebrew-permissions.sh
new file mode 100644
index 00000000..1dbd043e
--- /dev/null
+++ b/images/linux/post-generation/homebrew-permissions.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Fix permissions for Homebrew
+# https://github.com/actions/virtual-environments/issues/1568
+brew_folder="/home/linuxbrew/"
+if [ -d "$brew_folder" ]; then
+ brew_folder_owner=$(ls -ld $brew_folder | awk '{print $3}')
+ if [ "$USER" != "$brew_folder_owner" ]; then
+ chown "$USER":docker -R $brew_folder
+ fi
+fi
diff --git a/images/linux/post-generation/rust-permissions.sh b/images/linux/post-generation/rust-permissions.sh
new file mode 100644
index 00000000..6673686b
--- /dev/null
+++ b/images/linux/post-generation/rust-permissions.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Fix permissions for the Rust folder
+# https://github.com/actions/virtual-environments/issues/572
+rust_folder="/usr/share/rust"
+if [ -d "$rust_folder" ]; then
+ rust_folder_owner=$(ls -ld $rust_folder | awk '{print $3}')
+ if [ "$USER" != "$rust_folder_owner" ]; then
+ chown "$USER":docker -R $rust_folder
+ fi
+fi
diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1
index 64a9d1c3..1989caf4 100644
--- a/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1
+++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1
@@ -5,37 +5,37 @@ function Get-OSName {
}
function Get-CPPVersions {
- $cppVersions = apt list --installed 2>&1 | Where-Object { $_ -match "g\+\+-\d+"} | ForEach-Object {
- $_ -match "now (?\d+\.\d+\.\d+)-" | Out-Null
- $Matches.version
- }
+ $result = Get-CommandResult "apt list --installed" -Multiline
+ $cppVersions = $result.Output | Where-Object { $_ -match "g\+\+-\d+"} | ForEach-Object {
+ & $_.Split("/")[0] --version | Select-Object -First 1 | Take-OutputPart -Part 3
+ } | Sort-Object {[Version]$_}
return "GNU C++ " + ($cppVersions -Join ", ")
}
function Get-FortranVersions {
- $fortranVersions = apt list --installed 2>&1 | Where-Object { $_ -match "^gfortran-\d+"} | ForEach-Object {
+ $result = Get-CommandResult "apt list --installed" -Multiline
+ $fortranVersions = $result.Output | Where-Object { $_ -match "^gfortran-\d+"} | ForEach-Object {
$_ -match "now (?\d+\.\d+\.\d+)-" | Out-Null
$Matches.version
- }
+ } | Sort-Object {[Version]$_}
return "GNU Fortran " + ($fortranVersions -Join ", ")
}
function Get-ClangVersions {
$clangVersions = @()
- $clangVersions = apt list --installed 2>&1 | Where-Object { $_ -match "^clang-\d+"} | ForEach-Object {
+ $result = Get-CommandResult "apt list --installed" -Multiline
+ $clangVersions = $result.Output | Where-Object { $_ -match "^clang-\d+"} | ForEach-Object {
$clangCommand = ($_ -Split "/")[0]
Invoke-Expression "$clangCommand --version" | Where-Object { $_ -match "clang version" } | ForEach-Object {
$_ -match "clang version (?\d+\.\d+\.\d+)-" | Out-Null
$Matches.version
}
- }
+ } | Sort-Object {[Version]$_}
return "Clang " + ($clangVersions -Join ", ")
}
function Get-ErlangVersion {
- $result = Get-CommandResult "erl -version"
- $result.Output -match "version (?\d+\.\d+\.\d+)" | Out-Null
- $version = $Matches.version
+ $version = (erl -eval 'erlang:display(erlang:system_info(version)), halt().' -noshell).Trim('"')
return "Erlang $version"
}
@@ -144,26 +144,27 @@ function Get-AntVersion {
}
function Get-GradleVersion {
- $result = gradle -v | Out-String
- $result -match "Gradle (?\d+\.\d+\.\d+)" | Out-Null
- $gradleVersion = $Matches.version
+ $gradleVersion = (gradle -v) -match "^Gradle \d" | Take-OutputPart -Part 1
return "Gradle $gradleVersion"
}
+
function Get-MavenVersion {
$result = mvn -version | Out-String
$result -match "Apache Maven (?\d+\.\d+\.\d+)" | Out-Null
$mavenVersion = $Matches.version
return "Maven $mavenVersion"
}
+
function Get-SbtVersion {
- $result = sbt -version 2>&1 | Out-String
- $result -match "sbt script version: (?\d+\.\d+\.\d+)" | Out-Null
+ $result = Get-CommandResult "sbt -version"
+ $result.Output -match "sbt script version: (?\d+\.\d+\.\d+)" | Out-Null
$sbtVersion = $Matches.version
return "Sbt $sbtVersion"
}
function Get-PHPVersions {
- return $(apt list --installed 2>&1) | Where-Object { $_ -match "^php\d+\.\d+/"} | ForEach-Object {
+ $result = Get-CommandResult "apt list --installed" -Multiline
+ return $result.Output | Where-Object { $_ -match "^php\d+\.\d+/"} | ForEach-Object {
$_ -match "now (?\d+\.\d+\.\d+)-" | Out-Null
$Matches.version
}
@@ -244,4 +245,11 @@ function Get-AptPackages {
$apt = $toolsetJson.apt
$pkgs = ($apt.common_packages + $apt.cmd_packages | Sort-Object) -join ", "
return $pkgs
+}
+
+function Get-PipxVersion {
+ $result = (Get-CommandResult "pipx --version").Output
+ $result -match "(?\d+\.\d+\.\d+\.?\d*)" | Out-Null
+ $pipxVersion = $Matches.Version
+ return "Pipx $pipxVersion"
}
\ No newline at end of file
diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1
index 73a8d63e..df77ea23 100644
--- a/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1
+++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Generator.ps1
@@ -3,6 +3,8 @@ param (
$OutputDirectory
)
+$ErrorActionPreference = "Stop"
+
Import-Module MarkdownPS
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Android.psm1") -DisableNameChecking
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Browsers.psm1") -DisableNameChecking
@@ -14,6 +16,9 @@ Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Java.psm1") -DisableNameC
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Rust.psm1") -DisableNameChecking
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Tools.psm1") -DisableNameChecking
+# Restore file owner in user profile
+Restore-UserOwner
+
$markdown = ""
if ($env:ANNOUNCEMENTS) {
@@ -49,7 +54,8 @@ $markdown += New-MDList -Style Unordered -Lines @(
)
$markdown += New-MDHeader "Package Management" -Level 3
-$markdown += New-MDList -Style Unordered -Lines @(
+
+$packageManagementList = @(
(Get-HomebrewVersion),
(Get-GemVersion),
(Get-MinicondaVersion),
@@ -61,6 +67,14 @@ $markdown += New-MDList -Style Unordered -Lines @(
(Get-VcpkgVersion)
)
+if (-not (Test-IsUbuntu16)) {
+ $packageManagementList += @(
+ (Get-PipxVersion)
+ )
+}
+
+$markdown += New-MDList -Style Unordered -Lines ($packageManagementList | Sort-Object)
+
$markdown += New-MDHeader "Project Management" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-AntVersion),
@@ -73,10 +87,12 @@ $markdown += New-MDHeader "Tools" -Level 3
$toolsList = @(
(Get-7zipVersion),
(Get-AnsibleVersion),
+ (Get-AptFastVersion),
(Get-AzCopy7Version),
(Get-AzCopy10Version),
(Get-BazelVersion),
(Get-BazeliskVersion),
+ (Get-CodeQLBundleVersion),
(Get-CMakeVersion),
(Get-CurlVersion),
(Get-DockerMobyVersion),
@@ -102,10 +118,14 @@ $toolsList = @(
(Get-NvmVersion),
(Get-PackerVersion),
(Get-PhantomJSVersion),
+ (Get-PulumiVersion),
+ (Get-RVersion),
+ (Get-SphinxVersion),
(Get-SwigVersion),
(Get-TerraformVersion),
(Get-UnZipVersion),
(Get-WgetVersion),
+ (Get-YamllintVersion),
(Get-ZipVersion),
(Get-ZstdVersion)
)
diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Helpers.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Helpers.psm1
index 45ab4494..9ef761d7 100644
--- a/images/linux/scripts/SoftwareReport/SoftwareReport.Helpers.psm1
+++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Helpers.psm1
@@ -49,3 +49,7 @@ function New-MDNewLine {
$newLineSymbol = [System.Environment]::NewLine
return $newLineSymbol * $Count
}
+
+function Restore-UserOwner {
+ sudo chown -R ${env:USER}: $env:HOME
+}
\ No newline at end of file
diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Tools.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Tools.psm1
index dcb121f6..ba676b0a 100644
--- a/images/linux/scripts/SoftwareReport/SoftwareReport.Tools.psm1
+++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Tools.psm1
@@ -4,10 +4,15 @@ function Get-7zipVersion {
}
function Get-AnsibleVersion {
- $ansibleVersion = sudo ansible --version | Select-Object -First 1 | Take-OutputPart -Part 1
+ $ansibleVersion = ansible --version | Select-Object -First 1 | Take-OutputPart -Part 1
return "Ansible $ansibleVersion"
}
+function Get-AptFastVersion {
+ $aptFastVersion = (dpkg-query --showformat='${Version}' --show apt-fast).Split('-')[0]
+ return "apt-fast $aptFastVersion"
+}
+
function Get-AzCopy7Version {
$azcopy7Version = azcopy --version | Take-OutputPart -Part 1 | Take-OutputPart -Part 0 -Delimiter "-"
return "AzCopy7 $azcopy7Version (available by ``azcopy`` alias)"
@@ -19,15 +24,24 @@ function Get-AzCopy10Version {
}
function Get-BazelVersion {
- $bazelVersion = sudo bazel --version | Select-String "bazel" | Take-OutputPart -Part 1
+ $bazelVersion = bazel --version | Select-String "bazel" | Take-OutputPart -Part 1
return "Bazel $bazelVersion"
}
function Get-BazeliskVersion {
- $bazeliskVersion = sudo bazelisk version 2>&1 | Select-String "Bazelisk version:" | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "v"
+ $result = Get-CommandResult "bazelisk version" -Multiline
+ $bazeliskVersion = $result.Output | Select-String "Bazelisk version:" | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "v"
return "Bazelisk $bazeliskVersion"
}
+function Get-CodeQLBundleVersion {
+ $CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath "*"
+ $CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Select-Object -First 1 -Expand FullName
+ $CodeQLPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql"
+ $CodeQLVersion = & $CodeQLPath version --quiet
+ return "CodeQL Action Bundle $CodeQLVersion"
+}
+
function Get-PodManVersion {
$podmanVersion = podman --version | Take-OutputPart -Part 2
return "Podman $podmanVersion"
@@ -69,12 +83,14 @@ function Get-DockerBuildxVersion {
}
function Get-GitVersion {
- $gitVersion = git --version 2>&1 | Take-OutputPart -Part 2
+ $result = Get-CommandResult "git --version"
+ $gitVersion = $result.Output | Take-OutputPart -Part 2
return "Git $gitVersion"
}
function Get-GitLFSVersion {
- $gitlfsversion = git-lfs --version 2>&1 | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
+ $result = Get-CommandResult "git-lfs --version"
+ $gitlfsversion = $result.Output | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
return "Git LFS $gitlfsversion"
}
@@ -84,7 +100,7 @@ function Get-GitFTPVersion {
}
function Get-GoogleCloudSDKVersion {
- return "$(sudo gcloud --version | Select-Object -First 1)"
+ return "$(gcloud --version | Select-Object -First 1)"
}
function Get-HavegedVersion {
@@ -93,7 +109,7 @@ function Get-HavegedVersion {
}
function Get-HerokuVersion {
- $herokuVersion = sudo heroku version | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
+ $herokuVersion = heroku version | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
return "Heroku $herokuVersion"
}
@@ -193,12 +209,12 @@ function Get-JqVersion {
}
function Get-AzureCliVersion {
- $azcliVersion = sudo az -v | Select-String "azure-cli" | Take-OutputPart -Part -1
+ $azcliVersion = az -v | Select-String "azure-cli" | Take-OutputPart -Part -1
return "Azure CLI (azure-cli) $azcliVersion"
}
function Get-AzureDevopsVersion {
- $azdevopsVersion = sudo az -v | Select-String "azure-devops" | Take-OutputPart -Part -1
+ $azdevopsVersion = az -v | Select-String "azure-devops" | Take-OutputPart -Part -1
return "Azure CLI (azure-devops) $azdevopsVersion"
}
@@ -207,12 +223,14 @@ function Get-AlibabaCloudCliVersion {
}
function Get-AWSCliVersion {
- $awsVersion = aws --version 2>&1 | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
+ $result = Get-CommandResult "aws --version"
+ $awsVersion = $result.Output | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
return "AWS CLI $awsVersion"
}
function Get-AWSCliSessionManagerPluginVersion {
- return "AWS CLI Session manager plugin $(session-manager-plugin --version 2>&1)"
+ $result = (Get-CommandResult "session-manager-plugin --version").Output
+ return "AWS CLI Session manager plugin $result"
}
function Get-AWSSAMVersion {
@@ -230,7 +248,7 @@ function Get-GitHubCliVersion {
}
function Get-NetlifyCliVersion {
- $netlifyVersion = sudo netlify --version | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
+ $netlifyVersion = netlify --version | Take-OutputPart -Part 0 | Take-OutputPart -Part 1 -Delimiter "/"
return "Netlify CLI $netlifyVersion"
}
@@ -245,5 +263,25 @@ function Get-ORASCliVersion {
}
function Get-VerselCliversion {
- return "$(vercel --version 2>&1 | Select-Object -First 1)"
+ $result = Get-CommandResult "vercel --version" -Multiline
+ return $result.Output | Select-Object -First 1
}
+
+function Get-PulumiVersion {
+ $pulumiVersion = pulumi version | Take-OutputPart -Part 0 -Delimiter "v"
+ return "Pulumi $pulumiVersion"
+}
+
+function Get-RVersion {
+ $rVersion = (Get-CommandResult "R --version | grep 'R version'").Output | Take-OutputPart -Part 2
+ return "R $rVersion"
+}
+
+function Get-SphinxVersion {
+ $sphinxVersion = searchd -h | Select-Object -First 1 | Take-OutputPart -Part 1 | Take-OutputPart -Part 0 -Delimiter "-"
+ return "Sphinx Open Source Search Server $sphinxVersion"
+}
+
+function Get-YamllintVersion {
+ return "$(yamllint --version)"
+}
\ No newline at end of file
diff --git a/images/linux/scripts/base/limits.sh b/images/linux/scripts/base/limits.sh
index e3c43e33..24041bc9 100644
--- a/images/linux/scripts/base/limits.sh
+++ b/images/linux/scripts/base/limits.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
echo '* soft nofile 65536' >> /etc/security/limits.conf
echo '* hard nofile 65536' >> /etc/security/limits.conf
diff --git a/images/linux/scripts/base/reboot.sh b/images/linux/scripts/base/reboot.sh
index 23969fe8..d1bdf7ee 100644
--- a/images/linux/scripts/base/reboot.sh
+++ b/images/linux/scripts/base/reboot.sh
@@ -1,8 +1,8 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: reboot.sh
## Desc: Reboot VM
################################################################################
echo "Reboot VM"
-sudo reboot
\ No newline at end of file
+sudo reboot
diff --git a/images/linux/scripts/helpers/install.sh b/images/linux/scripts/helpers/install.sh
index 414980bb..bb1befe2 100644
--- a/images/linux/scripts/helpers/install.sh
+++ b/images/linux/scripts/helpers/install.sh
@@ -42,4 +42,9 @@ download_with_retries() {
## fi
function IsPackageInstalled {
dpkg -S $1 &> /dev/null
+}
+
+verlte() {
+ sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1)
+ [ "$1" = "$sortedVersion" ]
}
\ No newline at end of file
diff --git a/images/linux/scripts/installers/7-zip.sh b/images/linux/scripts/installers/7-zip.sh
index 4b753de5..0fa61bb2 100644
--- a/images/linux/scripts/installers/7-zip.sh
+++ b/images/linux/scripts/installers/7-zip.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: 7-zip.sh
## Desc: Installs 7-zip
################################################################################
-
# Install 7-Zip
apt-get update -y
apt-get install -y p7zip p7zip-full p7zip-rar
diff --git a/images/linux/scripts/installers/aliyun-cli.sh b/images/linux/scripts/installers/aliyun-cli.sh
index af45bd07..56a29e1e 100644
--- a/images/linux/scripts/installers/aliyun-cli.sh
+++ b/images/linux/scripts/installers/aliyun-cli.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: aliyun-cli.sh
## Desc: Installs Alibaba Cloud CLI
################################################################################
-
# Install Alibaba Cloud CLI
URL=$(curl -s https://api.github.com/repos/aliyun/aliyun-cli/releases/latest | jq -r '.assets[].browser_download_url | select(contains("aliyun-cli-linux"))')
wget -P /tmp $URL
diff --git a/images/linux/scripts/installers/android.sh b/images/linux/scripts/installers/android.sh
index 81f28ff7..2cfbdd8d 100644
--- a/images/linux/scripts/installers/android.sh
+++ b/images/linux/scripts/installers/android.sh
@@ -1,13 +1,28 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: android.sh
## Desc: Installs Android SDK
################################################################################
-set -e
-
# Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh
+source $HELPER_SCRIPTS/install.sh
+
+function filter_components_by_version {
+ minimumVersion=$1
+ shift
+ toolsArr=("$@")
+
+ for item in ${toolsArr[@]}
+ do
+ # take the last argument after spliting string by ';'' and '-''
+ version=$(echo "${item##*[-;]}")
+ if verlte $minimumVersion $version
+ then
+ components+=($item)
+ fi
+ done
+}
# Set env variable for SDK Root (https://developer.android.com/studio/command-line/variables)
ANDROID_ROOT=/usr/local/lib/android
@@ -42,22 +57,23 @@ else
fi
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
-platforms=$(jq -r '.android.platform_list[]|"platforms;" + .' $toolset)
-buildtools=$(jq -r '.android.build_tools[]|"build-tools;" + .' $toolset)
+minimumBuildToolVersion=$(jq -r '.android.build_tools_min_version' $toolset)
+minimumPlatformVersion=$(jq -r '.android.platform_min_version' $toolset)
extras=$(jq -r '.android.extra_list[]|"extras;" + .' $toolset)
addons=$(jq -r '.android.addon_list[]|"add-ons;" + .' $toolset)
additional=$(jq -r '.android.additional_tools[]' $toolset)
# Install the following SDKs and build tools, passing in "y" to accept licenses.
-echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager $platforms $buildtools $extras $google_api_list $addons $additional
+components=( "${extras[@]}" "${addons[@]}" "${additional[@]}" )
-# Document what was added to the image
+availablePlatforms=($(${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --list | sed -n '/Available Packages:/,/^$/p' | grep "platforms;android-" | cut -d"|" -f 1))
+allBuildTools=($(${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --list | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
+availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
-google_api_versions_list=$(echo "$addons"|awk -F- '/addon-google_apis-google/ {print $5}')
-constraint_layout_versions_list=$(echo "$extras"|awk -F';' '/constraint-layout;/ {print $8}')
-constraint_layout_solver_versions_list=$(echo "$extras"|awk -F';' '/constraint-layout-solver;/ {print $8}')
-platform_versions_list=$(echo "$platforms"|awk -F- '{print $2}')
-buildtools_versions_list=$(echo "$buildtools"|awk -F';' '{print $2}')
+filter_components_by_version $minimumPlatformVersion "${availablePlatforms[@]}"
+filter_components_by_version $minimumBuildToolVersion "${availableBuildTools[@]}"
+
+echo "y" | ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager ${components[@]}
# Add required permissions
chmod -R a+rwx ${ANDROID_SDK_ROOT}
diff --git a/images/linux/scripts/installers/ansible.sh b/images/linux/scripts/installers/ansible.sh
index 9f41af7c..0f123bbd 100644
--- a/images/linux/scripts/installers/ansible.sh
+++ b/images/linux/scripts/installers/ansible.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: ansible.sh
## Desc: Installs Ansible
diff --git a/images/linux/scripts/installers/aws-sam-cli.sh b/images/linux/scripts/installers/aws-sam-cli.sh
index ac56144b..f75c3649 100644
--- a/images/linux/scripts/installers/aws-sam-cli.sh
+++ b/images/linux/scripts/installers/aws-sam-cli.sh
@@ -1,11 +1,10 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: aws-sam-cli.sh
## Desc: Installs AWS SAM CLI
## Requires Python >=3.6, must be run as non-root user after toolset installation
################################################################################
-
# Download latest aws sam cli sources
TarballUrl=$(curl -s https://api.github.com/repos/aws/aws-sam-cli/releases/latest | jq -r '.tarball_url')
TarballPath="/tmp/aws-sam-cli.tar.gz"
diff --git a/images/linux/scripts/installers/aws.sh b/images/linux/scripts/installers/aws.sh
index b2ab32fa..0a34f174 100644
--- a/images/linux/scripts/installers/aws.sh
+++ b/images/linux/scripts/installers/aws.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: aws.sh
## Desc: Installs the AWS CLI
diff --git a/images/linux/scripts/installers/azcopy.sh b/images/linux/scripts/installers/azcopy.sh
index 9b57d268..2d46bef9 100644
--- a/images/linux/scripts/installers/azcopy.sh
+++ b/images/linux/scripts/installers/azcopy.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: azcopy.sh
## Desc: Installs AzCopy
################################################################################
-
# Install AzCopy7
wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64
tar -xf azcopy.tar.gz
diff --git a/images/linux/scripts/installers/azpowershell.sh b/images/linux/scripts/installers/azpowershell.sh
index a4a15986..a8488af7 100644
--- a/images/linux/scripts/installers/azpowershell.sh
+++ b/images/linux/scripts/installers/azpowershell.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: azpowershell.sh
## Desc: Installed Azure PowerShell
diff --git a/images/linux/scripts/installers/azure-cli.sh b/images/linux/scripts/installers/azure-cli.sh
index a33ee2f6..f51e870b 100644
--- a/images/linux/scripts/installers/azure-cli.sh
+++ b/images/linux/scripts/installers/azure-cli.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: azure-cli.sh
## Desc: Installed Azure CLI (az)
################################################################################
-
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
diff --git a/images/linux/scripts/installers/azure-devops-cli.sh b/images/linux/scripts/installers/azure-devops-cli.sh
index d39761be..2bedb19f 100644
--- a/images/linux/scripts/installers/azure-devops-cli.sh
+++ b/images/linux/scripts/installers/azure-devops-cli.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: azure-devops-cli.sh
## Desc: Installed Azure DevOps CLI (az devops)
################################################################################
-
# AZURE_EXTENSION_DIR shell variable defines where modules are installed
# https://docs.microsoft.com/en-us/cli/azure/azure-cli-extensions-overview
export AZURE_EXTENSION_DIR=/opt/az/azcliextensions
diff --git a/images/linux/scripts/installers/basic.sh b/images/linux/scripts/installers/basic.sh
index b8f3e10f..df9aae08 100644
--- a/images/linux/scripts/installers/basic.sh
+++ b/images/linux/scripts/installers/basic.sh
@@ -1,11 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: basic.sh
## Desc: Installs basic command line utilities and dev packages
################################################################################
-set -e
-
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
common_packages=$(jq -r ".apt.common_packages[]" $toolset)
cmd_packages=$(jq -r ".apt.cmd_packages[]" $toolset)
diff --git a/images/linux/scripts/installers/bazel.sh b/images/linux/scripts/installers/bazel.sh
index 2735df10..8a7c6bcb 100644
--- a/images/linux/scripts/installers/bazel.sh
+++ b/images/linux/scripts/installers/bazel.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: bazel.sh
## Desc: Installs Bazel and Bazelisk (A user-friendly launcher for Bazel)
################################################################################
-
# Install bazel
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
diff --git a/images/linux/scripts/installers/build-essential.sh b/images/linux/scripts/installers/build-essential.sh
index af711a1e..e2c25290 100644
--- a/images/linux/scripts/installers/build-essential.sh
+++ b/images/linux/scripts/installers/build-essential.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: build-essential.sh
## Desc: Installs build-essential package
################################################################################
-
source $HELPER_SCRIPTS/install.sh
PACKAGE=build-essential
diff --git a/images/linux/scripts/installers/clang.sh b/images/linux/scripts/installers/clang.sh
index c81cfd2a..e7261f0a 100644
--- a/images/linux/scripts/installers/clang.sh
+++ b/images/linux/scripts/installers/clang.sh
@@ -1,9 +1,8 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: clang.sh
## Desc: Installs Clang compiler
################################################################################
-set -e
# Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh
@@ -12,7 +11,7 @@ function InstallClang {
local version=$1
echo "Installing clang-$version..."
- if [[ $version =~ (9|10) ]]; then
+ if [[ $version =~ 9 ]] && isUbuntu16; then
./llvm.sh $version
apt-get install -y "clang-format-$version"
else
diff --git a/images/linux/scripts/installers/cleanup.sh b/images/linux/scripts/installers/cleanup.sh
index 387a2240..32a083f9 100644
--- a/images/linux/scripts/installers/cleanup.sh
+++ b/images/linux/scripts/installers/cleanup.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
# before cleanup
before=$(df / -Pm | awk 'NR==2{print $4}')
@@ -27,4 +27,4 @@ after=$(df / -Pm | awk 'NR==2{print $4}')
# display size
echo "Before: $before MB"
echo "After : $after MB"
- echo "Delta : $(($after-$before)) MB"
\ No newline at end of file
+ echo "Delta : $(($after-$before)) MB"
diff --git a/images/linux/scripts/installers/cmake.sh b/images/linux/scripts/installers/cmake.sh
index 2dbf4cf5..3e51f02f 100644
--- a/images/linux/scripts/installers/cmake.sh
+++ b/images/linux/scripts/installers/cmake.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: cmake.sh
## Desc: Installs CMake
################################################################################
-
# Test to see if the software in question is already installed, if not install it
echo "Checking to see if the installer script has already been run"
if command -v cmake; then
diff --git a/images/linux/scripts/installers/codeql-bundle.sh b/images/linux/scripts/installers/codeql-bundle.sh
new file mode 100644
index 00000000..8d1ed80f
--- /dev/null
+++ b/images/linux/scripts/installers/codeql-bundle.sh
@@ -0,0 +1,28 @@
+#!/bin/bash -e
+################################################################################
+## File: codeql-bundle.sh
+## Desc: Install the CodeQL CLI Bundle to the toolcache.
+################################################################################
+
+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/main/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##*-}"
+
+extraction_directory="$AGENT_TOOLSDIRECTORY/CodeQL/$codeql_bundle_version/x64"
+mkdir -p "$extraction_directory"
+
+echo "Downloading CodeQL bundle $codeql_bundle_version..."
+download_with_retries "https://github.com/github/codeql-action/releases/download/$codeql_bundle_name/codeql-bundle.tar.gz" "/tmp" "codeql-bundle.tar.gz"
+tar -xzf "/tmp/codeql-bundle.tar.gz" -C "$extraction_directory"
+
+# Touch a special file that indicates to the CodeQL Action that this bundle was baked-in to the hosted runner images.
+touch "$extraction_directory/pinned-version"
+
+# Touch a file to indicate to the toolcache that setting up CodeQL is complete.
+touch "$extraction_directory.complete"
+
+# Test that the tool has been extracted successfully.
+"$AGENT_TOOLSDIRECTORY/CodeQL/$codeql_bundle_version/x64/codeql/codeql" version
diff --git a/images/linux/scripts/installers/complete-snap-setup.sh b/images/linux/scripts/installers/complete-snap-setup.sh
index 51e63154..09cd8edd 100644
--- a/images/linux/scripts/installers/complete-snap-setup.sh
+++ b/images/linux/scripts/installers/complete-snap-setup.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: snap-environment.sh
## Desc: Update /etc/environment to include /snap/bin in PATH
diff --git a/images/linux/scripts/installers/configure-environment.sh b/images/linux/scripts/installers/configure-environment.sh
index fbac4275..97d3c606 100644
--- a/images/linux/scripts/installers/configure-environment.sh
+++ b/images/linux/scripts/installers/configure-environment.sh
@@ -1,3 +1,5 @@
+#!/bin/bash -e
+
#Set ImageVersion and ImageOS env variables
echo ImageVersion=$IMAGE_VERSION | tee -a /etc/environment
echo ImageOS=$IMAGE_OS | tee -a /etc/environment
@@ -22,4 +24,4 @@ chmod -R 777 $AGENT_TOOLSDIRECTORY
# https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
# https://www.suse.com/support/kb/doc/?id=000016692
-echo 'vm.max_map_count=262144' | tee -a /etc/sysctl.conf
\ No newline at end of file
+echo 'vm.max_map_count=262144' | tee -a /etc/sysctl.conf
diff --git a/images/linux/scripts/installers/containers.sh b/images/linux/scripts/installers/containers.sh
index a44d73fd..682cdd13 100644
--- a/images/linux/scripts/installers/containers.sh
+++ b/images/linux/scripts/installers/containers.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: containers.sh
## Desc: Installs container tools: podman, buildah and skopeo onto the image
################################################################################
-
source /etc/os-release
sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O Release.key
diff --git a/images/linux/scripts/installers/docker-compose.sh b/images/linux/scripts/installers/docker-compose.sh
index d2698d5c..0fa74fc1 100644
--- a/images/linux/scripts/installers/docker-compose.sh
+++ b/images/linux/scripts/installers/docker-compose.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: docker-compose.sh
## Desc: Installs Docker Compose
################################################################################
-
URL=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r '.assets[].browser_download_url | select(contains("docker-compose-Linux-x86_64"))' | head -1)
# Install latest docker-compose from releases
diff --git a/images/linux/scripts/installers/docker-moby.sh b/images/linux/scripts/installers/docker-moby.sh
index 49ef6a56..964fbc92 100644
--- a/images/linux/scripts/installers/docker-moby.sh
+++ b/images/linux/scripts/installers/docker-moby.sh
@@ -1,18 +1,11 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: docker-moby.sh
## Desc: Installs docker onto the image
################################################################################
-set -e
# Source the helpers for use with the script
source $HELPER_SCRIPTS/install.sh
-source $HELPER_SCRIPTS/os.sh
-
-# There is no stable docker-moby for Ubuntu 20 at the moment
-if isUbuntu20 ; then
- add-apt-repository "deb [arch=amd64,armhf,arm64] https://packages.microsoft.com/ubuntu/20.04/prod testing main"
-fi
# Check to see if docker is already installed
docker_package=moby
diff --git a/images/linux/scripts/installers/dotnetcore-sdk.sh b/images/linux/scripts/installers/dotnetcore-sdk.sh
index ee0a95b8..ff966cd2 100644
--- a/images/linux/scripts/installers/dotnetcore-sdk.sh
+++ b/images/linux/scripts/installers/dotnetcore-sdk.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: dotnetcore-sdk.sh
## Desc: Installs .NET Core SDK
@@ -25,7 +25,6 @@ mksamples()
sample=$2
mkdir "$sdk"
cd "$sdk" || exit
- set -e
dotnet help
dotnet new globaljson --sdk-version "$sdk"
dotnet new "$sample"
@@ -36,8 +35,6 @@ mksamples()
rm -rf "$sdk"
}
-set -e
-
# Disable telemetry
export DOTNET_CLI_TELEMETRY_OPTOUT=1
diff --git a/images/linux/scripts/installers/dpkg-config.sh b/images/linux/scripts/installers/dpkg-config.sh
index 67b200ed..d8523b34 100644
--- a/images/linux/scripts/installers/dpkg-config.sh
+++ b/images/linux/scripts/installers/dpkg-config.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
# This is the anti-frontend. It never interacts with you at all,
# and makes the default answers be used for all questions. It
diff --git a/images/linux/scripts/installers/erlang.sh b/images/linux/scripts/installers/erlang.sh
index aa94e3a2..c8ec5a1b 100644
--- a/images/linux/scripts/installers/erlang.sh
+++ b/images/linux/scripts/installers/erlang.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: erlang.sh
## Desc: Installs erlang
################################################################################
-
source_list=/etc/apt/sources.list.d/eslerlang.list
# Install Erlang
diff --git a/images/linux/scripts/installers/example.sh b/images/linux/scripts/installers/example.sh
index 895de5d3..58e71b06 100644
--- a/images/linux/scripts/installers/example.sh
+++ b/images/linux/scripts/installers/example.sh
@@ -1,11 +1,10 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: example.sh
## Desc: This is an example script that can be copied to add a new software
## installer to the image
################################################################################
-
# Test to see if the software in question is already installed, if not install it
echo "Checking to see if the installer script has already been run"
if [ -z $EXAMPLE_VAR ]; then
diff --git a/images/linux/scripts/installers/firefox.sh b/images/linux/scripts/installers/firefox.sh
index 3287bf16..a2cd8521 100644
--- a/images/linux/scripts/installers/firefox.sh
+++ b/images/linux/scripts/installers/firefox.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: firefox.sh
## Desc: Installs Firefox
################################################################################
-
# Install Firefox
apt-get install -y firefox
diff --git a/images/linux/scripts/installers/gcc.sh b/images/linux/scripts/installers/gcc.sh
index 7b1bd56e..3b696e9f 100644
--- a/images/linux/scripts/installers/gcc.sh
+++ b/images/linux/scripts/installers/gcc.sh
@@ -1,9 +1,11 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: gcc.sh
## Desc: Installs GNU C++
################################################################################
+# Source the helpers for use with the script
+source $HELPER_SCRIPTS/os.sh
function InstallGcc {
version=$1
@@ -29,7 +31,10 @@ versions=(
"g++-9"
)
-for version in ${versions[*]}
-do
+if ! isUbuntu16; then
+ versions+=("g++-10")
+fi
+
+for version in ${versions[*]}; do
InstallGcc $version
done
diff --git a/images/linux/scripts/installers/gfortran.sh b/images/linux/scripts/installers/gfortran.sh
index c37fccf2..dc49cb44 100644
--- a/images/linux/scripts/installers/gfortran.sh
+++ b/images/linux/scripts/installers/gfortran.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: gfortran.sh
## Desc: Installs GNU Fortran
################################################################################
-
function InstallFortran {
version=$1
diff --git a/images/linux/scripts/installers/git.sh b/images/linux/scripts/installers/git.sh
index 331e5f81..90b0f10e 100644
--- a/images/linux/scripts/installers/git.sh
+++ b/images/linux/scripts/installers/git.sh
@@ -1,9 +1,8 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: git.sh
## Desc: Installs Git
################################################################################
-set -e
# Source the helpers for use with the script
source "$HELPER_SCRIPTS"/install.sh
@@ -52,3 +51,7 @@ else
echo "[!] Hub CLI was not installed"
exit 1
fi
+
+# Add well-known SSH host keys to known_hosts
+ssh-keyscan -t rsa github.com >> /etc/ssh/ssh_known_hosts
+ssh-keyscan -t rsa ssh.dev.azure.com >> /etc/ssh/ssh_known_hosts
diff --git a/images/linux/scripts/installers/github-cli.sh b/images/linux/scripts/installers/github-cli.sh
index c9bec1fc..d4eccb12 100644
--- a/images/linux/scripts/installers/github-cli.sh
+++ b/images/linux/scripts/installers/github-cli.sh
@@ -1,11 +1,10 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: github-cli.sh
## Desc: Installs GitHub CLI
## Must be run as non-root user after homebrew
################################################################################
-
# Install GitHub CLI
url=$(curl -s https://api.github.com/repos/cli/cli/releases/latest | jq -r '.assets[].browser_download_url|select(contains("linux") and contains("amd64") and contains(".deb"))')
wget $url
diff --git a/images/linux/scripts/installers/google-chrome.sh b/images/linux/scripts/installers/google-chrome.sh
index a6ace2f3..44316ece 100644
--- a/images/linux/scripts/installers/google-chrome.sh
+++ b/images/linux/scripts/installers/google-chrome.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: google-chrome.sh
## Desc: Installs google-chrome and chromedriver
################################################################################
-
LSB_RELEASE=$(lsb_release -rs)
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
diff --git a/images/linux/scripts/installers/google-cloud-sdk.sh b/images/linux/scripts/installers/google-cloud-sdk.sh
index 147d8d4f..a6d8227c 100644
--- a/images/linux/scripts/installers/google-cloud-sdk.sh
+++ b/images/linux/scripts/installers/google-cloud-sdk.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: google-cloud-sdk.sh
## Desc: Installs the Google Cloud SDK
################################################################################
-
# Install the Google Cloud SDK
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt 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 -
diff --git a/images/linux/scripts/installers/haskell.sh b/images/linux/scripts/installers/haskell.sh
index b8bfa5ef..9b351cc3 100644
--- a/images/linux/scripts/installers/haskell.sh
+++ b/images/linux/scripts/installers/haskell.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: haskell.sh
## Desc: Installs Haskell
diff --git a/images/linux/scripts/installers/heroku.sh b/images/linux/scripts/installers/heroku.sh
index c4c0e588..86d53786 100644
--- a/images/linux/scripts/installers/heroku.sh
+++ b/images/linux/scripts/installers/heroku.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: heroku.sh
## Desc: Installs Heroku CLI
################################################################################
-
# Install Heroku CLI
curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
diff --git a/images/linux/scripts/installers/hhvm.sh b/images/linux/scripts/installers/hhvm.sh
index 3010db87..e44f4b3a 100644
--- a/images/linux/scripts/installers/hhvm.sh
+++ b/images/linux/scripts/installers/hhvm.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: hhvm.sh
## Desc: Installs hhvm
diff --git a/images/linux/scripts/installers/homebrew-validate.sh b/images/linux/scripts/installers/homebrew-validate.sh
index 88d61f94..0806838d 100644
--- a/images/linux/scripts/installers/homebrew-validate.sh
+++ b/images/linux/scripts/installers/homebrew-validate.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: homebrew-validate.sh
## Desc: Validate the Homebrew can run after reboot without extra configuring
diff --git a/images/linux/scripts/installers/homebrew.sh b/images/linux/scripts/installers/homebrew.sh
index 370d9d09..865923f2 100644
--- a/images/linux/scripts/installers/homebrew.sh
+++ b/images/linux/scripts/installers/homebrew.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: homebrew.sh
## Desc: Installs the Homebrew on Linux
diff --git a/images/linux/scripts/installers/hosted-tool-cache.sh b/images/linux/scripts/installers/hosted-tool-cache.sh
index d40a4922..23c09be8 100644
--- a/images/linux/scripts/installers/hosted-tool-cache.sh
+++ b/images/linux/scripts/installers/hosted-tool-cache.sh
@@ -1,13 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: hosted-tool-cache.sh
## Desc: Downloads and installs hosted tools cache
################################################################################
-
-# Fail out if any setups fail
-set -e
-
TOOLCACHE_REGISTRY="npm.pkg.github.com"
echo "Configure npm to use github package registry for '@actions' scope"
diff --git a/images/linux/scripts/installers/image-magick.sh b/images/linux/scripts/installers/image-magick.sh
index e01c933a..daf0d62b 100644
--- a/images/linux/scripts/installers/image-magick.sh
+++ b/images/linux/scripts/installers/image-magick.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: image-magick.sh
## Desc: Installs ImageMagick
################################################################################
-
# Install ImageMagick
apt-get install -y --no-install-recommends --fix-missing \
imagemagick \
diff --git a/images/linux/scripts/installers/java-tools.sh b/images/linux/scripts/installers/java-tools.sh
index 46aa8b28..ea95a56b 100644
--- a/images/linux/scripts/installers/java-tools.sh
+++ b/images/linux/scripts/installers/java-tools.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: java-tools.sh
## Desc: Installs Java and related tooling (Ant, Gradle, Maven)
@@ -6,8 +6,6 @@
source $HELPER_SCRIPTS/os.sh
-set -e
-
function javaTool {
if [[ "$2" =~ ([1]{0,1}.)?$DEFAULT_JDK_VERSION.* ]]; then
echo "$1 $2 is equal to default one $DEFAULT_JDK_VERSION"
diff --git a/images/linux/scripts/installers/julia.sh b/images/linux/scripts/installers/julia.sh
index 079890a1..cd0ee0ed 100644
--- a/images/linux/scripts/installers/julia.sh
+++ b/images/linux/scripts/installers/julia.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: julia.sh
## Desc: Installs Julia, and adds Julia to the path
################################################################################
-
# This function fetches the latest Julia release from the GitHub API
# Based on https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
function GetLatestJuliaRelease () {
diff --git a/images/linux/scripts/installers/kind.sh b/images/linux/scripts/installers/kind.sh
index 3a312a2e..419f4e60 100644
--- a/images/linux/scripts/installers/kind.sh
+++ b/images/linux/scripts/installers/kind.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: kind.sh
## Desc: Installs kind
################################################################################
-
# Install KIND
URL=$(curl -s https://api.github.com/repos/kubernetes-sigs/kind/releases/latest | jq -r '.assets[].browser_download_url | select(contains("kind-linux-amd64"))')
curl -L -o /usr/local/bin/kind $URL
diff --git a/images/linux/scripts/installers/kubernetes-tools.sh b/images/linux/scripts/installers/kubernetes-tools.sh
index a25cb0f2..e74515ea 100644
--- a/images/linux/scripts/installers/kubernetes-tools.sh
+++ b/images/linux/scripts/installers/kubernetes-tools.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: kubernetes-tools.sh
## Desc: Installs kubectl, helm, kustomize
################################################################################
-
## Install kubectl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
touch /etc/apt/sources.list.d/kubernetes.list
diff --git a/images/linux/scripts/installers/leiningen.sh b/images/linux/scripts/installers/leiningen.sh
index 56079a34..059dfdb5 100644
--- a/images/linux/scripts/installers/leiningen.sh
+++ b/images/linux/scripts/installers/leiningen.sh
@@ -1,12 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: leiningen.sh
## Desc: Installs Leiningen
################################################################################
-
-set -e
-
LEIN_BIN=/usr/local/bin/lein
curl -s https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein > $LEIN_BIN
chmod 0755 $LEIN_BIN
diff --git a/images/linux/scripts/installers/mercurial.sh b/images/linux/scripts/installers/mercurial.sh
index ad972d74..4c3493d8 100644
--- a/images/linux/scripts/installers/mercurial.sh
+++ b/images/linux/scripts/installers/mercurial.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: mercurial.sh
## Desc: Installs Mercurial
diff --git a/images/linux/scripts/installers/miniconda.sh b/images/linux/scripts/installers/miniconda.sh
index 29eebd0c..3dae1e1b 100644
--- a/images/linux/scripts/installers/miniconda.sh
+++ b/images/linux/scripts/installers/miniconda.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: miniconda.sh
## Desc: Installs miniconda
################################################################################
-
# Install Miniconda
curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o miniconda.sh \
&& chmod +x miniconda.sh \
diff --git a/images/linux/scripts/installers/mongodb.sh b/images/linux/scripts/installers/mongodb.sh
index 2d012c61..5fd1b36a 100644
--- a/images/linux/scripts/installers/mongodb.sh
+++ b/images/linux/scripts/installers/mongodb.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: homebrew.sh
## Desc: Installs Mongo DB
diff --git a/images/linux/scripts/installers/mono.sh b/images/linux/scripts/installers/mono.sh
index 9e4968f3..bdce6248 100644
--- a/images/linux/scripts/installers/mono.sh
+++ b/images/linux/scripts/installers/mono.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: cmake.sh
## Desc: Installs Mono
################################################################################
-
LSB_CODENAME=$(lsb_release -cs)
# Test to see if the software in question is already installed, if not install it
diff --git a/images/linux/scripts/installers/mysql.sh b/images/linux/scripts/installers/mysql.sh
index 24cb5cf2..9abb9793 100644
--- a/images/linux/scripts/installers/mysql.sh
+++ b/images/linux/scripts/installers/mysql.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: mysql.sh
## Desc: Installs MySQL Client
################################################################################
-
export ACCEPT_EULA=Y
if isUbuntu16 || isUbuntu18 ; then
@@ -44,7 +43,6 @@ if ! command -v mysql; then
exit 1
fi
-set -e
mysql -vvv -e 'CREATE DATABASE smoke_test' -uroot -proot
mysql -vvv -e 'DROP DATABASE smoke_test' -uroot -proot
set +e
diff --git a/images/linux/scripts/installers/netlify.sh b/images/linux/scripts/installers/netlify.sh
index b737d475..42121ab7 100644
--- a/images/linux/scripts/installers/netlify.sh
+++ b/images/linux/scripts/installers/netlify.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: netlify.sh
## Desc: Installs the Netlify CLI
################################################################################
-
# Install the Netlify CLI
npm i -g netlify-cli
diff --git a/images/linux/scripts/installers/nodejs.sh b/images/linux/scripts/installers/nodejs.sh
index 378236a8..e0bb6981 100644
--- a/images/linux/scripts/installers/nodejs.sh
+++ b/images/linux/scripts/installers/nodejs.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: nodejs.sh
## Desc: Installs Node.js LTS and related tooling (Gulp, Grunt)
################################################################################
-
# Install LTS Node.js and related build tools
curl -sL https://raw.githubusercontent.com/mklement0/n-install/stable/bin/n-install | bash -s -- -ny -
~/n/bin/n lts
diff --git a/images/linux/scripts/installers/nvm.sh b/images/linux/scripts/installers/nvm.sh
index 74fed1f2..b0d99513 100644
--- a/images/linux/scripts/installers/nvm.sh
+++ b/images/linux/scripts/installers/nvm.sh
@@ -1,13 +1,13 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: nvm.sh
## Desc: Installs Nvm
################################################################################
-
export NVM_DIR="/etc/skel/.nvm"
mkdir $NVM_DIR
-curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
+VERSION=$(curl -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
+curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION/install.sh | bash
echo 'export NVM_DIR=$HOME/.nvm' | tee -a /etc/skel/.bash_profile
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' | tee -a /etc/skel/.bash_profile
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
diff --git a/images/linux/scripts/installers/oc.sh b/images/linux/scripts/installers/oc.sh
index 88894e3f..2310f33f 100644
--- a/images/linux/scripts/installers/oc.sh
+++ b/images/linux/scripts/installers/oc.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: oc.sh
## Desc: Installs the OC CLI
################################################################################
-
# Install the oc CLI
curl "https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/linux/oc.tar.gz" > oc.tar.gz
tar xvzf oc.tar.gz
diff --git a/images/linux/scripts/installers/oras-cli.sh b/images/linux/scripts/installers/oras-cli.sh
index e615d25d..3c18865b 100644
--- a/images/linux/scripts/installers/oras-cli.sh
+++ b/images/linux/scripts/installers/oras-cli.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: oras-cli.sh
## Desc: Installs ORAS CLI
diff --git a/images/linux/scripts/installers/packer.sh b/images/linux/scripts/installers/packer.sh
index 25897a78..b45a87ac 100644
--- a/images/linux/scripts/installers/packer.sh
+++ b/images/linux/scripts/installers/packer.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: packer.sh
## Desc: Installs packer
################################################################################
-
# 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"
diff --git a/images/linux/scripts/installers/phantomjs.sh b/images/linux/scripts/installers/phantomjs.sh
index 093056db..a774b2d0 100644
--- a/images/linux/scripts/installers/phantomjs.sh
+++ b/images/linux/scripts/installers/phantomjs.sh
@@ -1,11 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: phantomjs.sh
## Desc: Installs PhantomJS
################################################################################
-set -e
-
# Install PhantomJS
apt-get install -y chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev
PHANTOM_JS=phantomjs-2.1.1-linux-x86_64
diff --git a/images/linux/scripts/installers/php.sh b/images/linux/scripts/installers/php.sh
index 35afa4a4..b8e2b8ed 100644
--- a/images/linux/scripts/installers/php.sh
+++ b/images/linux/scripts/installers/php.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: php.sh
## Desc: Installs php
@@ -8,8 +8,6 @@
source $HELPER_SCRIPTS/etc-environment.sh
source $HELPER_SCRIPTS/os.sh
-set -e
-
# add repository
apt-add-repository ppa:ondrej/php -y
apt-get update
diff --git a/images/linux/scripts/installers/pipx-packages.sh b/images/linux/scripts/installers/pipx-packages.sh
new file mode 100644
index 00000000..07e1427e
--- /dev/null
+++ b/images/linux/scripts/installers/pipx-packages.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+################################################################################
+## File: pipx-packages.sh
+## Desc: Install tools via pipx
+################################################################################
+
+
+export PATH="$PATH:/opt/pipx_bin"
+
+toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
+pipx_packages=$(jq -r ".pipx[] .package" $toolset)
+
+for package in $pipx_packages; do
+ python_version=$(jq -r ".pipx[] | select(.package == \"$package\") .python" $toolset)
+ if [ "$python_version" != "null" ]; then
+ python_path="/opt/hostedtoolcache/Python/$python_version*/x64/bin/python$python_version"
+ echo "Install $package into python $python_path"
+ pipx install $package --python $python_path
+ else
+ echo "Install $package into default python"
+ pipx install $package
+ fi
+
+ # Run tests to determine that the software installed as expected
+ cmd=$(jq -r ".pipx[] | select(.package == \"$package\") .cmd" $toolset)
+ if ! command -v $cmd; then
+ echo "$package was not installed"
+ exit 1
+ fi
+done
diff --git a/images/linux/scripts/installers/pollinate.sh b/images/linux/scripts/installers/pollinate.sh
index bdb2ce36..fe2350d9 100644
--- a/images/linux/scripts/installers/pollinate.sh
+++ b/images/linux/scripts/installers/pollinate.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: pollinate.sh
## Desc: Installs Pollinate
################################################################################
-
# Install Pollinate
apt-get install -y --no-install-recommends pollinate
diff --git a/images/linux/scripts/installers/post-deployment.sh b/images/linux/scripts/installers/post-deployment.sh
new file mode 100644
index 00000000..95a2e2fa
--- /dev/null
+++ b/images/linux/scripts/installers/post-deployment.sh
@@ -0,0 +1,26 @@
+#!/bin/bash -e
+################################################################################
+## File: post-deployment.sh
+## Desc: Post deployment actions
+################################################################################
+
+mv -f /imagegeneration/post-generation /opt
+
+# set chmod -R 777 /opt
+if [[ -d "/opt" ]]; then
+ echo "chmod -R 777 /opt"
+ chmod -R 777 /opt
+fi
+
+# remove installer and helper folders
+rm -rf $HELPER_SCRIPT_FOLDER
+rm -rf $INSTALLER_SCRIPT_FOLDER
+chmod 755 $IMAGE_FOLDER
+
+# Check PATH
+if [[ $PATH == \"*\" ]]
+then
+ echo "ERROR: PATH contains quotes"
+ echo "PATH = $PATH"
+ exit 1
+fi
diff --git a/images/linux/scripts/installers/postgresql.sh b/images/linux/scripts/installers/postgresql.sh
index ae5ffbb2..4c652fdf 100644
--- a/images/linux/scripts/installers/postgresql.sh
+++ b/images/linux/scripts/installers/postgresql.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: postgresql.sh
## Desc: Installs Postgresql
################################################################################
-
#Preparing repo for PostgreSQL 12.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
@@ -25,4 +24,4 @@ pg_isready
# Disable postgresql.service
systemctl is-active --quiet postgresql.service && systemctl stop postgresql.service
-systemctl disable postgresql.service
\ No newline at end of file
+systemctl disable postgresql.service
diff --git a/images/linux/scripts/installers/powershellcore.sh b/images/linux/scripts/installers/powershellcore.sh
index e0c19ba7..0ac52072 100644
--- a/images/linux/scripts/installers/powershellcore.sh
+++ b/images/linux/scripts/installers/powershellcore.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: powershellcore.sh
## Desc: Installs powershellcore
diff --git a/images/linux/scripts/installers/preimagedata.sh b/images/linux/scripts/installers/preimagedata.sh
index 26be3bfa..d9f7b22f 100644
--- a/images/linux/scripts/installers/preimagedata.sh
+++ b/images/linux/scripts/installers/preimagedata.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
imagedata_file=$IMAGEDATA_FILE
image_version=$IMAGE_VERSION
@@ -29,4 +29,4 @@ cat < $imagedata_file
"detail": "Environment: ${image_label}\nVersion: ${image_version}\nIncluded Software: ${software_url}"
}
]
-EOF
\ No newline at end of file
+EOF
diff --git a/images/linux/scripts/installers/pulumi.sh b/images/linux/scripts/installers/pulumi.sh
index bfdad2d1..444a3e7f 100644
--- a/images/linux/scripts/installers/pulumi.sh
+++ b/images/linux/scripts/installers/pulumi.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: pulumi.sh
## Desc: Installs Pulumi
diff --git a/images/linux/scripts/installers/pypy.sh b/images/linux/scripts/installers/pypy.sh
index cc707a3e..99dab0a7 100644
--- a/images/linux/scripts/installers/pypy.sh
+++ b/images/linux/scripts/installers/pypy.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: pypy.sh
## Desc: Installs PyPy
@@ -76,8 +76,6 @@ pypyVersions="$(cat /tmp/pypyUrls.html | grep 'linux64' | awk -v uri="$uri" -F'>
toolset="$INSTALLER_SCRIPT_FOLDER/toolset.json"
toolsetVersions=$(jq -r '.toolcache[] | select(.name | contains("PyPy")) | .versions[]' $toolset)
-# Fail out if any setups fail
-set -e
for toolsetVersion in $toolsetVersions; do
latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-v[0-9]+\.[0-9]+\.[0-9]+-" | head -1)
@@ -90,4 +88,4 @@ for toolsetVersion in $toolsetVersions; do
InstallPyPy $latestMajorPyPyVersion
done
-chown -R "$SUDO_USER:$SUDO_USER" "$AGENT_TOOLSDIRECTORY/PyPy"
\ No newline at end of file
+chown -R "$SUDO_USER:$SUDO_USER" "$AGENT_TOOLSDIRECTORY/PyPy"
diff --git a/images/linux/scripts/installers/python.sh b/images/linux/scripts/installers/python.sh
index 3f6361e1..8993e1d3 100644
--- a/images/linux/scripts/installers/python.sh
+++ b/images/linux/scripts/installers/python.sh
@@ -1,22 +1,43 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: python.sh
## Desc: Installs Python 2/3
################################################################################
+set -e
# Source the helpers for use with the script
+source $HELPER_SCRIPTS/etc-environment.sh
source $HELPER_SCRIPTS/os.sh
# Install Python, Python 3, pip, pip3
-if isUbuntu20 ; then
- apt-get install -y --no-install-recommends python3 python3-dev python3-pip
-
- curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py
- python2 get-pip.py
+if isUbuntu16 || isUbuntu18; then
+ apt-get install -y --no-install-recommends python python-dev python-pip python3 python3-dev python3-pip python3-venv
fi
-if isUbuntu16 || isUbuntu18 ; then
- apt-get install -y --no-install-recommends python python-dev python-pip python3 python3-dev python3-pip
+if isUbuntu20; then
+ apt-get install -y --no-install-recommends python3 python3-dev python3-pip python3-venv
+ ln -s /usr/bin/pip3 /usr/bin/pip
+fi
+
+if isUbuntu18 || isUbuntu20 ; then
+ # Install pipx
+ # Set pipx custom directory
+ export PIPX_BIN_DIR=/opt/pipx_bin
+ export PIPX_HOME=/opt/pipx
+
+ python3 -m pip install pipx
+ python3 -m pipx ensurepath
+
+ # Update /etc/environment
+ setEtcEnvironmentVariable "PIPX_BIN_DIR" $PIPX_BIN_DIR
+ setEtcEnvironmentVariable "PIPX_HOME" $PIPX_HOME
+ prependEtcEnvironmentPath $PIPX_BIN_DIR
+
+ # Test pipx
+ if ! command -v pipx; then
+ echo "pipx was not installed or not found on PATH"
+ exit 1
+ fi
fi
# Run tests to determine that the software installed as expected
diff --git a/images/linux/scripts/installers/r.sh b/images/linux/scripts/installers/r.sh
index cca86e1b..86ad96bd 100644
--- a/images/linux/scripts/installers/r.sh
+++ b/images/linux/scripts/installers/r.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
# Source the helpers for use with the script
source $HELPER_SCRIPTS/os.sh
diff --git a/images/linux/scripts/installers/rndgenerator.sh b/images/linux/scripts/installers/rndgenerator.sh
index cdb78edf..98f1dbaa 100644
--- a/images/linux/scripts/installers/rndgenerator.sh
+++ b/images/linux/scripts/installers/rndgenerator.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: rndgenerator.sh
## Desc: Install random number generator
################################################################################
-
# Install haveged
apt-get -y install haveged
diff --git a/images/linux/scripts/installers/ruby.sh b/images/linux/scripts/installers/ruby.sh
index 8be6d0fa..bf2c757d 100644
--- a/images/linux/scripts/installers/ruby.sh
+++ b/images/linux/scripts/installers/ruby.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: ruby.sh
## Desc: Installs Ruby requirements
################################################################################
-
sudo apt-get install ruby-full
sudo gem update --system
diff --git a/images/linux/scripts/installers/rust.sh b/images/linux/scripts/installers/rust.sh
index a211e791..c86f4d6a 100644
--- a/images/linux/scripts/installers/rust.sh
+++ b/images/linux/scripts/installers/rust.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: rust.sh
## Desc: Installs Rust
diff --git a/images/linux/scripts/installers/sbt.sh b/images/linux/scripts/installers/sbt.sh
index 166dc18b..a4311508 100644
--- a/images/linux/scripts/installers/sbt.sh
+++ b/images/linux/scripts/installers/sbt.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: scala.sh
## Desc: Installs sbt
################################################################################
-
# Install sbt
# https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Linux.html
echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list
diff --git a/images/linux/scripts/installers/selenium.sh b/images/linux/scripts/installers/selenium.sh
index d9b5e279..d662fa00 100644
--- a/images/linux/scripts/installers/selenium.sh
+++ b/images/linux/scripts/installers/selenium.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: selenium.sh
## Desc: Installs selenium server
################################################################################
-
# Determine latest selenium standalone server version
SELENIUM_LATEST_VERSION_URL=https://api.github.com/repos/SeleniumHQ/selenium/releases/latest
SELENIUM_VERSION=$(curl $SELENIUM_LATEST_VERSION_URL | jq '.name' | tr -d '"' | cut -d ' ' -f 2)
diff --git a/images/linux/scripts/installers/sphinx.sh b/images/linux/scripts/installers/sphinx.sh
index 425bb7fd..2ef22f46 100644
--- a/images/linux/scripts/installers/sphinx.sh
+++ b/images/linux/scripts/installers/sphinx.sh
@@ -1,9 +1,8 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: sphinx.sh
## Desc: Installs Sphinx
################################################################################
-
# Install Sphinx
apt-get install -y sphinxsearch
diff --git a/images/linux/scripts/installers/subversion.sh b/images/linux/scripts/installers/subversion.sh
index 3f51d46a..77b2d027 100644
--- a/images/linux/scripts/installers/subversion.sh
+++ b/images/linux/scripts/installers/subversion.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: subversion.sh
## Desc: Installs Subversion client
################################################################################
-
# Install Subversion
apt-get install -y --no-install-recommends subversion
diff --git a/images/linux/scripts/installers/swift.sh b/images/linux/scripts/installers/swift.sh
index 318d3973..e4666a7c 100644
--- a/images/linux/scripts/installers/swift.sh
+++ b/images/linux/scripts/installers/swift.sh
@@ -1,21 +1,23 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: swift.sh
## Desc: Installs Swift
################################################################################
-
# Install
image_label="$(lsb_release -rs)"
-swift_version=$(curl -s https://swift.org/download/ | grep -m1 "id=\"swift-" | awk -F"[ <]" '{print $4}')
+swift_version=$(curl -s -L -N https://swift.org/download|awk -F"[ <]" '/id="swift-/ {print $4; exit}')
wget -P /tmp https://swift.org/builds/swift-$swift_version-release/ubuntu${image_label//./}/swift-$swift_version-RELEASE/swift-$swift_version-RELEASE-ubuntu$image_label.tar.gz
+
tar xzf /tmp/swift-$swift_version-RELEASE-ubuntu$image_label.tar.gz
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
# Run tests to determine that the software installed as expected
@@ -24,3 +26,8 @@ if ! command -v swift; then
echo "Swift was not installed"
exit 1
fi
+
+if ! command -v swiftc; then
+ echo "Swiftc is not linked to swift binary"
+ exit 1
+fi
diff --git a/images/linux/scripts/installers/swig.sh b/images/linux/scripts/installers/swig.sh
index 7972e882..b2e5a202 100644
--- a/images/linux/scripts/installers/swig.sh
+++ b/images/linux/scripts/installers/swig.sh
@@ -1,5 +1,4 @@
-#!/bin/bash
-
+#!/bin/bash -e
# Install Swig
sudo apt-get install -y swig
diff --git a/images/linux/scripts/installers/terraform.sh b/images/linux/scripts/installers/terraform.sh
index 4c7e6e76..90c25c65 100644
--- a/images/linux/scripts/installers/terraform.sh
+++ b/images/linux/scripts/installers/terraform.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: terraform.sh
## Desc: Installs terraform
################################################################################
-
# 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"
diff --git a/images/linux/scripts/installers/test-toolcache.sh b/images/linux/scripts/installers/test-toolcache.sh
index 455ddec0..84d93446 100644
--- a/images/linux/scripts/installers/test-toolcache.sh
+++ b/images/linux/scripts/installers/test-toolcache.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: test-toolcache.sh
## Desc: Test Python and Ruby versions in tools cache
@@ -51,9 +51,6 @@ Test_Hostedtoolcache_Tool() {
fi
}
-# Fail out if any tests fail
-set -e
-
# define dictionary for key_alias and its values
declare -A TOOLCACHE_KEY_VALUE
diff --git a/images/linux/scripts/installers/validate-disk-space.sh b/images/linux/scripts/installers/validate-disk-space.sh
index 49863064..c81b9fa7 100644
--- a/images/linux/scripts/installers/validate-disk-space.sh
+++ b/images/linux/scripts/installers/validate-disk-space.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: validate-disk-space.sh
## Desc: Validate free disk space
@@ -17,4 +17,4 @@ fi
if [ $availableSpaceMB -le $minimumFreeSpaceMB ]; then
echo "Not enough disk space on the image (minimum available space: $minimumFreeSpaceMB MB)"
exit 1
-fi
\ No newline at end of file
+fi
diff --git a/images/linux/scripts/installers/vcpkg.sh b/images/linux/scripts/installers/vcpkg.sh
index ba7cd01c..e2d9688c 100644
--- a/images/linux/scripts/installers/vcpkg.sh
+++ b/images/linux/scripts/installers/vcpkg.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: vcpkg.sh
## Desc: Installs vcpkg
diff --git a/images/linux/scripts/installers/vercel.sh b/images/linux/scripts/installers/vercel.sh
index 4e0d41ae..7f48d7c2 100644
--- a/images/linux/scripts/installers/vercel.sh
+++ b/images/linux/scripts/installers/vercel.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
################################################################################
## File: vercel.sh
## Desc: Installs the Vercel CLI
diff --git a/images/linux/toolsets/toolset-1604.json b/images/linux/toolsets/toolset-1604.json
index c8b2b151..1136ae92 100644
--- a/images/linux/toolsets/toolset-1604.json
+++ b/images/linux/toolsets/toolset-1604.json
@@ -11,7 +11,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
]
},
{
@@ -62,12 +63,8 @@
}
],
"android": {
- "platform_list": [
- "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-19","android-17","android-15","android-10"
- ],
- "build_tools": [
- "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0"
- ],
+ "platform_min_version": "10",
+ "build_tools_min_version": "19.1.0",
"extra_list": [
"android;m2repository",
"google;m2repository",
@@ -109,7 +106,8 @@
"3.8.0",
"4.3.0",
"4.4.0",
- "4.6.0"
+ "4.6.0",
+ "4.7.0"
]
}
],
diff --git a/images/linux/toolsets/toolset-1804.json b/images/linux/toolsets/toolset-1804.json
index 6311cc1a..de611ebc 100644
--- a/images/linux/toolsets/toolset-1804.json
+++ b/images/linux/toolsets/toolset-1804.json
@@ -11,7 +11,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
]
},
{
@@ -62,12 +63,8 @@
}
],
"android": {
- "platform_list": [
- "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-19","android-17"
- ],
- "build_tools": [
- "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0"
- ],
+ "platform_min_version": "17",
+ "build_tools_min_version": "19.1.0",
"extra_list": [
"android;m2repository",
"google;m2repository",
@@ -105,7 +102,8 @@
"3.8.0",
"4.3.0",
"4.4.0",
- "4.6.0"
+ "4.6.0",
+ "4.7.0"
]
}
],
@@ -166,7 +164,6 @@
"time",
"unzip",
"wget",
- "yamllint",
"zip"
]
},
@@ -188,5 +185,15 @@
"node:12-alpine",
"ubuntu:14.04"
]
- }
+ },
+ "pipx": [
+ {
+ "package": "yamllint",
+ "cmd": "yamllint"
+ },
+ {
+ "package": "aws-sam-cli",
+ "cmd": "sam"
+ }
+ ]
}
diff --git a/images/linux/toolsets/toolset-2004.json b/images/linux/toolsets/toolset-2004.json
index 5ac23025..c52fcb40 100644
--- a/images/linux/toolsets/toolset-2004.json
+++ b/images/linux/toolsets/toolset-2004.json
@@ -11,7 +11,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
]
},
{
@@ -48,12 +49,8 @@
}
],
"android": {
- "platform_list": [
- "android-30", "android-29", "android-28", "android-27"
- ],
- "build_tools": [
- "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0"
- ],
+ "platform_min_version": "27",
+ "build_tools_min_version": "27.0.0",
"extra_list": [
"android;m2repository",
"google;m2repository",
@@ -96,7 +93,7 @@
"locales",
"openssh-client",
"pkg-config",
- "python-is-python2",
+ "python-is-python3",
"rpm",
"texinfo",
"tk",
@@ -130,7 +127,6 @@
"time",
"unzip",
"wget",
- "yamllint",
"zip"
]
},
@@ -152,5 +148,15 @@
"node:12-alpine",
"ubuntu:14.04"
]
- }
+ },
+ "pipx": [
+ {
+ "package": "yamllint",
+ "cmd": "yamllint"
+ },
+ {
+ "package": "aws-sam-cli",
+ "cmd": "sam"
+ }
+ ]
}
diff --git a/images/linux/ubuntu1604.json b/images/linux/ubuntu1604.json
index 33263345..5e45fded 100644
--- a/images/linux/ubuntu1604.json
+++ b/images/linux/ubuntu1604.json
@@ -24,7 +24,10 @@
"run_validation_diskspace": "false",
"announcements": "{{env `ANNOUNCEMENTS`}}"
},
- "sensitive-variables": ["client_secret", "github_feed_token"],
+ "sensitive-variables": [
+ "client_secret",
+ "github_feed_token"
+ ],
"builders": [
{
"type": "azure-arm",
@@ -32,7 +35,6 @@
"client_secret": "{{user `client_secret`}}",
"subscription_id": "{{user `subscription_id`}}",
"tenant_id": "{{user `tenant_id`}}",
-
"location": "{{user `location`}}",
"vm_size": "{{user `vm_size`}}",
"resource_group_name": "{{user `resource_group`}}",
@@ -62,7 +64,7 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/base/repos.sh"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
@@ -87,6 +89,11 @@
"source": "{{template_dir}}/scripts/installers",
"destination": "{{user `installer_script_folder`}}"
},
+ {
+ "type": "file",
+ "source": "{{ template_dir }}/post-generation",
+ "destination": "{{user `image_folder`}}"
+ },
{
"type": "file",
"source": "{{ template_dir }}/scripts/SoftwareReport",
@@ -104,7 +111,7 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/preimagedata.sh"
],
"environment_vars": [
@@ -150,6 +157,7 @@
"{{template_dir}}/scripts/installers/clang.sh",
"{{template_dir}}/scripts/installers/swift.sh",
"{{template_dir}}/scripts/installers/cmake.sh",
+ "{{template_dir}}/scripts/installers/codeql-bundle.sh",
"{{template_dir}}/scripts/installers/docker-compose.sh",
"{{template_dir}}/scripts/installers/docker-moby.sh",
"{{template_dir}}/scripts/installers/dotnetcore-sdk.sh",
@@ -217,7 +225,7 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/Install-Toolset.ps1",
"{{template_dir}}/scripts/installers/Configure-Toolset.ps1",
"{{template_dir}}/scripts/installers/Validate-Toolset.ps1"
@@ -269,14 +277,14 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/cleanup.sh"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/Install-PowerShellModules.ps1"
],
"environment_vars": [
@@ -289,7 +297,7 @@
"inline": [
"pwsh -File {{user `image_folder`}}/SoftwareReport/SoftwareReport.Generator.ps1 -OutputDirectory {{user `image_folder`}}"
],
- "environment_vars":[
+ "environment_vars": [
"IMAGE_VERSION={{user `image_version`}}",
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
"ANNOUNCEMENTS={{user `announcements`}}"
@@ -303,16 +311,19 @@
},
{
"type": "shell",
- "inline": [
- "rm -rf {{user `helper_script_folder`}}",
- "rm -rf {{user `installer_script_folder`}}",
- "chmod 755 {{user `image_folder`}}"
+ "scripts":[
+ "{{template_dir}}/scripts/installers/post-deployment.sh"
+ ],
+ "environment_vars":[
+ "HELPER_SCRIPT_FOLDER={{user `helper_script_folder`}}",
+ "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
+ "IMAGE_FOLDER={{user `image_folder`}}"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/validate-disk-space.sh"
],
"environment_vars": [
diff --git a/images/linux/ubuntu1804.json b/images/linux/ubuntu1804.json
index 1dd62bc2..e6af0e41 100644
--- a/images/linux/ubuntu1804.json
+++ b/images/linux/ubuntu1804.json
@@ -24,7 +24,10 @@
"run_validation_diskspace": "false",
"announcements": "{{env `ANNOUNCEMENTS`}}"
},
- "sensitive-variables": ["client_secret", "github_feed_token"],
+ "sensitive-variables": [
+ "client_secret",
+ "github_feed_token"
+ ],
"builders": [
{
"type": "azure-arm",
@@ -32,7 +35,6 @@
"client_secret": "{{user `client_secret`}}",
"subscription_id": "{{user `subscription_id`}}",
"tenant_id": "{{user `tenant_id`}}",
-
"location": "{{user `location`}}",
"vm_size": "{{user `vm_size`}}",
"resource_group_name": "{{user `resource_group`}}",
@@ -62,7 +64,7 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/base/repos.sh"
],
"environment_vars": [
@@ -90,6 +92,11 @@
"source": "{{template_dir}}/scripts/installers",
"destination": "{{user `installer_script_folder`}}"
},
+ {
+ "type": "file",
+ "source": "{{ template_dir }}/post-generation",
+ "destination": "{{user `image_folder`}}"
+ },
{
"type": "file",
"source": "{{ template_dir }}/scripts/SoftwareReport",
@@ -107,7 +114,7 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/preimagedata.sh"
],
"environment_vars": [
@@ -152,6 +159,7 @@
"{{template_dir}}/scripts/installers/clang.sh",
"{{template_dir}}/scripts/installers/swift.sh",
"{{template_dir}}/scripts/installers/cmake.sh",
+ "{{template_dir}}/scripts/installers/codeql-bundle.sh",
"{{template_dir}}/scripts/installers/containers.sh",
"{{template_dir}}/scripts/installers/docker-compose.sh",
"{{template_dir}}/scripts/installers/docker-moby.sh",
@@ -221,7 +229,7 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/Install-Toolset.ps1",
"{{template_dir}}/scripts/installers/Configure-Toolset.ps1",
"{{template_dir}}/scripts/installers/Validate-Toolset.ps1"
@@ -235,10 +243,10 @@
{
"type": "shell",
"scripts": [
- "{{template_dir}}/scripts/installers/aws-sam-cli.sh"
+ "{{template_dir}}/scripts/installers/pipx-packages.sh"
],
"environment_vars": [
- "HELPER_SCRIPTS={{user `helper_script_folder`}}"
+ "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
@@ -273,14 +281,14 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/cleanup.sh"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/Install-PowerShellModules.ps1"
],
"environment_vars": [
@@ -293,7 +301,7 @@
"inline": [
"pwsh -File {{user `image_folder`}}/SoftwareReport/SoftwareReport.Generator.ps1 -OutputDirectory {{user `image_folder`}}"
],
- "environment_vars":[
+ "environment_vars": [
"IMAGE_VERSION={{user `image_version`}}",
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
"ANNOUNCEMENTS={{user `announcements`}}"
@@ -307,16 +315,19 @@
},
{
"type": "shell",
- "inline": [
- "rm -rf {{user `helper_script_folder`}}",
- "rm -rf {{user `installer_script_folder`}}",
- "chmod 755 {{user `image_folder`}}"
+ "scripts":[
+ "{{template_dir}}/scripts/installers/post-deployment.sh"
+ ],
+ "environment_vars":[
+ "HELPER_SCRIPT_FOLDER={{user `helper_script_folder`}}",
+ "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
+ "IMAGE_FOLDER={{user `image_folder`}}"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/validate-disk-space.sh"
],
"environment_vars": [
diff --git a/images/linux/ubuntu2004.json b/images/linux/ubuntu2004.json
index 67d6e1d6..477f8c55 100644
--- a/images/linux/ubuntu2004.json
+++ b/images/linux/ubuntu2004.json
@@ -26,7 +26,10 @@
"go_versions": "1.14",
"announcements": "{{env `ANNOUNCEMENTS`}}"
},
- "sensitive-variables": ["client_secret", "github_feed_token"],
+ "sensitive-variables": [
+ "client_secret",
+ "github_feed_token"
+ ],
"builders": [
{
"type": "azure-arm",
@@ -34,7 +37,6 @@
"client_secret": "{{user `client_secret`}}",
"subscription_id": "{{user `subscription_id`}}",
"tenant_id": "{{user `tenant_id`}}",
-
"location": "{{user `location`}}",
"vm_size": "{{user `vm_size`}}",
"resource_group_name": "{{user `resource_group`}}",
@@ -64,7 +66,7 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/base/repos.sh"
],
"environment_vars": [
@@ -92,6 +94,11 @@
"source": "{{template_dir}}/scripts/installers",
"destination": "{{user `installer_script_folder`}}"
},
+ {
+ "type": "file",
+ "source": "{{ template_dir }}/post-generation",
+ "destination": "{{user `image_folder`}}"
+ },
{
"type": "file",
"source": "{{ template_dir }}/scripts/SoftwareReport",
@@ -109,7 +116,7 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/preimagedata.sh"
],
"environment_vars": [
@@ -154,6 +161,7 @@
"{{template_dir}}/scripts/installers/clang.sh",
"{{template_dir}}/scripts/installers/swift.sh",
"{{template_dir}}/scripts/installers/cmake.sh",
+ "{{template_dir}}/scripts/installers/codeql-bundle.sh",
"{{template_dir}}/scripts/installers/containers.sh",
"{{template_dir}}/scripts/installers/docker-compose.sh",
"{{template_dir}}/scripts/installers/docker-moby.sh",
@@ -223,7 +231,7 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/Install-Toolset.ps1",
"{{template_dir}}/scripts/installers/Configure-Toolset.ps1",
"{{template_dir}}/scripts/installers/Validate-Toolset.ps1"
@@ -237,10 +245,10 @@
{
"type": "shell",
"scripts": [
- "{{template_dir}}/scripts/installers/aws-sam-cli.sh"
+ "{{template_dir}}/scripts/installers/pipx-packages.sh"
],
"environment_vars": [
- "HELPER_SCRIPTS={{user `helper_script_folder`}}"
+ "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
@@ -275,14 +283,14 @@
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/cleanup.sh"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
- "scripts":[
+ "scripts": [
"{{template_dir}}/scripts/installers/Install-PowerShellModules.ps1"
],
"environment_vars": [
@@ -295,7 +303,7 @@
"inline": [
"pwsh -File {{user `image_folder`}}/SoftwareReport/SoftwareReport.Generator.ps1 -OutputDirectory {{user `image_folder`}}"
],
- "environment_vars":[
+ "environment_vars": [
"IMAGE_VERSION={{user `image_version`}}",
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
"ANNOUNCEMENTS={{user `announcements`}}"
@@ -307,6 +315,18 @@
"destination": "{{template_dir}}/Ubuntu2004-README.md",
"direction": "download"
},
+ {
+ "type": "shell",
+ "scripts":[
+ "{{template_dir}}/scripts/installers/post-deployment.sh"
+ ],
+ "environment_vars":[
+ "HELPER_SCRIPT_FOLDER={{user `helper_script_folder`}}",
+ "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
+ "IMAGE_FOLDER={{user `image_folder`}}"
+ ],
+ "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
+ },
{
"type": "shell",
"scripts":[
@@ -316,15 +336,6 @@
"RUN_VALIDATION={{user `run_validation_diskspace`}}"
]
},
- {
- "type": "shell",
- "inline": [
- "rm -rf {{user `helper_script_folder`}}",
- "rm -rf {{user `installer_script_folder`}}",
- "chmod 755 {{user `image_folder`}}"
- ],
- "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
- },
{
"type": "file",
"source": "{{template_dir}}/config/ubuntu2004.conf",
diff --git a/images/macos/helpers/Common.Helpers.psm1 b/images/macos/helpers/Common.Helpers.psm1
index aa2ffdc5..dd8a2184 100644
--- a/images/macos/helpers/Common.Helpers.psm1
+++ b/images/macos/helpers/Common.Helpers.psm1
@@ -24,7 +24,7 @@ function Get-EnvironmentVariable($variable) {
}
# Returns the object with information about current OS
-# It can be used for OS-specific tests
+# It can be used for OS-specific tests
function Get-OSVersion {
$osVersion = [Environment]::OSVersion
return [PSCustomObject]@{
@@ -36,7 +36,7 @@ function Get-OSVersion {
IsBigSur = $osVersion.Version.Major -eq 20
IsLessThanCatalina = $osVersion.Version.Major -lt 19
IsLessThanBigSur = $osVersion.Version.Major -lt 20
- IsHigherThanMojave = $osVersion.Version.Major -gt 18
+ IsHigherThanMojave = $osVersion.Version.Major -gt 18
}
}
@@ -63,7 +63,7 @@ function Get-ToolsetValue {
$jsonNode = Get-Content -Raw $toolsetPath | ConvertFrom-Json
$pathParts = $KeyPath.Split(".")
- # try to walk through all arguments consequentially to resolve specific json node
+ # try to walk through all arguments consequentially to resolve specific json node
$pathParts | ForEach-Object {
$jsonNode = $jsonNode.$_
}
@@ -73,4 +73,13 @@ function Get-ToolsetValue {
function Get-ToolcachePackages {
$toolcachePath = Join-Path $env:HOME "image-generation" "toolcache.json"
return Get-Content -Raw $toolcachePath | ConvertFrom-Json
-}
\ No newline at end of file
+}
+
+function Invoke-RestMethodWithRetry {
+ param (
+ [Parameter()]
+ [string]
+ $Url
+ )
+ Invoke-RestMethod $Url -MaximumRetryCount 10 -RetryIntervalSec 30
+}
diff --git a/images/macos/helpers/Xcode.Helpers.psm1 b/images/macos/helpers/Xcode.Helpers.psm1
index dbc4803c..52a182d5 100644
--- a/images/macos/helpers/Xcode.Helpers.psm1
+++ b/images/macos/helpers/Xcode.Helpers.psm1
@@ -45,6 +45,23 @@ function Switch-Xcode {
Invoke-Expression "sudo xcode-select --switch ${XcodeRootPath}"
}
+function Test-XcodeStableRelease {
+ param (
+ [Parameter(ParameterSetName = 'Version')]
+ [string] $Version,
+ [Parameter(ParameterSetName = 'Path')]
+ [string] $XcodeRootPath
+ )
+
+ if ($PSCmdlet.ParameterSetName -eq "Version") {
+ $XcodeRootPath = Get-XcodeRootPath $Version
+ }
+
+ $licenseInfoPlistPath = Join-Path $XcodeRootPath "Contents" "Resources" "LicenseInfo.plist"
+ $releaseType = & defaults read $licenseInfoPlistPath "licenseType"
+ return -not ($releaseType -match "beta")
+}
+
function Get-XcodeSimulatorsInfo {
param(
[string] $Filter
@@ -91,17 +108,4 @@ function Get-XcodePairsList {
$result += "$watchName $phoneName"
}
return $result
-}
-
-function Test-XcodeStableVersion {
- param([Parameter(Mandatory)][string]$Version)
-
- if ($Version -match "beta") {
- return $false
- }
- if ($Version -match "GM") {
- return $false
- }
-
- return $true
}
\ No newline at end of file
diff --git a/images/macos/macos-10.15-Readme.md b/images/macos/macos-10.15-Readme.md
index 26492d8e..415b41ba 100644
--- a/images/macos/macos-10.15-Readme.md
+++ b/images/macos/macos-10.15-Readme.md
@@ -1,102 +1,109 @@
+| Announcements |
+|-|
+| [macOS 11.0 (Big Sur) is available as a preview 🚀](https://github.com/actions/virtual-environments/issues/1814) |
+| [[macOS] Default Ruby version will be changed to 2.7 on October, 26](https://github.com/actions/virtual-environments/issues/1775) |
+| [Default Xcode will be changed to Xcode 12.0 on October, 20](https://github.com/actions/virtual-environments/issues/1712) |
+| [Xcode 11.0, 11.1, 11.4.0 will be deprecated on November, 5](https://github.com/actions/virtual-environments/issues/1688) |
+***
# macOS 10.15 info
-- System Version: macOS 10.15.6 (19G2021)
+- System Version: macOS 10.15.7 (19H2)
- Kernel Version: Darwin 19.6.0
-- Image Version: 20200916.1
+- Image Version: 20201017.1
## Installed Software
### Language and Runtime
- Clang/LLVM 10.0.1
-- gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 — available by `gcc-8` alias
-- gcc-9 (Homebrew GCC 9.3.0) 9.3.0 — available by `gcc-9` alias
-- GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 — available by `gfortran-8` alias
-- GNU Fortran (Homebrew GCC 9.3.0) 9.3.0 — available by `gfortran-9` alias
-- Node.js v12.18.3
-- NVM 0.35.3
-- NVM - Cached node versions: v6.17.1 v8.17.0 v10.22.1 v12.18.4 v13.14.0 v14.11.0
+- gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 - available by `gcc-8` alias
+- gcc-9 (Homebrew GCC 9.3.0) 9.3.0 - available by `gcc-9` alias
+- GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 - available by `gfortran-8` alias
+- GNU Fortran (Homebrew GCC 9.3.0) 9.3.0 - available by `gfortran-9` alias
+- R 4.0.3
+- Node.js v12.19.0
+- NVM 0.36.0
+- NVM - Cached node versions: v6.17.1 v8.17.0 v10.22.1 v12.19.0 v13.14.0 v14.14.0
- Python 2.7.17
-- Python 3.8.5
+- Python 3.8.6
- Ruby 2.6.6p146
-- .NET SDK 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.602 2.1.603 2.1.604 2.1.607 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.200 3.1.201 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402
-- R 4.0.2
+- .NET SDK 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.602 2.1.603 2.1.604 2.1.607 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 2.1.811 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.200 3.1.201 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403
- Go 1.15.2
-- PHP 7.4.10
-- julia 1.5.1
+- PHP 7.4.11
+- julia 1.5.2
### Package Management
- Vcpkg 2020.06.15
+- Pip 19.3.1 (python 2.7)
+- Pip 20.2.3 (python 3.8)
- Bundler version 2.1.4
-- Carthage 0.35.0
+- Carthage 0.36.0
- CocoaPods 1.9.3
-- Homebrew 2.5.1
-- NPM 6.14.6
+- Homebrew 2.5.6
+- NPM 6.14.8
- Yarn 1.22.5
- NuGet 5.6.0.6489
-- Pip 19.3.1 (python 2.7)
-- Pip 20.1.1 (python 3.8)
- Miniconda 4.8.3
- RubyGems 3.1.4
-- Composer 1.10.13
+- Composer 1.10.15
### Project Management
- Apache Maven 3.6.3
-- Gradle 6.6.1
-- Apache Ant(TM) 1.10.8
+- Gradle 6.7
+- Apache Ant(TM) 1.10.9
### Utilities
-- Curl 7.72.0
+- Curl 7.73.0
- Git: 2.28.0
- Git LFS: 2.12.0
-- GitHub CLI: 0.12.0
+- GitHub CLI: 1.1.0
- Hub CLI: 2.14.2
- GNU Wget 1.20.3
- Subversion (SVN) 1.14.0
-- Packer 1.6.2
-- GNU parallel 20200722
+- Packer 1.6.4
- OpenSSL 1.0.2t 10 Sep 2019 `(/usr/local/opt/openssl -> /usr/local/Cellar/openssl@1.0.2t/1.0.2t)`
- jq 1.6
- gpg (GnuPG) 2.2.23
-- psql (PostgreSQL) 12.4
-- PostgreSQL 12.4
+- psql (PostgreSQL) 13.0
+- PostgreSQL 13.0
- aria2 1.35.0
- azcopy 10.6.0
- zstd 1.4.5
-- bazel 3.5.0
-- bazelisk 1.6.1
-- helm v3.3.1+g249e521
-- virtualbox 6.1.14r140239
-- mongo v4.4.0
-- mongod v4.4.0
-- Vagrant 2.2.10
+- bazel 3.6.0
+- bazelisk 1.7.2
+- helm v3.3.4+ga61ce56
+- mongo v4.4.1
+- mongod v4.4.1
- 7-Zip 16.02
- Newman 5.2.0
+- virtualbox 6.1.14r140239
+- Vagrant 2.2.10
+- GNU parallel 20200722
### Tools
-- Fastlane 2.159.0
-- Cmake 3.18.2
-- App Center CLI 2.7.0
-- Azure CLI 2.11.1
-- AWS CLI 2.0.48
-- AWS SAM CLI 1.2.0
+- Fastlane 2.163.0
+- Cmake 3.18.4
+- App Center CLI 2.7.2
+- Azure CLI 2.13.0
+- AWS CLI 2.0.57
+- AWS SAM CLI 1.6.2
- AWS Session Manager CLI 1.1.61.0
-- Aliyun CLI 3.0.56
-- GHCup v0.1.10
+- Aliyun CLI 3.0.60
+- GHCup v0.1.11
- GHC 8.10.2
- Cabal 3.2.0.0
-- Stack 2.3.3
+- Stack 2.5.1
### Linters
-- yamllint 1.24.2
-- SwiftLint 0.40.2
+- yamllint 1.25.0
+- SwiftLint 0.40.3
### Browsers
-- Safari 13.1.2 (15609.3.5.1.3)
-- SafariDriver 13.1.2 (15609.3.5.1.3)
-- Google Chrome 85.0.4183.102
-- ChromeDriver 85.0.4183.87
-- Microsoft Edge 85.0.564.51
-- MSEdgeDriver 85.0.564.51
-- Mozilla Firefox 80.0.1
+- Safari 14.0 (15610.1.28.1.9)
+- SafariDriver 14.0 (15610.1.28.1.9)
+- Google Chrome 86.0.4240.80
+- ChromeDriver 86.0.4240.22
+- Microsoft Edge 85.0.564.70
+- MSEdgeDriver 85.0.564.70
+- Mozilla Firefox 81.0.2
- geckodriver 0.27.0
### Java
@@ -120,34 +127,35 @@
- 3.5.10
- 3.6.12
- 3.7.9
-- 3.8.5
+- 3.8.6
+- 3.9.0
#### PyPy
-- 2.7.13 [PyPy 7.3.1]
-- 3.6.9 [PyPy 7.3.1]
+- 2.7.13 [PyPy 7.3.2]
+- 3.6.9 [PyPy 7.3.2]
#### Node.js
- 8.17.0
- 10.22.1
-- 12.18.4
-- 14.11.0
+- 12.19.0
+- 14.14.0
#### Go
- 1.11.13
- 1.12.17
- 1.13.15
-- 1.14.9
-- 1.15.2
+- 1.14.10
+- 1.15.3
### Rust Tools
-- Rust 1.46.0
+- Rust 1.47.0
- Rustup 1.22.1
#### Packages
- Bindgen 0.55.1
-- Cbindgen 0.14.4
+- Cbindgen 0.15.0
- Cargo-outdated v0.9.11
-- Cargo-audit 0.12.0
+- Cargo-audit 0.12.1
### PowerShell Tools
- PowerShell 7.0.3
@@ -155,13 +163,13 @@
#### PowerShell Modules
| Module | Version |
| ---------- | ------- |
-| Az | 4.6.1 |
+| Az | 4.8.0 |
| MarkdownPS | 1.9 |
| Pester | 5.0.4 |
### Xamarin
#### Visual Studio for Mac
-- 8.7.5.19
+- 8.7.8.4
#### Mono
- 6.12.0.93
@@ -171,6 +179,7 @@
- 6.4.0.208
#### Xamarin.iOS
+- 14.0.0.0
- 13.20.2.2
- 13.18.2.1
- 13.16.0.13
@@ -203,180 +212,126 @@
- NUnit 3.6.1
### Xcode
-| Version | Build | Path |
-| -------------- | -------- | ------------------------------- |
-| 12.0 | 12A8189n | /Applications/Xcode_12_beta.app |
-| 12.0 | 12A7209 | /Applications/Xcode_12.app |
-| 11.7 (default) | 11E801a | /Applications/Xcode_11.7.app |
-| 11.6 | 11E708 | /Applications/Xcode_11.6.app |
-| 11.5 | 11E608c | /Applications/Xcode_11.5.app |
-| 11.4.1 | 11E503a | /Applications/Xcode_11.4.1.app |
-| 11.4 | 11E146 | /Applications/Xcode_11.4.app |
-| 11.3.1 | 11C505 | /Applications/Xcode_11.3.1.app |
-| 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app |
-| 11.1 | 11A1027 | /Applications/Xcode_11.1.app |
-| 11.0 | 11A420a | /Applications/Xcode_11.app |
-| 10.3 | 10G8 | /Applications/Xcode_10.3.app |
+| Version | Build | Path |
+| -------------- | -------- | ------------------------------ |
+| 12.2 (beta) | 12B5035g | /Applications/Xcode_12.2.app |
+| 12.1 | 12A7403 | /Applications/Xcode_12.1.app |
+| 12.0.1 | 12A7300 | /Applications/Xcode_12.app |
+| 11.7 (default) | 11E801a | /Applications/Xcode_11.7.app |
+| 11.6 | 11E708 | /Applications/Xcode_11.6.app |
+| 11.5 | 11E608c | /Applications/Xcode_11.5.app |
+| 11.4.1 | 11E503a | /Applications/Xcode_11.4.1.app |
+| 11.4 | 11E146 | /Applications/Xcode_11.4.app |
+| 11.3.1 | 11C505 | /Applications/Xcode_11.3.1.app |
+| 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app |
+| 11.1 | 11A1027 | /Applications/Xcode_11.1.app |
+| 11.0 | 11A420a | /Applications/Xcode_11.app |
+| 10.3 | 10G8 | /Applications/Xcode_10.3.app |
#### Xcode Support Tools
+- xcpretty 0.3.0
+- xcversion 2.6.6
- Nomad CLI 3.1.4
- Nomad CLI IPA ipa 0.14.3
-- xcpretty 0.3.0
- xctool 0.3.7
-- xcversion 2.6.6
#### Installed SDKs
-| SDK | SDK Name | Xcode Version |
-| ----------------------- | -------------------- | ---------------------------------------------------------------- |
-| macOS 10.14 | macosx10.14 | 10.3 |
-| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6, 11.7, 12.0 |
-| macOS 11.0 | macosx11.0 | 12.0 |
-| iOS 12.4 | iphoneos12.4 | 10.3 |
-| iOS 13.0 | iphoneos13.0 | 11.0 |
-| iOS 13.1 | iphoneos13.1 | 11.1 |
-| iOS 13.2 | iphoneos13.2 | 11.2.1, 11.3.1 |
-| iOS 13.4 | iphoneos13.4 | 11.4, 11.4.1 |
-| iOS 13.5 | iphoneos13.5 | 11.5 |
-| iOS 13.6 | iphoneos13.6 | 11.6 |
-| iOS 13.7 | iphoneos13.7 | 11.7 |
-| iOS 14.0 | iphoneos14.0 | 12.0, 12.0 |
-| Simulator - iOS 12.4 | iphonesimulator12.4 | 10.3 |
-| Simulator - iOS 13.0 | iphonesimulator13.0 | 11.0 |
-| Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 |
-| Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2.1, 11.3.1 |
-| Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4, 11.4.1 |
-| Simulator - iOS 13.5 | iphonesimulator13.5 | 11.5 |
-| Simulator - iOS 13.6 | iphonesimulator13.6 | 11.6 |
-| Simulator - iOS 13.7 | iphonesimulator13.7 | 11.7 |
-| Simulator - iOS 14.0 | iphonesimulator14.0 | 12.0, 12.0 |
-| tvOS 12.4 | appletvos12.4 | 10.3 |
-| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 |
-| tvOS 13.2 | appletvos13.2 | 11.2.1, 11.3.1 |
-| tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
-| tvOS 14.0 | appletvos14.0 | 12.0, 12.0 |
-| Simulator - tvOS 12.4 | appletvsimulator12.4 | 10.3 |
-| Simulator - tvOS 13.0 | appletvsimulator13.0 | 11.0, 11.1 |
-| Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2.1, 11.3.1 |
-| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
-| Simulator - tvOS 14.0 | appletvsimulator14.0 | 12.0, 12.0 |
-| watchOS 5.3 | watchos5.3 | 10.3 |
-| watchOS 6.0 | watchos6.0 | 11.0, 11.1 |
-| watchOS 6.1 | watchos6.1 | 11.2.1, 11.3.1 |
-| watchOS 6.2 | watchos6.2 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
-| watchOS 7.0 | watchos7.0 | 12.0, 12.0 |
-| Simulator - watchOS 5.3 | watchsimulator5.3 | 10.3 |
-| Simulator - watchOS 6.0 | watchsimulator6.0 | 11.0, 11.1 |
-| Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2.1, 11.3.1 |
-| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
-| Simulator - watchOS 7.0 | watchsimulator7.0 | 12.0, 12.0 |
-| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6, 11.7, 12.0 |
-| DriverKit 20.0 | driverkit.macosx20.0 | 12.0 |
+| SDK | SDK Name | Xcode Version |
+| ----------------------- | -------------------- | ------------------------------------------------------------------------ |
+| macOS 10.14 | macosx10.14 | 10.3 |
+| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6, 11.7, 12.0.1, 12.1 |
+| macOS 11.0 | macosx11.0 | 12.2 |
+| iOS 12.4 | iphoneos12.4 | 10.3 |
+| iOS 13.0 | iphoneos13.0 | 11.0 |
+| iOS 13.1 | iphoneos13.1 | 11.1 |
+| iOS 13.2 | iphoneos13.2 | 11.2.1, 11.3.1 |
+| iOS 13.4 | iphoneos13.4 | 11.4, 11.4.1 |
+| iOS 13.5 | iphoneos13.5 | 11.5 |
+| iOS 13.6 | iphoneos13.6 | 11.6 |
+| iOS 13.7 | iphoneos13.7 | 11.7 |
+| iOS 14.0 | iphoneos14.0 | 12.0.1 |
+| iOS 14.1 | iphoneos14.1 | 12.1 |
+| iOS 14.2 | iphoneos14.2 | 12.2 |
+| Simulator - iOS 12.4 | iphonesimulator12.4 | 10.3 |
+| Simulator - iOS 13.0 | iphonesimulator13.0 | 11.0 |
+| Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 |
+| Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2.1, 11.3.1 |
+| Simulator - iOS 13.4 | iphonesimulator13.4 | 11.4, 11.4.1 |
+| Simulator - iOS 13.5 | iphonesimulator13.5 | 11.5 |
+| Simulator - iOS 13.6 | iphonesimulator13.6 | 11.6 |
+| Simulator - iOS 13.7 | iphonesimulator13.7 | 11.7 |
+| Simulator - iOS 14.0 | iphonesimulator14.0 | 12.0.1 |
+| Simulator - iOS 14.1 | iphonesimulator14.1 | 12.1 |
+| Simulator - iOS 14.2 | iphonesimulator14.2 | 12.2 |
+| tvOS 12.4 | appletvos12.4 | 10.3 |
+| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 |
+| tvOS 13.2 | appletvos13.2 | 11.2.1, 11.3.1 |
+| tvOS 13.4 | appletvos13.4 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
+| tvOS 14.0 | appletvos14.0 | 12.0.1, 12.1 |
+| tvOS 14.2 | appletvos14.2 | 12.2 |
+| Simulator - tvOS 12.4 | appletvsimulator12.4 | 10.3 |
+| Simulator - tvOS 13.0 | appletvsimulator13.0 | 11.0, 11.1 |
+| Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2.1, 11.3.1 |
+| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
+| Simulator - tvOS 14.0 | appletvsimulator14.0 | 12.0.1, 12.1 |
+| Simulator - tvOS 14.2 | appletvsimulator14.2 | 12.2 |
+| watchOS 5.3 | watchos5.3 | 10.3 |
+| watchOS 6.0 | watchos6.0 | 11.0, 11.1 |
+| watchOS 6.1 | watchos6.1 | 11.2.1, 11.3.1 |
+| watchOS 6.2 | watchos6.2 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
+| watchOS 7.0 | watchos7.0 | 12.0.1, 12.1 |
+| watchOS 7.1 | watchos7.1 | 12.2 |
+| Simulator - watchOS 5.3 | watchsimulator5.3 | 10.3 |
+| Simulator - watchOS 6.0 | watchsimulator6.0 | 11.0, 11.1 |
+| Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2.1, 11.3.1 |
+| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.4, 11.4.1, 11.5, 11.6, 11.7 |
+| Simulator - watchOS 7.0 | watchsimulator7.0 | 12.0.1, 12.1 |
+| Simulator - watchOS 7.1 | watchsimulator7.1 | 12.2 |
+| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2.1, 11.3.1, 11.4, 11.4.1, 11.5, 11.6, 11.7, 12.0.1, 12.1 |
+| DriverKit 20.0 | driverkit.macosx20.0 | 12.2 |
#### Installed Simulators
-| OS | Xcode Version | Simulators |
-| ----------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| iOS 12.4 | 10.3 | iPhone 5s
iPhone 6
iPhone 6 Plus
iPhone 6s
iPhone 6s Plus
iPhone 7
iPhone 7 Plus
iPhone 8
iPhone 8 Plus
iPhone SE
iPhone X
iPhone XR
iPhone Xs
iPhone Xs Max
iPad (5th generation)
iPad (6th generation)
iPad Air
iPad Air (3rd generation)
iPad Air 2
iPad Pro (10.5-inch)
iPad Pro (11-inch)
iPad Pro (12.9-inch)
iPad Pro (12.9-inch) (2nd generation)
iPad Pro (12.9-inch) (3rd generation)
iPad Pro (9.7-inch) |
-| iOS 13.0 | 11.0 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPad Air (3rd generation)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Pro (9.7-inch) |
-| iOS 13.1 | 11.1 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPad Air (3rd generation)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Pro (9.7-inch) |
-| iOS 13.2 | 11.2.1 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPad Air (3rd generation)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Pro (9.7-inch) |
-| iOS 13.3 | 11.3.1 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPad Air (3rd generation)
iPad Pro (11-inch)
iPad Pro (12.9-inch) (3rd generation)
iPad Pro (9.7-inch) |
-| iOS 13.4 | 11.4
11.4.1 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
-| iOS 13.5 | 11.5 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
-| iOS 13.6 | 11.6 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
-| iOS 13.7 | 11.7 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
-| iOS 14.0 | 12.0 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
-| tvOS 12.4 | 10.3 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
-| tvOS 13.0 | 11.0
11.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
-| tvOS 13.2 | 11.2.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
-| tvOS 13.3 | 11.3.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
-| tvOS 13.4 | 11.4
11.4.1
11.5
11.6
11.7 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
-| tvOS 14.0 | 12.0 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
-| watchOS 5.3 | 10.3 | Apple Watch Series 2 - 38mm
Apple Watch Series 2 - 42mm
Apple Watch Series 3 - 38mm
Apple Watch Series 3 - 42mm
Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm |
-| watchOS 6.0 | 11.0
11.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm |
-| watchOS 6.1 | 11.2.1
11.3.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm |
-| watchOS 6.2 | 11.4
11.4.1
11.5
11.6
11.7 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm |
-| watchOS 7.0 | 12.0 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm |
+| OS | Xcode Version | Simulators |
+| ----------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| iOS 12.4 | 10.3 | iPhone 5s
iPhone 6
iPhone 6 Plus
iPhone 6s
iPhone 6s Plus
iPhone 7
iPhone 7 Plus
iPhone 8
iPhone 8 Plus
iPhone SE
iPhone X
iPhone XR
iPhone Xs
iPhone Xs Max
iPad (5th generation)
iPad (6th generation)
iPad Air
iPad Air (3rd generation)
iPad Air 2
iPad Pro (10.5-inch)
iPad Pro (11-inch)
iPad Pro (11-inch) (1st generation)
iPad Pro (12.9-inch)
iPad Pro (12.9-inch) (2nd generation)
iPad Pro (12.9-inch) (3rd generation)
iPad Pro (9.7-inch) |
+| iOS 13.0 | 11.0 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPad Air (3rd generation)
iPad Pro (11-inch)
iPad Pro (11-inch) (1st generation)
iPad Pro (12.9-inch) (3rd generation)
iPad Pro (9.7-inch) |
+| iOS 13.1 | 11.1 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPad Air (3rd generation)
iPad Pro (11-inch)
iPad Pro (11-inch) (1st generation)
iPad Pro (12.9-inch) (3rd generation)
iPad Pro (9.7-inch) |
+| iOS 13.2 | 11.2.1 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch)
iPad Pro (11-inch) (1st generation)
iPad Pro (12.9-inch) (3rd generation)
iPad Pro (9.7-inch) |
+| iOS 13.3 | 11.3.1 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch)
iPad Pro (11-inch) (1st generation)
iPad Pro (12.9-inch) (3rd generation)
iPad Pro (9.7-inch) |
+| iOS 13.4 | 11.4
11.4.1 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
+| iOS 13.5 | 11.5 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
+| iOS 13.6 | 11.6 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
+| iOS 13.7 | 11.7 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
+| iOS 14.0 | 12.0.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
+| iOS 14.1 | 12.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
+| iOS 14.2 | 12.2 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
+| tvOS 12.4 | 10.3 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| tvOS 13.0 | 11.0
11.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| tvOS 13.2 | 11.2.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| tvOS 13.3 | 11.3.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| tvOS 13.4 | 11.4
11.4.1
11.5
11.6
11.7 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| tvOS 14.0 | 12.0.1
12.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| tvOS 14.2 | 12.2 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| watchOS 5.3 | 10.3 | Apple Watch Series 2 - 38mm
Apple Watch Series 2 - 42mm
Apple Watch Series 3 - 38mm
Apple Watch Series 3 - 42mm
Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm |
+| watchOS 6.0 | 11.0
11.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm |
+| watchOS 6.1 | 11.2.1
11.3.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm |
+| watchOS 6.2 | 11.4
11.4.1
11.5
11.6
11.7 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm |
+| watchOS 7.0 | 12.0.1
12.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm |
+| watchOS 7.1 | 12.2 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm |
### Android
-#### Android SDK Tools
-| Package Name | Description |
-| ------------ | ---------------------------------- |
-| tools | Android SDK Tools, Revision 26.1.1 |
-
-#### Android SDK Platform-Tools
-| Package Name | Description |
-| -------------- | ------------------------------------------- |
-| platform-tools | Android SDK Platform-Tools, Revision 30.0.4 |
-
-#### Android SDK Platforms
-| Package Name | Description |
-| ------------ | ----------------------------------- |
-| android-24 | Android SDK Platform 24, Revision 2 |
-| android-25 | Android SDK Platform 25, Revision 3 |
-| android-26 | Android SDK Platform 26, Revision 2 |
-| android-27 | Android SDK Platform 27, Revision 3 |
-| android-28 | Android SDK Platform 28, Revision 6 |
-| android-29 | Android SDK Platform 29, Revision 5 |
-| android-30 | Android SDK Platform 30, Revision 3 |
-
-#### Android SDK Build-Tools
-| Package Name | Description |
-| ------------------ | ---------------------------------------- |
-| build-tools-24.0.0 | Android SDK Build-Tools, Revision 24.0.0 |
-| build-tools-24.0.1 | Android SDK Build-Tools, Revision 24.0.1 |
-| build-tools-24.0.2 | Android SDK Build-Tools, Revision 24.0.2 |
-| build-tools-24.0.3 | Android SDK Build-Tools, Revision 24.0.3 |
-| build-tools-25.0.0 | Android SDK Build-Tools, Revision 25.0.0 |
-| build-tools-25.0.1 | Android SDK Build-Tools, Revision 25.0.1 |
-| build-tools-25.0.2 | Android SDK Build-Tools, Revision 25.0.2 |
-| build-tools-25.0.3 | Android SDK Build-Tools, Revision 25.0.3 |
-| build-tools-26.0.0 | Android SDK Build-Tools, Revision 26.0.0 |
-| build-tools-26.0.1 | Android SDK Build-Tools, Revision 26.0.1 |
-| build-tools-26.0.2 | Android SDK Build-Tools, Revision 26.0.2 |
-| build-tools-26.0.3 | Android SDK Build-Tools, Revision 26.0.3 |
-| build-tools-27.0.0 | Android SDK Build-Tools, Revision 27.0.0 |
-| build-tools-27.0.1 | Android SDK Build-Tools, Revision 27.0.1 |
-| build-tools-27.0.2 | Android SDK Build-Tools, Revision 27.0.2 |
-| build-tools-27.0.3 | Android SDK Build-Tools, Revision 27.0.3 |
-| build-tools-28.0.0 | Android SDK Build-Tools, Revision 28.0.0 |
-| build-tools-28.0.1 | Android SDK Build-Tools, Revision 28.0.1 |
-| build-tools-28.0.2 | Android SDK Build-Tools, Revision 28.0.2 |
-| build-tools-28.0.3 | Android SDK Build-Tools, Revision 28.0.3 |
-| build-tools-29.0.0 | Android SDK Build-Tools, Revision 29.0.0 |
-| build-tools-29.0.1 | Android SDK Build-Tools, Revision 29.0.1 |
-| build-tools-29.0.2 | Android SDK Build-Tools, Revision 29.0.2 |
-| build-tools-29.0.3 | Android SDK Build-Tools, Revision 29.0.3 |
-| build-tools-30.0.0 | Android SDK Build-Tools, Revision 30.0.0 |
-| build-tools-30.0.1 | Android SDK Build-Tools, Revision 30.0.1 |
-| build-tools-30.0.2 | Android SDK Build-Tools, Revision 30.0.2 |
-
-#### Android NDKs
-| Version | Path |
-| ------------ | ------------------------------------------ |
-| 15.2.4203891 | $HOME/Library/Android/sdk/android-ndk-r15c |
-| 18.1.5063045 | $HOME/Library/Android/sdk/ndk/18.1.5063045 |
-| 21.3.6528147 | $HOME/Library/Android/sdk/ndk-bundle |
-
-#### Android Utils
-| Package Name | Version |
-| ---------------- | ----------- |
-| cmake | 3.6.4111459 |
-| Android Emulator | 30.0.26 |
-
-#### Android Google APIs
-| Package Name | Description |
-| --------------------------- | ----------------------- |
-| addon-google_apis-google-21 | Google APIs, Revision 1 |
-| addon-google_apis-google-22 | Google APIs, Revision 1 |
-| addon-google_apis-google-23 | Google APIs, Revision 1 |
-| addon-google_apis-google-24 | Google APIs, Revision 1 |
-
-#### Extra Packages
-| Package Name | Version |
-| ----------------------------------------------- | ------- |
-| Android Support Repository | 47.0.0 |
-| Google Play services | 49 |
-| Google Repository | 58 |
-| Intel x86 Emulator Accelerator (HAXM installer) | 7.5.1 |
+| Package Name | Version |
+| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Android SDK Tools | 26.1.1 |
+| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2) |
+| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3 |
+| Android SDK Platform-Tools | 30.0.4 |
+| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 |
+| Android Support Repository | 47.0.0 |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| SDK Patch Applier v4 | 1 |
+| CMake | 3.6.4111459 |
+| NDK | 15.2.4203891
18.1.5063045
21.3.6528147 |
diff --git a/images/macos/macos-11.0-Readme.md b/images/macos/macos-11.0-Readme.md
new file mode 100644
index 00000000..b4776beb
--- /dev/null
+++ b/images/macos/macos-11.0-Readme.md
@@ -0,0 +1,233 @@
+| Announcements |
+|-|
+| [[macOS] Built-in Python 2.7 will be used on macOS instead of Homebrew formula on November, 3rd.](https://github.com/actions/virtual-environments/issues/1848) |
+| [macOS 11.0 (Big Sur) is available as a preview 🚀](https://github.com/actions/virtual-environments/issues/1814) |
+| [[macOS] Default Ruby version will be changed to 2.7 on October, 26](https://github.com/actions/virtual-environments/issues/1775) |
+| [Default Xcode will be changed to Xcode 12.0.1 on October, 20](https://github.com/actions/virtual-environments/issues/1712) |
+| [Xcode 11.0, 11.1, 11.4.0 will be deprecated on November, 5](https://github.com/actions/virtual-environments/issues/1688) |
+***
+# macOS 11.0 info
+- System Version: macOS 11.0 (20A5395g)
+- Kernel Version: Darwin 20.1.0
+- Image Version: 20201020.1
+
+## Installed Software
+### Language and Runtime
+- Clang/LLVM 11.0.0
+- gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 - available by `gcc-8` alias
+- gcc-9 (Homebrew GCC 9.3.0) 9.3.0 - available by `gcc-9` alias
+- GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 - available by `gfortran-8` alias
+- GNU Fortran (Homebrew GCC 9.3.0) 9.3.0 - available by `gfortran-9` alias
+- Node.js v12.19.0
+- NVM 0.36.0
+- NVM - Cached node versions: v6.17.1 v8.17.0 v10.22.1 v12.19.0 v13.14.0 v14.14.0
+- Python 2.7.17
+- Python 3.8.6
+- Ruby 2.7.2p137
+- .NET SDK 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.602 2.1.603 2.1.604 2.1.607 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 2.1.811 3.1.100 3.1.101 3.1.200 3.1.201 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403
+- Go 1.15.3
+- PHP 7.4.11
+- julia 1.5.2
+
+### Package Management
+- Vcpkg 2020.06.15
+- Pip 20.2.3 (python 3.8)
+- Bundler version 2.1.4
+- Carthage 0.36.0
+- CocoaPods 1.9.3
+- Homebrew 2.5.6
+- NPM 6.14.8
+- Yarn 1.22.5
+- NuGet 5.6.0.6489
+- Miniconda 4.8.3
+- RubyGems 3.1.4
+- Composer 1.10.15
+
+### Project Management
+- Apache Maven 3.6.3
+- Gradle 6.7
+- Apache Ant(TM) 1.10.9
+
+### Utilities
+- Curl 7.73.0
+- Git: 2.29.0
+- Git LFS: 2.12.0
+- GitHub CLI: 1.1.0
+- Hub CLI: 2.14.2
+- GNU Wget 1.20.3
+- Subversion (SVN) 1.14.0
+- Packer 1.6.4
+- OpenSSL 1.0.2t 10 Sep 2019 `(/usr/local/opt/openssl -> /usr/local/Cellar/openssl@1.0.2t/1.0.2t)`
+- jq 1.6
+- gpg (GnuPG) 2.2.23
+- psql (PostgreSQL) 13.0
+- PostgreSQL 13.0
+- aria2 1.35.0
+- azcopy 10.6.0
+- zstd 1.4.5
+- bazel 3.7.0
+- bazelisk 1.7.3
+- helm v3.3.4+ga61ce56
+- mongo v4.4.1
+- mongod v4.4.1
+- 7-Zip 16.02
+- Newman 5.2.0
+
+### Tools
+- Fastlane 2.164.0
+- Cmake 3.18.4
+- App Center CLI 2.7.2
+- Azure CLI 2.13.0
+- AWS CLI 2.0.57
+- AWS SAM CLI 1.6.2
+- AWS Session Manager CLI 1.1.61.0
+- Aliyun CLI 3.0.60
+- GHCup v0.1.11
+- GHC 8.10.2
+- Cabal 3.2.0.0
+- Stack 2.5.1
+
+### Linters
+- yamllint 1.25.0
+- SwiftLint 0.40.3
+
+### Browsers
+- Safari 14.0.1 (16610.2.8.1.1)
+- SafariDriver 14.0.1 (16610.2.8.1.1)
+- Google Chrome 86.0.4240.80
+- ChromeDriver 86.0.4240.22
+- Microsoft Edge 85.0.564.70
+- MSEdgeDriver 85.0.564.70
+- Mozilla Firefox 81.0.2
+- geckodriver 0.27.0
+
+### Java
+| Version | Vendor | Environment Variable |
+| --------- | ------------ | -------------------- |
+| 1.8.0_265 | AdoptOpenJDK | JAVA_HOME_8_X64 |
+| 11.0.8 | AdoptOpenJDK | JAVA_HOME_11_X64 |
+### Cached Tools
+#### Ruby
+- 2.4.10
+- 2.5.8
+- 2.6.6
+- 2.7.1
+
+#### Python
+- 3.7.9
+- 3.8.6
+- 3.9.0
+
+#### Node.js
+- 10.22.1
+- 12.19.0
+- 14.14.0
+
+#### Go
+- 1.15.3
+
+### Rust Tools
+- Rust 1.47.0
+- Rustup 1.22.1
+
+#### Packages
+- Bindgen 0.55.1
+- Cbindgen 0.15.0
+- Cargo-outdated v0.9.11
+- Cargo-audit 0.12.1
+
+### PowerShell Tools
+- PowerShell 7.0.3
+
+#### PowerShell Modules
+| Module | Version |
+| ---------- | ------- |
+| Az | 4.8.0 |
+| MarkdownPS | 1.9 |
+| Pester | 5.0.4 |
+
+### Xamarin
+#### Visual Studio for Mac
+- 8.7.8.4
+
+#### Mono
+- 6.12.0.93
+
+#### Xamarin.iOS
+- 14.0.0.0
+- 13.20.2.2
+
+#### Xamarin.Mac
+- 6.20.2.2
+
+#### Xamarin.Android
+- 11.0.2
+
+#### Unit Test Framework
+- NUnit 3.6.1
+
+### Xcode
+| Version | Build | Path |
+| -------------- | -------- | ---------------------------- |
+| 12.2 (beta) | 12B5035g | /Applications/Xcode_12.2.app |
+| 12.1 | 12A7403 | /Applications/Xcode_12.1.app |
+| 11.7 (default) | 11E801a | /Applications/Xcode_11.7.app |
+
+#### Xcode Support Tools
+- xcpretty 0.3.0
+- xcversion 2.6.6
+
+#### Installed SDKs
+| SDK | SDK Name | Xcode Version |
+| ----------------------- | -------------------- | ------------- |
+| macOS 10.15 | macosx10.15 | 11.7, 12.1 |
+| macOS 11.0 | macosx11.0 | 12.2 |
+| iOS 13.7 | iphoneos13.7 | 11.7 |
+| iOS 14.1 | iphoneos14.1 | 12.1 |
+| iOS 14.2 | iphoneos14.2 | 12.2 |
+| Simulator - iOS 13.7 | iphonesimulator13.7 | 11.7 |
+| Simulator - iOS 14.1 | iphonesimulator14.1 | 12.1 |
+| Simulator - iOS 14.2 | iphonesimulator14.2 | 12.2 |
+| tvOS 13.4 | appletvos13.4 | 11.7 |
+| tvOS 14.0 | appletvos14.0 | 12.1 |
+| tvOS 14.2 | appletvos14.2 | 12.2 |
+| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.7 |
+| Simulator - tvOS 14.0 | appletvsimulator14.0 | 12.1 |
+| Simulator - tvOS 14.2 | appletvsimulator14.2 | 12.2 |
+| watchOS 6.2 | watchos6.2 | 11.7 |
+| watchOS 7.0 | watchos7.0 | 12.1 |
+| watchOS 7.1 | watchos7.1 | 12.2 |
+| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.7 |
+| Simulator - watchOS 7.0 | watchsimulator7.0 | 12.1 |
+| Simulator - watchOS 7.1 | watchsimulator7.1 | 12.2 |
+| DriverKit 19.0 | driverkit.macosx19.0 | 11.7, 12.1 |
+| DriverKit 20.0 | driverkit.macosx20.0 | 12.2 |
+
+#### Installed Simulators
+| OS | Xcode Version | Simulators |
+| ----------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| iOS 13.7 | 11.7 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
+| iOS 14.1 | 12.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
+| iOS 14.2 | 12.2 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) |
+| tvOS 13.4 | 11.7 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| tvOS 14.0 | 12.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| tvOS 14.2 | 12.2 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) |
+| watchOS 6.2 | 11.7 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm |
+| watchOS 7.0 | 12.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm |
+| watchOS 7.1 | 12.2 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm |
+
+### Android
+| Package Name | Version |
+| -------------------------- | ----------------------------------------------------------------------------------------------------------------- |
+| Android SDK Tools | 26.1.1 |
+| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3) |
+| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3 |
+| Android SDK Platform-Tools | 30.0.4 |
+| Android Support Repository | 47.0.0 |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| SDK Patch Applier v4 | 1 |
+| CMake | 3.6.4111459 |
+| NDK | 21.3.6528147 |
+
+
diff --git a/images/macos/provision/configuration/add-network-interface-detection.sh b/images/macos/provision/configuration/add-network-interface-detection.sh
index e939f04b..ca9192bf 100755
--- a/images/macos/provision/configuration/add-network-interface-detection.sh
+++ b/images/macos/provision/configuration/add-network-interface-detection.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
# This script was taken from https://github.com/timsutton/osx-vm-templates/blob/master/scripts/add-network-interface-detection.sh
# Distributed by MIT license, license can be found at the bottom of this script
diff --git a/images/macos/provision/configuration/autologin.sh b/images/macos/provision/configuration/autologin.sh
index caa29a6b..02f2f06d 100755
--- a/images/macos/provision/configuration/autologin.sh
+++ b/images/macos/provision/configuration/autologin.sh
@@ -1,3 +1,5 @@
+#!/bin/bash -e -o pipefail
+
# This script was taken from https://github.com/timsutton/osx-vm-templates/blob/master/scripts/autologin.sh
# Distributed by MIT license, license can be found at the bottom of this script
diff --git a/images/macos/provision/configuration/configure-hostname.sh b/images/macos/provision/configuration/configure-hostname.sh
index 477e0980..e0de0bf8 100644
--- a/images/macos/provision/configuration/configure-hostname.sh
+++ b/images/macos/provision/configuration/configure-hostname.sh
@@ -1,8 +1,8 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
# Add script for changing hostname to run on startup to prevent duplicate hostnames across the environment. Hostname and Computername should contain .local in name to avoid name resolution issues
tee -a /usr/local/bin/change_hostname.sh > /dev/null <<\EOF
-#!/bin/bash
+#!/bin/bash -e -o pipefail
name="Mac-$(python -c 'from time import time; print int(round(time() * 1000))')"
scutil --set HostName "${name}.local"
diff --git a/images/macos/provision/configuration/configure-machine.sh b/images/macos/provision/configuration/configure-machine.sh
index d34d7002..df991c21 100644
--- a/images/macos/provision/configuration/configure-machine.sh
+++ b/images/macos/provision/configuration/configure-machine.sh
@@ -1,12 +1,4 @@
-#!/bin/bash
-
-# Enable firewall. SSH and VNC opened. Can't did it at bootstrap step, so placed it here
-defaults write /Library/Preferences/com.apple.alf globalstate -int 1
-
-# Setting correct time zone
-echo "Configuring system time to GMT..."
-rm -f /etc/localtime
-ln -sf /usr/share/zoneinfo/UTC /etc/localtime
+#!/bin/bash -e -o pipefail
# https://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari
# Safari’s executable is located at /usr/bin/safaridriver
@@ -18,4 +10,13 @@ sudo pmset hibernatemode 0
sudo rm -f /var/vm/sleepimage
# Change screen resolution to the maximum supported for 4Mb video memory
-sudo "/Library/Application Support/VMware Tools/vmware-resolutionSet" 1176 885
\ No newline at end of file
+sudo "/Library/Application Support/VMware Tools/vmware-resolutionSet" 1176 885
+
+# https://developer.apple.com/support/expiration/
+# Enterprise iOS Distribution Certificates generated between February 7 and September 1st, 2020 will expire on February 7, 2023.
+# Rotate the certificate before expiration to ensure your apps are installed and signed with an active certificate.
+# Confirm that the correct intermediate certificate is installed by verifying the expiration date is set to 2030.
+# sudo security delete-certificate -Z FF6797793A3CD798DC5B2ABEF56F73EDC9F83A64 /Library/Keychains/System.keychain
+curl https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer --output $HOME/AppleWWDRCAG3.cer --silent
+sudo security add-trusted-cert -d -r unspecified -k /Library/Keychains/System.keychain $HOME/AppleWWDRCAG3.cer
+rm $HOME/AppleWWDRCAG3.cer
\ No newline at end of file
diff --git a/images/macos/provision/configuration/configure-ssh.sh b/images/macos/provision/configuration/configure-ssh.sh
index f85e9efa..73095f55 100755
--- a/images/macos/provision/configuration/configure-ssh.sh
+++ b/images/macos/provision/configuration/configure-ssh.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
[[ ! -d ~/.ssh ]] && mkdir ~/.ssh 2>/dev/null
chmod 777 ~/.ssh
diff --git a/images/macos/provision/configuration/disable-auto-updates.sh b/images/macos/provision/configuration/disable-auto-updates.sh
index 3a35f5be..050f7d9a 100755
--- a/images/macos/provision/configuration/disable-auto-updates.sh
+++ b/images/macos/provision/configuration/disable-auto-updates.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
# Disabling automatic updates
sudo softwareupdate --schedule off
diff --git a/images/macos/provision/configuration/environment/bashrc b/images/macos/provision/configuration/environment/bashrc
index 26fd1432..92fe36d3 100644
--- a/images/macos/provision/configuration/environment/bashrc
+++ b/images/macos/provision/configuration/environment/bashrc
@@ -3,6 +3,7 @@ export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export ANDROID_HOME=${HOME}/Library/Android/sdk
+export ANDROID_SDK_ROOT=${HOME}/Library/Android/sdk
export ANDROID_NDK_HOME=${ANDROID_HOME}/ndk-bundle
export NUNIT_BASE_PATH=/Library/Developer/nunit
diff --git a/images/macos/provision/configuration/finalize-vm.sh b/images/macos/provision/configuration/finalize-vm.sh
index 77902ea4..256a76c5 100644
--- a/images/macos/provision/configuration/finalize-vm.sh
+++ b/images/macos/provision/configuration/finalize-vm.sh
@@ -1,12 +1,16 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
+
+source ~/utils/utils.sh
# Close all finder windows because they can interfere with UI tests
osascript -e 'tell application "Finder" to close windows'
-# Ignore available updates to prevent system pop-ups
-updateName=$(softwareupdate -l | grep "Title: " | awk -F[:,] '{print $2}' | awk '{$1=$1};1')
-if [ ! -z "$updateName" ]; then
- sudo softwareupdate --ignore "$updateName"
+if is_Less_BigSur; then
+ # Ignore available updates to prevent system pop-ups
+ updateName=$(softwareupdate -l | grep "Title: " | awk -F[:,] '{print $2}' | awk '{$1=$1};1') || true
+ if [ ! -z "$updateName" ]; then
+ sudo softwareupdate --ignore "$updateName"
+ fi
fi
# Put documentation to $HOME root
diff --git a/images/macos/provision/configuration/max-files.sh b/images/macos/provision/configuration/max-files.sh
index a6e41f12..cd1df451 100755
--- a/images/macos/provision/configuration/max-files.sh
+++ b/images/macos/provision/configuration/max-files.sh
@@ -1,6 +1,4 @@
-#!/bin/bash
-
-set -e
+#!/bin/bash -e -o pipefail
Launch_Daemons="/Library/LaunchDaemons"
diff --git a/images/macos/provision/configuration/ntpconf.sh b/images/macos/provision/configuration/ntpconf.sh
index 09916cc3..b4f68128 100755
--- a/images/macos/provision/configuration/ntpconf.sh
+++ b/images/macos/provision/configuration/ntpconf.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
echo Additional NTP servers adding into /etc/ntp.conf file...
cat > /etc/ntp.conf << EOF
diff --git a/images/macos/provision/configuration/preimagedata.sh b/images/macos/provision/configuration/preimagedata.sh
index c269a149..8060acb7 100644
--- a/images/macos/provision/configuration/preimagedata.sh
+++ b/images/macos/provision/configuration/preimagedata.sh
@@ -1,4 +1,5 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
+
source ~/utils/utils.sh
imagedata_file="$HOME/imagedata.json"
diff --git a/images/macos/provision/configuration/screensaver-off.sh b/images/macos/provision/configuration/screensaver-off.sh
index c154f8d8..6844792e 100755
--- a/images/macos/provision/configuration/screensaver-off.sh
+++ b/images/macos/provision/configuration/screensaver-off.sh
@@ -1,4 +1,5 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
+
# set screensaver idleTime to 0, to prevent turning screensaver on
macUUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62`
diff --git a/images/macos/provision/configuration/shell-change.sh b/images/macos/provision/configuration/shell-change.sh
index a84216cb..5fb12a03 100644
--- a/images/macos/provision/configuration/shell-change.sh
+++ b/images/macos/provision/configuration/shell-change.sh
@@ -1,3 +1,5 @@
+#!/bin/bash -e -o pipefail
+
echo "Changing shell to bash"
sudo chsh -s /bin/bash $USERNAME
sudo chsh -s /bin/bash root
\ No newline at end of file
diff --git a/images/macos/provision/core/android-toolsets.sh b/images/macos/provision/core/android-toolsets.sh
index a3b8aa97..2f6139c8 100755
--- a/images/macos/provision/core/android-toolsets.sh
+++ b/images/macos/provision/core/android-toolsets.sh
@@ -1,8 +1,26 @@
-#!/bin/bash -e
+#!/bin/bash -e -o pipefail
source ~/utils/utils.sh
-ANDROID_PLATFORM_LIST=($(get_toolset_value '.android."platform-list"[]'))
-ANDROID_BUILD_TOOLS=($(get_toolset_value '.android."build-tools"[]'))
+function filter_components_by_version {
+ minimumVersion=$1
+ shift
+ toolsArr=("$@")
+
+ for item in ${toolsArr[@]}
+ do
+ # take the last argument after spliting string by ';'' and '-''
+ version=$(echo "${item##*[-;]}")
+ if verlte $minimumVersion $version
+ then
+ components+=($item)
+ fi
+ done
+}
+
+components=()
+
+ANDROID_PLATFORM=($(get_toolset_value '.android.platform_min_version'))
+ANDROID_BUILD_TOOL=($(get_toolset_value '.android.build_tools_min_version'))
ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extra-list"[]'))
ANDROID_ADDON_LIST=($(get_toolset_value '.android."addon-list"[]'))
@@ -48,17 +66,14 @@ echo y | $SDKMANAGER "cmake;3.6.4111459"
echo "Installing latest ndk..."
echo y | $SDKMANAGER "ndk-bundle"
-for platform_name in "${ANDROID_PLATFORM_LIST[@]}"
-do
- echo "Installing platform $platform_name ..."
- echo y | $SDKMANAGER "platforms;$platform_name"
-done
+availablePlatforms=($(${ANDROID_HOME}/tools/bin/sdkmanager --list | grep "platforms;android-" | cut -d"|" -f 1 | sort -u))
+filter_components_by_version $ANDROID_PLATFORM "${availablePlatforms[@]}"
-for build_tools_version in "${ANDROID_BUILD_TOOLS[@]}"
-do
- echo "Installing build tools $build_tools_version ..."
- echo y | $SDKMANAGER "build-tools;$build_tools_version"
-done
+allBuildTools=($(${ANDROID_HOME}/tools/bin/sdkmanager --list --include_obsolete | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
+availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
+filter_components_by_version $ANDROID_BUILD_TOOL "${availableBuildTools[@]}"
+
+echo "y" | ${ANDROID_HOME}/tools/bin/sdkmanager ${components[@]}
for extra_name in "${ANDROID_EXTRA_LIST[@]}"
do
diff --git a/images/macos/provision/core/audiodevice.sh b/images/macos/provision/core/audiodevice.sh
index 705490de..ec7d71d9 100644
--- a/images/macos/provision/core/audiodevice.sh
+++ b/images/macos/provision/core/audiodevice.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
echo "install soundflower"
brew cask install soundflower
@@ -12,8 +12,3 @@ brew install sox
echo "set Soundflower (2ch) as input/output device"
SwitchAudioSource -s "Soundflower (2ch)" -t input
SwitchAudioSource -s "Soundflower (2ch)" -t output
-
-echo "grant microphone permission for simulators"
-sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "insert into access values('kTCCServiceMicrophone','com.apple.CoreSimulator.SimulatorTrampoline', 0,1,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576347152)"
-sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "insert into access values('kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh', 1,1,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342)"
-sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "insert into access values('kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh', 1,1,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342)"
diff --git a/images/macos/provision/core/aws.sh b/images/macos/provision/core/aws.sh
index 9e0063be..02009449 100644
--- a/images/macos/provision/core/aws.sh
+++ b/images/macos/provision/core/aws.sh
@@ -1,7 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
echo Installing aws...
-brew install awscli
+curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
+sudo installer -pkg AWSCLIV2.pkg -target /
+rm -rf AWSCLIV2.pkg
echo Installing aws sam cli...
brew tap aws/tap
diff --git a/images/macos/provision/core/azcopy.sh b/images/macos/provision/core/azcopy.sh
index 56b848e9..5098c878 100755
--- a/images/macos/provision/core/azcopy.sh
+++ b/images/macos/provision/core/azcopy.sh
@@ -1,5 +1,4 @@
-#!/bin/bash
-set -e
+#!/bin/bash -e -o pipefail
AZCOPY_DOWNLOAD_URL="https://aka.ms/downloadazcopy-v10-mac"
diff --git a/images/macos/provision/core/build-xcode-symlinks.sh b/images/macos/provision/core/build-xcode-symlinks.sh
index 0cee8df8..60070938 100644
--- a/images/macos/provision/core/build-xcode-symlinks.sh
+++ b/images/macos/provision/core/build-xcode-symlinks.sh
@@ -1,4 +1,4 @@
-set -e
+#!/bin/bash -e -o pipefail
source ~/utils/utils.sh
diff --git a/images/macos/provision/core/chrome.sh b/images/macos/provision/core/chrome.sh
index 203faee7..4a9deba1 100644
--- a/images/macos/provision/core/chrome.sh
+++ b/images/macos/provision/core/chrome.sh
@@ -1,3 +1,5 @@
+#!/bin/bash -e -o pipefail
+
echo "Installing Chrome..."
brew cask install google-chrome
diff --git a/images/macos/provision/core/cocoapods.sh b/images/macos/provision/core/cocoapods.sh
index edf2a85f..d692bf3d 100755
--- a/images/macos/provision/core/cocoapods.sh
+++ b/images/macos/provision/core/cocoapods.sh
@@ -1,4 +1,5 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
+
echo "Installing Cocoapods..."
# Setup the Cocoapods master repo
diff --git a/images/macos/provision/core/commonutils.sh b/images/macos/provision/core/commonutils.sh
index 2f2a18ce..c7e93496 100644
--- a/images/macos/provision/core/commonutils.sh
+++ b/images/macos/provision/core/commonutils.sh
@@ -1,5 +1,4 @@
-#!/bin/sh
-set -e
+#!/bin/bash -e -o pipefail
source ~/utils/utils.sh
@@ -19,7 +18,7 @@ binst_common_utils=(
helm
aliyun-cli
bazelisk
- github/gh/gh
+ gh
p7zip
ant
yamllint
@@ -42,11 +41,16 @@ done
# brew cask install
bcask_common_utils=(
julia
- virtualbox
- vagrant
- r
)
+if is_Less_BigSur; then
+ bcask_common_utils+=(
+ virtualbox
+ vagrant
+ r
+ )
+fi
+
for package in ${bcask_common_utils[@]}; do
echo "Install $package"
brew cask install $package
diff --git a/images/macos/provision/core/dotnet.sh b/images/macos/provision/core/dotnet.sh
index 78056488..36df3be9 100755
--- a/images/macos/provision/core/dotnet.sh
+++ b/images/macos/provision/core/dotnet.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
###########################################################################
# The main idea of this script is to automate dotnet installs
@@ -23,7 +23,7 @@ echo "Parsing dotnet SDK (except rc and preview versions) from .json..."
if is_BigSur; then
DOTNET_CHANNELS=(
'https://raw.githubusercontent.com/dotnet/core/master/release-notes/2.1/releases.json'
- 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.1/releases.json'
+ 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.1/releases.json'
)
elif is_Less_Catalina; then
DOTNET_CHANNELS=(
@@ -33,7 +33,7 @@ else
DOTNET_CHANNELS=(
'https://raw.githubusercontent.com/dotnet/core/master/release-notes/2.1/releases.json'
'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.0/releases.json'
- 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.1/releases.json'
+ 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.1/releases.json'
)
fi
diff --git a/images/macos/provision/core/edge.sh b/images/macos/provision/core/edge.sh
index 81219f68..da1673e0 100644
--- a/images/macos/provision/core/edge.sh
+++ b/images/macos/provision/core/edge.sh
@@ -1,7 +1,13 @@
+#!/bin/bash -e -o pipefail
+
source ~/utils/utils.sh
echo "Installing Microsoft Edge..."
+# Workaround to install version 85 since webdriver is broken for 86
+cd "$(brew --repo homebrew/homebrew-cask)"
+git checkout 81f9d08d2b9b7557c0178621078cf59d2c5db2bc
brew cask install microsoft-edge
+git checkout master
EDGE_INSTALLATION_PATH="/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
EDGE_VERSION=$("$EDGE_INSTALLATION_PATH" --version | cut -d' ' -f 3)
@@ -39,7 +45,7 @@ AUTOUPDATE_START="$HOME/Library/Preferences/com.microsoft.autoupdate2.plist"
while [ ! -f "$AUTOUPDATE_START" ]
do
echo "Wait for MS update automatic installation"
- sleep 30
+ sleep 30
done
echo "kill autoupdate process"
diff --git a/images/macos/provision/core/firefox.sh b/images/macos/provision/core/firefox.sh
index f6a90d61..b9ee1c5e 100644
--- a/images/macos/provision/core/firefox.sh
+++ b/images/macos/provision/core/firefox.sh
@@ -1,3 +1,5 @@
+#!/bin/bash -e -o pipefail
+
echo "Installing Firefox..."
brew cask install firefox
diff --git a/images/macos/provision/core/gcc.sh b/images/macos/provision/core/gcc.sh
index febc0760..fefe20fd 100644
--- a/images/macos/provision/core/gcc.sh
+++ b/images/macos/provision/core/gcc.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
echo "Installing GCC@8 using homebrew..."
brew install gcc@8
diff --git a/images/macos/provision/core/git.sh b/images/macos/provision/core/git.sh
index 55feb92b..d59ebf91 100644
--- a/images/macos/provision/core/git.sh
+++ b/images/macos/provision/core/git.sh
@@ -1,3 +1,5 @@
+#!/bin/bash -e -o pipefail
+
echo Installing Git...
brew install git
diff --git a/images/macos/provision/core/haskell.sh b/images/macos/provision/core/haskell.sh
index 33fa38db..b7f35e4d 100644
--- a/images/macos/provision/core/haskell.sh
+++ b/images/macos/provision/core/haskell.sh
@@ -1,10 +1,13 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
export PATH="$HOME/.ghcup/bin:$PATH"
echo 'export PATH="$PATH:$HOME/.ghcup/bin"' >> "$HOME/.bashrc"
-availableVersions=$(ghcup list | grep -v "prerelease" | grep "ghc " | awk '{print $3}')
+# ghcup output looks like this "ghc 8.6.4 base-4.12.0.0 hls-powered", need to take all the first versions only(8.6.4 in that case) and avoid pre-release ones
+availableVersions=$(ghcup list -t ghc -r | grep -v "prerelease" | awk '{print $2}')
+
+# Install 3 latest major versions(For instance 8.6.5, 8.8.4, 8.10.2)
minorMajorVersions=$(echo "$availableVersions" | cut -d"." -f 1,2 | uniq | tail -n3)
for majorMinorVersion in $minorMajorVersions; do
fullVersion=$(echo "$availableVersions" | grep "$majorMinorVersion." | tail -n1)
diff --git a/images/macos/provision/core/homebrew.sh b/images/macos/provision/core/homebrew.sh
index 01b0fb0f..201fc586 100755
--- a/images/macos/provision/core/homebrew.sh
+++ b/images/macos/provision/core/homebrew.sh
@@ -1,23 +1,19 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
+
echo "Installing Homebrew..."
-
-source ~/utils/utils.sh
-
-echo Installing Homebrew...
HOMEBREW_INSTALL_URL="https://raw.githubusercontent.com/Homebrew/install/master/install.sh"
-
/bin/bash -c "$(curl -fsSL ${HOMEBREW_INSTALL_URL})"
-echo Disabling Homebrew analytics...
+echo "Disabling Homebrew analytics..."
brew analytics off
-echo Installing the last version of curl
+echo "Installing the latest curl..."
brew install curl
-echo Installing wget...
+echo "Installing wget..."
brew install wget
-echo Installing jq
+echo "Installing jq..."
brew install jq
# init brew bundle feature
diff --git a/images/macos/provision/core/miniconda.sh b/images/macos/provision/core/miniconda.sh
index b214b352..876883a6 100644
--- a/images/macos/provision/core/miniconda.sh
+++ b/images/macos/provision/core/miniconda.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
MINICONDA_INSTALLER="/tmp/miniconda.sh"
curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -o $MINICONDA_INSTALLER
diff --git a/images/macos/provision/core/mongodb.sh b/images/macos/provision/core/mongodb.sh
index 1b6a5a8d..3a4440d9 100644
--- a/images/macos/provision/core/mongodb.sh
+++ b/images/macos/provision/core/mongodb.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
# MongoDB object-value database
# installs last version of MongoDB Community Edition
diff --git a/images/macos/provision/core/node.sh b/images/macos/provision/core/node.sh
index daf5ea40..59e727ce 100644
--- a/images/macos/provision/core/node.sh
+++ b/images/macos/provision/core/node.sh
@@ -1,11 +1,8 @@
+#!/bin/bash -e -o pipefail
+
source ~/utils/utils.sh
-node_common_modules=(
- node-gyp
- mobile-center-cli
-)
-
-node_catalina_modules=(
+node_modules=(
appcenter-cli
newman
)
@@ -21,7 +18,10 @@ if is_Less_Catalina; then
echo Installing NPM 3.x.x...
npm install -g npm@3
- npm config set prefix /usr/local
+
+ # This step is required to install App Center CLI
+ echo Installing Omelette...
+ npm install -g omelette@0.4.14
echo Installing App Center CLI...
npm install -g appcenter-cli@^1.0.0
@@ -30,7 +30,7 @@ else
brew install node@12
brew link node@12 --force
- for module in ${node_catalina_modules[@]}; do
+ for module in ${node_modules[@]}; do
echo "Install $module"
npm install -g $module
done
@@ -40,8 +40,6 @@ echo Installing yarn...
curl -o- -L https://yarnpkg.com/install.sh | bash
if is_Less_BigSur; then
- for module in ${node_common_modules[@]}; do
- echo "Install $module"
- npm install -g $module
- done
+ echo "Install node-gyp"
+ npm install -g node-gyp
fi
diff --git a/images/macos/provision/core/nvm.sh b/images/macos/provision/core/nvm.sh
index 544bf2a3..c02ecf43 100755
--- a/images/macos/provision/core/nvm.sh
+++ b/images/macos/provision/core/nvm.sh
@@ -1,12 +1,12 @@
-#!/bin/sh
-
+#!/bin/bash -e -o pipefail
###########################################################################
# The script installs node version manager with node versions 6,8,10 and 12
#
###########################################################################
source ~/utils/utils.sh
-curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh | bash
+VERSION=$(curl -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
+curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION/install.sh | bash
if [ $? -eq 0 ]; then
. ~/.bashrc
@@ -23,13 +23,10 @@ if [ $? -eq 0 ]; then
nvm alias node12 lts/erbium
nvm alias node13 v13
nvm alias node14 v14
-
- if is_Catalina || is_BigSur; then
- # set system node as default
- nvm alias default system
- fi
+ # set system node as default
+ nvm alias default system
else
- echo error
+ echo error
fi
echo "Node version manager has been installed successfully"
diff --git a/images/macos/provision/core/openjdk.sh b/images/macos/provision/core/openjdk.sh
index ca2c5f01..c2b22baf 100644
--- a/images/macos/provision/core/openjdk.sh
+++ b/images/macos/provision/core/openjdk.sh
@@ -1,6 +1,4 @@
-#!/bin/sh
-
-set -e
+#!/bin/bash -e -o pipefail
source ~/utils/utils.sh
diff --git a/images/macos/provision/core/openssl.sh b/images/macos/provision/core/openssl.sh
index 0638dccf..16a317c0 100755
--- a/images/macos/provision/core/openssl.sh
+++ b/images/macos/provision/core/openssl.sh
@@ -1,21 +1,16 @@
-#!/bin/sh
-echo "Installing OpenSSL..."
-export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
+#!/bin/bash -e -o pipefail
+
+source ~/utils/utils.sh
echo Installing OpenSSL...
-/usr/local/bin/brew install openssl
-
-if is_BigSur; then
- ln -sf $(brew --prefix openssl)/bin/openssl /usr/local/bin/openssl
- exit 0
-fi
+brew install openssl
# Install OpenSSL 1.0.2t
# https://www.openssl.org/policies/releasestrat.html - Version 1.0.2 will be supported until 2019-12-31 (LTS)
# To preserve backward compatibility with ruby-toolcache
-/usr/local/bin/brew tap-new local/openssl
-FORMULA_PATH=$(/usr/local/bin/brew extract openssl local/openssl | grep "Homebrew/Library/Taps")
-/usr/local/bin/brew install $FORMULA_PATH
+brew tap-new --no-git local/openssl
+FORMULA_PATH=$(brew extract openssl local/openssl | grep "Homebrew/Library/Taps")
+brew install $FORMULA_PATH
# Set OpenSSL 1.0.2t as default
ln -sf /usr/local/Cellar/openssl@1.0.2t /usr/local/Cellar/openssl
@@ -27,4 +22,4 @@ ln -sf ../Cellar/openssl/1.0.2t /usr/local/opt/openssl
# https://github.com/microsoft/azure-pipelines-agent/blob/master/docs/start/envosx.md
mkdir -p /usr/local/lib/
ln -s /usr/local/opt/openssl@1.0.2t/lib/libcrypto.1.0.0.dylib /usr/local/lib/
-ln -s /usr/local/opt/openssl@1.0.2t/lib/libssl.1.0.0.dylib /usr/local/lib/
\ No newline at end of file
+ln -s /usr/local/opt/openssl@1.0.2t/lib/libssl.1.0.0.dylib /usr/local/lib/
diff --git a/images/macos/provision/core/php.sh b/images/macos/provision/core/php.sh
index 08c19f94..90111448 100644
--- a/images/macos/provision/core/php.sh
+++ b/images/macos/provision/core/php.sh
@@ -1,5 +1,4 @@
-#!/bin/sh
-set -e
+#!/bin/bash -e -o pipefail
echo Installing PHP
brew install php
diff --git a/images/macos/provision/core/postgresql.sh b/images/macos/provision/core/postgresql.sh
index f69e078a..b5d7ab61 100644
--- a/images/macos/provision/core/postgresql.sh
+++ b/images/macos/provision/core/postgresql.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
#Install latest version of postgresql
brew install postgres
@@ -6,13 +6,21 @@ brew install postgres
#Service postgresql should be started before use.
brew services start postgresql
-#Verify that PostgreSQL is ready for accept incoming connections.
-# exit codes:
-# ready - 0
-# reject - 1
-# connection timeout - 2
-# incorrect credentials or parameters - 3
-pg_isready
+#Verify PostgreSQL is ready for accept incoming connections
+echo "Check PostgreSQL service is running"
+i=10
+COMMAND='pg_isready'
+while [ $i -gt 0 ]; do
+ echo "Check PostgreSQL service status"
+ eval $COMMAND && break
+ ((i--))
+ if [ $i == 0 ]; then
+ echo "PostgreSQL service not ready, all attempts exhausted"
+ exit 1
+ fi
+ echo "PostgreSQL service not ready, wait 10 more sec, attempts left: $i"
+ sleep 10
+done
#Stop postgresql
brew services stop postgresql
\ No newline at end of file
diff --git a/images/macos/provision/core/powershell.sh b/images/macos/provision/core/powershell.sh
index 5717adc7..12beeca6 100644
--- a/images/macos/provision/core/powershell.sh
+++ b/images/macos/provision/core/powershell.sh
@@ -1,3 +1,5 @@
+#!/bin/bash -e -o pipefail
+
source ~/utils/utils.sh
echo Installing Azure CLI...
diff --git a/images/macos/provision/core/pypy.sh b/images/macos/provision/core/pypy.sh
index a57f0ebb..d55d785a 100644
--- a/images/macos/provision/core/pypy.sh
+++ b/images/macos/provision/core/pypy.sh
@@ -1,10 +1,9 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
################################################################################
## File: pypy.sh
## Desc: Installs PyPy
################################################################################
source ~/utils/utils.sh
-set -e
function InstallPyPy
{
@@ -66,16 +65,20 @@ function InstallPyPy
rm -f $PACKAGE_TAR_TEMP_PATH
}
-# PyPy 7.3.1 relies on system libffi.6.dylib, which is not existed in in libffi 3.3 release. As a workaround symlink can be created
-ln -s libffi.7.dylib /usr/local/opt/libffi/lib/libffi.6.dylib
-
uri="https://downloads.python.org/pypy/"
pypyVersions=$(curl -4 -s --compressed $uri | grep 'osx64' | awk -v uri="$uri" -F'>|<' '{print uri$5}')
-
toolsetVersions=$(get_toolset_value '.toolcache[] | select(.name | contains("PyPy")) | .versions[]')
+versionPattern="v[0-9]+\.[0-9]+\.[0-9]+-"
+
+# PyPy 7.3.2 for High Sierra is broken, use 7.3.1 instead https://foss.heptapod.net/pypy/pypy/-/issues/3311
+if is_HighSierra; then
+ versionPattern="v7.3.1-"
+ # PyPy 7.3.1 relies on system libffi.6.dylib, which is not existed in in libffi 3.3 release. As a workaround symlink can be created
+ ln -s libffi.7.dylib /usr/local/opt/libffi/lib/libffi.6.dylib
+fi
for toolsetVersion in $toolsetVersions; do
- latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-v[0-9]+\.[0-9]+\.[0-9]+-" | head -1)
+ latestMajorPyPyVersion=$(echo "${pypyVersions}" | grep -E "pypy${toolsetVersion}-${versionPattern}" | head -1)
if [[ -z "$latestMajorPyPyVersion" ]]; then
echo "Failed to get PyPy version '$toolsetVersion'"
exit 1
diff --git a/images/macos/provision/core/python.sh b/images/macos/provision/core/python.sh
index 41488642..b4c64147 100755
--- a/images/macos/provision/core/python.sh
+++ b/images/macos/provision/core/python.sh
@@ -1,13 +1,19 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
+
source ~/utils/utils.sh
echo "Installing Python Tooling"
echo "Brew Installing Python 3"
-/usr/local/bin/brew install python3
+# Workaround to have both 3.8 & 3.9(which required by some brew formulas) in the system, but only 3.8 is linked
+brew install python@3.8
+brew install python@3.9
+brew unlink python@3.9
+brew unlink python@3.8
+brew link python@3.8
echo "Brew Installing Python 2"
-# Create local tap with formula due to python2 formula depreciation
-/usr/local/bin/brew tap-new local/python2
-FORMULA_PATH=$(/usr/local/bin/brew extract python@2 local/python2 | grep "Homebrew/Library/Taps")
-/usr/local/bin/brew install $FORMULA_PATH
+# Create local tap with formula due to python2 formula depreciation
+brew tap-new --no-git local/python2
+FORMULA_PATH=$(brew extract python@2 local/python2 | grep "Homebrew/Library/Taps")
+brew install $FORMULA_PATH
diff --git a/images/macos/provision/core/reboot.sh b/images/macos/provision/core/reboot.sh
index a6e44435..e0a2dfb8 100644
--- a/images/macos/provision/core/reboot.sh
+++ b/images/macos/provision/core/reboot.sh
@@ -1,2 +1,3 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
+
shutdown -r now
\ No newline at end of file
diff --git a/images/macos/provision/core/ruby.sh b/images/macos/provision/core/ruby.sh
index 19877de3..61eb33c0 100755
--- a/images/macos/provision/core/ruby.sh
+++ b/images/macos/provision/core/ruby.sh
@@ -1,17 +1,6 @@
-#!/bin/sh
-
-set -e
+#!/bin/bash -e -o pipefail
source ~/utils/utils.sh
echo Installing Ruby...
-if is_Less_BigSur; then
- # We can't install latest ruby 2.7 as a default version related with bug
- # https://github.com/fastlane/fastlane/issues/15397
- /usr/local/bin/brew install ruby@2.6
- ln -sf /usr/local/opt/ruby\@2.6 /usr/local/opt/ruby
-else
- brew install ruby
-fi
-
-
+brew install ruby
diff --git a/images/macos/provision/core/rubygem.sh b/images/macos/provision/core/rubygem.sh
index 83639e47..14f4af7a 100755
--- a/images/macos/provision/core/rubygem.sh
+++ b/images/macos/provision/core/rubygem.sh
@@ -1,4 +1,5 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
+
source ~/utils/utils.sh
echo Updating RubyGems...
diff --git a/images/macos/provision/core/rust.sh b/images/macos/provision/core/rust.sh
index 5ef7675c..de82c7b4 100644
--- a/images/macos/provision/core/rust.sh
+++ b/images/macos/provision/core/rust.sh
@@ -1,6 +1,4 @@
-#!/bin/sh
-
-set -e
+#!/bin/bash -e -o pipefail
echo Installing Rustup...
brew install rustup-init
diff --git a/images/macos/provision/core/stack.sh b/images/macos/provision/core/stack.sh
index 81b41fa8..17c5ecd9 100644
--- a/images/macos/provision/core/stack.sh
+++ b/images/macos/provision/core/stack.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
echo "Get the latest Stack version..."
StackRelease=$(curl -s "https://api.github.com/repos/commercialhaskell/stack/releases/latest")
diff --git a/images/macos/provision/core/toolcache-high-sierra.sh b/images/macos/provision/core/toolcache-high-sierra.sh
index 61a3cc8c..9a67418b 100644
--- a/images/macos/provision/core/toolcache-high-sierra.sh
+++ b/images/macos/provision/core/toolcache-high-sierra.sh
@@ -1,7 +1,6 @@
-#!/bin/sh
-
+#!/bin/bash -e -o pipefail
###########################################################################
-# The script downloads macos hosted tool cache for several Python versions
+# The script downloads macos hosted tool cache for several Python versions
# and installs them onto the system
#
###########################################################################
diff --git a/images/macos/provision/core/toolcache.sh b/images/macos/provision/core/toolcache.sh
index eb6dc905..dab45deb 100755
--- a/images/macos/provision/core/toolcache.sh
+++ b/images/macos/provision/core/toolcache.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
# Download hosted tool cache with npm
NPM_FEED="npm.pkg.github.com"
diff --git a/images/macos/provision/core/toolset.ps1 b/images/macos/provision/core/toolset.ps1
index bc016c4b..9238b9ff 100644
--- a/images/macos/provision/core/toolset.ps1
+++ b/images/macos/provision/core/toolset.ps1
@@ -4,6 +4,8 @@
## Desc: Install toolset
################################################################################
+Import-Module "~/image-generation/helpers/Common.Helpers.psm1"
+
Function Get-ToolcacheFromToolset {
$toolsetPath = Join-Path $env:HOME "image-generation" "toolset.json"
$toolsetJson = Get-Content -Raw $toolsetPath | ConvertFrom-Json
@@ -38,7 +40,7 @@ $tools = Get-ToolcacheFromToolset | Where-Object {$ToolsToInstall -contains $_.
foreach ($tool in $tools) {
# Get versions manifest for current tool
- $assets = Invoke-RestMethod $tool.url
+ $assets = Invoke-RestMethodWithRetry -Url $tool.url
# Get github release asset for each version
foreach ($version in $tool.versions) {
diff --git a/images/macos/provision/core/vcpkg.sh b/images/macos/provision/core/vcpkg.sh
index 289d7ba4..260f2c2a 100644
--- a/images/macos/provision/core/vcpkg.sh
+++ b/images/macos/provision/core/vcpkg.sh
@@ -1,6 +1,5 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
-set -e
source ~/utils/utils.sh
# Set env variable for vcpkg
diff --git a/images/macos/provision/core/vsmac.sh b/images/macos/provision/core/vsmac.sh
index 9774e486..f0c498fc 100644
--- a/images/macos/provision/core/vsmac.sh
+++ b/images/macos/provision/core/vsmac.sh
@@ -1,8 +1,12 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
+
source ~/utils/utils.sh
source ~/utils/xamarin-utils.sh
VSMAC_VERSION=$(get_toolset_value '.xamarin.vsmac')
+if [ $VSMAC_VERSION == "latest" ]; then
+ VSMAC_VERSION=$(curl https://formulae.brew.sh/api/cask/visual-studio.json 2>/dev/null | jq .version | tr -d \")
+fi
VSMAC_DOWNLOAD_URL=$(buildVSMacDownloadUrl $VSMAC_VERSION)
TMPMOUNT=`/usr/bin/mktemp -d /tmp/visualstudio.XXXX`
@@ -19,9 +23,6 @@ echo "Moving Visual Studio to /Applications/..."
pushd $TMPMOUNT
tar cf - "./Visual Studio.app" | tar xf - -C /Applications/
-echo "Launching vstools..."
-/Applications/Visual\ Studio.app/Contents/MacOS/vstool
-
popd
sudo hdiutil detach "$TMPMOUNT"
sudo rm -rf "$TMPMOUNT"
\ No newline at end of file
diff --git a/images/macos/provision/core/xamarin-android-ndk.sh b/images/macos/provision/core/xamarin-android-ndk.sh
index 35e4d006..d5b23ebb 100644
--- a/images/macos/provision/core/xamarin-android-ndk.sh
+++ b/images/macos/provision/core/xamarin-android-ndk.sh
@@ -1,4 +1,5 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
+
source ~/utils/utils.sh
ANDROID_HOME=$HOME/Library/Android/sdk
diff --git a/images/macos/provision/core/xamarin.sh b/images/macos/provision/core/xamarin.sh
index 0f0801d7..86dc1a0f 100755
--- a/images/macos/provision/core/xamarin.sh
+++ b/images/macos/provision/core/xamarin.sh
@@ -1,4 +1,5 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
+
source ~/utils/utils.sh
source ~/utils/xamarin-utils.sh
@@ -63,8 +64,10 @@ createBundleLink $CURRENT_SDK_SYMLINK "Current"
# Fix nuget in some mono versions because of known bugs
#
-# Fix Mono issue with default nuget: https://github.com/mono/mono/issues/17637
-installNuget "6.4.0" "5.3.1"
+if is_Less_BigSur; then
+ # Fix Mono issue with default nuget: https://github.com/mono/mono/issues/17637
+ installNuget "6.4.0" "5.3.1"
+fi
if is_Less_Catalina; then
installNuget "4.8.1" "4.3.0"
diff --git a/images/macos/provision/core/xcode-clt.sh b/images/macos/provision/core/xcode-clt.sh
new file mode 100644
index 00000000..84e4a9e5
--- /dev/null
+++ b/images/macos/provision/core/xcode-clt.sh
@@ -0,0 +1,51 @@
+#!/bin/bash -e -o pipefail
+source ~/utils/utils.sh
+
+is_clt_installed() {
+ clt_path=`xcode-select -p 2>&1`
+ [[ -d "$clt_path" ]]
+}
+
+install_clt() {
+ echo "Searching online for the Command Line Tools"
+ # This temporary file prompts the 'softwareupdate' utility to list the Command Line Tools
+ clt_placeholder="/tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress"
+ sudo touch $clt_placeholder
+ # The only working tools for Big Sur are 12.2
+ if is_Less_BigSur; then
+ cltPattern="Command Line Tools"
+ else
+ cltPattern="Command Line Tools.*Xcode-12.2"
+ fi
+
+ clt_label_command="/usr/sbin/softwareupdate -l |
+ grep -B 1 -E '${cltPattern}' |
+ awk -F'*' '/^ *\\*/ {print \$2}' |
+ sed -e 's/^ *Label: //' -e 's/^ *//' |
+ sort -V |
+ tail -n1"
+ clt_label=$(eval $clt_label_command) || true
+ if [[ -n "$clt_label" ]]; then
+ echo "Installing $clt_label"
+ sudo "/usr/sbin/softwareupdate" "-i" "$clt_label"
+ fi
+ sudo "/bin/rm" "-f" "$clt_placeholder"
+}
+
+echo "Installing Command Line Tools..."
+install_clt
+
+# Retry the installation if tools are not installed from the first attempt
+retries=30
+sleepInterval=60
+while ! is_clt_installed; do
+ if [[ $retries -eq 0 ]]; then
+ echo "Unable to find the Command Line Tools, all the attempts exhausted"
+ exit 1
+ fi
+ echo "Command Line Tools not found, trying to install them via softwareupdates, $retries attempts left"
+ install_clt
+ ((retries--))
+ echo "Wait $sleepInterval seconds before the next check for installed Command Line Tools"
+ sleep $sleepInterval
+done
\ No newline at end of file
diff --git a/images/macos/provision/core/xcode-ctl.sh b/images/macos/provision/core/xcode-ctl.sh
deleted file mode 100644
index cea7aa63..00000000
--- a/images/macos/provision/core/xcode-ctl.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-# Homebrew doesn't support installation of command line tools on MacOS 11.0
-# https://github.com/Homebrew/install/blob/master/install.sh#L191
-# Copy-paste script from brew installation process
-# https://github.com/Homebrew/install/blob/master/install.sh#L530
-# This temporary file prompts the 'softwareupdate' utility to list the Command Line Tools
-
-clt_placeholder="/tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress"
-touch $clt_placeholder
-clt_label=`/usr/sbin/softwareupdate -l |
- grep -B 1 -E 'Command Line Tools beta 5' |
- awk -F'*' '/^ *\\*/ {print \$2}' |
- sed -e 's/^ *Label: //' -e 's/^ *//' |
- sort -V |
- tail -n1`
-/usr/sbin/softwareupdate -i "$clt_label"
-rm -f $clt_placeholder
-sudo xcode-select --switch "/Library/Developer/CommandLineTools/"
\ No newline at end of file
diff --git a/images/macos/provision/core/xcode-postbuild.sh b/images/macos/provision/core/xcode-postbuild.sh
index bf7ba387..6afd42c2 100644
--- a/images/macos/provision/core/xcode-postbuild.sh
+++ b/images/macos/provision/core/xcode-postbuild.sh
@@ -1,11 +1,11 @@
-#!/bin/bash
+#!/bin/bash -e -o pipefail
source ~/utils/utils.sh
XCODE_LIST=($(get_xcode_list_from_toolset))
DEFAULT_XCODE_VERSION=$(get_default_xcode_from_toolset)
# https://github.com/microsoft/appcenter/issues/847
-# Assets.xcassets : error : CoreData: error: (6922) I/O error for database
+# Assets.xcassets : error : CoreData: error: (6922) I/O error for database
# at $HOME/Library/Developer/Xcode/UserData/IB Support/Simulator Devices/{GUID}
echo "Erase a device's contents and settings:"
for XCODE_VERSION in "${XCODE_LIST[@]}"
@@ -15,6 +15,11 @@ do
#add sleep to let CoreSimulatorService to exit
sleep 3
+ # Version 12.2_beta installed into 12.2 directory and 12.1_GM_seed in 12.1
+ pattern="[0-9]{1,2}.*_"
+ if [[ $XCODE_VERSION =~ $pattern ]] ; then
+ XCODE_VERSION=$(echo $XCODE_VERSION | cut -d"_" -f 1)
+ fi
# Select xcode version by default
sudo xcode-select -s "/Applications/Xcode_${XCODE_VERSION}.app/Contents/Developer"
diff --git a/images/macos/provision/core/xcode-sims.sh b/images/macos/provision/core/xcode-sims.sh
index fb2af5d4..8dff14a5 100755
--- a/images/macos/provision/core/xcode-sims.sh
+++ b/images/macos/provision/core/xcode-sims.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
source ~/utils/utils.sh
diff --git a/images/macos/provision/core/xcode-tools.sh b/images/macos/provision/core/xcode-tools.sh
index ef9bf648..773b07a9 100755
--- a/images/macos/provision/core/xcode-tools.sh
+++ b/images/macos/provision/core/xcode-tools.sh
@@ -1,10 +1,8 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
# The script currently requires 2 external variables to be set: XCODE_INSTALL_USER
# and XCODE_INSTALL_PASSWORD, in order to access the Apple Developer Center
-set -e
-
source ~/utils/utils.sh
source ~/utils/xcode-utils.sh
@@ -35,13 +33,7 @@ do
echo "Extracting Xcode.app ($VERSION_TO_INSTALL) to ${WORK_DIR} ..."
extractXcodeXip $WORK_DIR "$VERSION_TO_INSTALL"
- # Remove "beta" postfix from version
- if [[ $XCODE_VERSION == "12_beta" ]] && is_Catalina ; then
- # trick to install Xcode 12 GM and Xcode 12 beta 6 side by side
- XCODE_VERSION="12_beta"
- else
- XCODE_VERSION=$(echo $XCODE_VERSION | cut -d"_" -f 1)
- fi
+ XCODE_VERSION=$(echo $XCODE_VERSION | cut -d"_" -f 1)
echo "Checking if unpacked Xcode ${XCODE_VERSION} is valid"
validateXcodeIntegrity "$WORK_DIR"
@@ -55,9 +47,7 @@ do
# Creating a symlink for all Xcode 10* and Xcode 9.3, 9.4 to stay backwards compatible with consumers of the Xcode beta version
createBetaSymlink $XCODE_VERSION
- if [ ! $(echo $XCODE_VERSION | grep "beta") ]; then
- createXamarinProvisionatorSymlink "$XCODE_VERSION"
- fi
+ createXamarinProvisionatorSymlink "$XCODE_VERSION"
find $WORK_DIR -mindepth 1 -delete
done
@@ -74,12 +64,7 @@ do
continue
fi
- if [[ $XCODE_VERSION == "12_beta" ]] && is_Catalina ; then
- # trick to install Xcode 12 GM and Xcode 12 beta 6 side by side
- XCODE_VERSION="12_beta"
- else
- XCODE_VERSION=$(echo $XCODE_VERSION | cut -d"_" -f 1)
- fi
+ XCODE_VERSION=$(echo $XCODE_VERSION | cut -d"_" -f 1)
echo "Running 'runFirstLaunch' for Xcode ${XCODE_VERSION}..."
runFirstLaunch $XCODE_VERSION
diff --git a/images/macos/provision/utils/utils.sh b/images/macos/provision/utils/utils.sh
index 6a924e03..d2c39317 100755
--- a/images/macos/provision/utils/utils.sh
+++ b/images/macos/provision/utils/utils.sh
@@ -1,3 +1,5 @@
+#!/bin/bash -e -o pipefail
+
download_with_retries() {
# Due to restrictions of bash functions, positional arguments are used here.
# In case if you using latest argument NAME, you should also set value to all previous parameters.
@@ -5,22 +7,31 @@ download_with_retries() {
local URL="$1"
local DEST="${2:-.}"
local NAME="${3:-${URL##*/}}"
+ local COMPRESSED="$4"
- echo "Downloading $URL..."
- wget $URL --output-document="$DEST/$NAME" \
- --tries=30 \
- --wait 30 \
- --retry-connrefused \
- --retry-on-host-error \
- --retry-on-http-error=429,500,502,503 \
- --no-verbose
-
- if [ $? != 0 ]; then
- echo "Could not download $URL; Exiting build!"
- exit 1
+ if [[ $COMPRESSED == "compressed" ]]; then
+ COMMAND="curl $URL -4 -sL --compressed -o '$DEST/$NAME'"
+ else
+ COMMAND="curl $URL -4 -sL -o '$DEST/$NAME'"
fi
- return 0
+ echo "Downloading $URL..."
+ retries=20
+ interval=30
+ while [ $retries -gt 0 ]; do
+ ((retries--))
+ eval $COMMAND
+ if [ $? != 0 ]; then
+ echo "Unable to download $URL, next attempt in $interval sec, $retries attempts left"
+ sleep $interval
+ else
+ echo "$URL was downloaded successfully to $DEST/$NAME"
+ return 0
+ fi
+ done
+
+ echo "Could not download $URL"
+ return 1
}
is_BigSur() {
@@ -91,4 +102,9 @@ get_latest_xcode_from_toolset() {
get_default_xcode_from_toolset() {
echo $(get_toolset_value '.xcode.default')
+}
+
+verlte() {
+ sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1)
+ [ "$1" = "$sortedVersion" ]
}
\ No newline at end of file
diff --git a/images/macos/provision/utils/xamarin-utils.sh b/images/macos/provision/utils/xamarin-utils.sh
index dd6d7ae9..1017cec2 100644
--- a/images/macos/provision/utils/xamarin-utils.sh
+++ b/images/macos/provision/utils/xamarin-utils.sh
@@ -1,11 +1,11 @@
-#!/bin/sh
+#!/bin/bash -e -o pipefail
# Xamarin can clean their SDKs while updating to newer versions,
# so we should be able to detect it during image generation
downloadAndInstallPKG() {
local PKG_URL=$1
local PKG_NAME=${PKG_URL##*/}
-
+
download_with_retries $PKG_URL
echo "Installing $PKG_NAME..."
@@ -159,7 +159,7 @@ installNunitConsole() {
local MONO_VERSION=$1
cat < ${TMPMOUNT}/${NUNIT3_CONSOLE_BIN}
-#!/bin/sh
+#!/bin/bash -e -o pipefail
exec /Library/Frameworks/Mono.framework/Versions/${MONO_VERSION}/bin/mono --debug \$MONO_OPTIONS $NUNIT3_PATH/nunit3-console.exe "\$@"
EOF
sudo chmod +x ${TMPMOUNT}/${NUNIT3_CONSOLE_BIN}
@@ -180,7 +180,7 @@ downloadNUnitConsole() {
echo "Installing NUnit 3..."
sudo unzip nunit3.zip -d $NUNIT3_PATH
NUNIT3_CONSOLE_BIN=nunit3-console
-
+
popd
}
diff --git a/images/macos/provision/utils/xcode-utils.sh b/images/macos/provision/utils/xcode-utils.sh
index 0f7855ec..cfe93439 100644
--- a/images/macos/provision/utils/xcode-utils.sh
+++ b/images/macos/provision/utils/xcode-utils.sh
@@ -1,7 +1,14 @@
+#!/bin/bash -e -o pipefail
+
createXamarinProvisionatorSymlink() {
local XCODE_VERSION="$1"
local FULL_VERSION=$(echo "${XCODE_VERSION}.0.0" | cut -d'.' -f 1,2,3)
+ # temporary trick for 12.0.1
+ if [[ $XCODE_VERSION == "12" ]]; then
+ FULL_VERSION="12.0.1"
+ fi
+
if [ $FULL_VERSION != $XCODE_VERSION ]; then
ln -sf "/Applications/Xcode_${XCODE_VERSION}.app" "/Applications/Xcode_${FULL_VERSION}.app"
fi
@@ -10,7 +17,9 @@ createXamarinProvisionatorSymlink() {
getXcodeVersionToInstall() {
local XCODE_VERSION="$1"
- if [[ ! $XCODE_VERSION =~ "_beta" ]]; then
+ if [[ $XCODE_VERSION == "12" ]]; then
+ echo "12.0.1"
+ elif [[ ! $XCODE_VERSION =~ "_beta" ]]; then
echo "${XCODE_VERSION//_/ }"
else
local XCODE_BETA="${XCODE_VERSION/_/ }"
@@ -51,6 +60,7 @@ setXcodeDeveloperDirVariables() {
for MAJOR_VERSION in "${major_versions[@]}"
do
LATEST_STABLE_VERSION=$(echo "${stable_xcode_versions[*]}" | grep "${MAJOR_VERSION}" | tail -n 1)
+ LATEST_STABLE_VERSION=$(echo $LATEST_STABLE_VERSION | cut -d"_" -f 1)
echo "export XCODE_${MAJOR_VERSION}_DEVELOPER_DIR=/Applications/Xcode_${LATEST_STABLE_VERSION}.app/Contents/Developer" >> "$HOME/.bashrc"
done
}
@@ -60,7 +70,9 @@ extractXcodeXip() {
local XCODE_VERSION="$2"
XCODE_XIP="${WORKING_DIR}/Xcode_${XCODE_VERSION// /_}.xip"
- open -W $XCODE_XIP
+ pushd $WORKING_DIR
+ xip -x "${XCODE_XIP}"
+ popd
if [[ -d "${WORKING_DIR}/Xcode-beta.app" ]]; then
mv -f "${WORKING_DIR}/Xcode-beta.app" "${WORKING_DIR}/Xcode.app"
diff --git a/images/macos/software-report/SoftwareReport.Android.psm1 b/images/macos/software-report/SoftwareReport.Android.psm1
index 8145b248..ca4fcc20 100644
--- a/images/macos/software-report/SoftwareReport.Android.psm1
+++ b/images/macos/software-report/SoftwareReport.Android.psm1
@@ -1,7 +1,3 @@
-Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
-
-$os = Get-OSVersion
-
function Split-TableRowByColumns {
param(
[string] $Row
@@ -9,17 +5,6 @@ function Split-TableRowByColumns {
return $Row.Split("|") | ForEach-Object { $_.trim() }
}
-function Build-AndroidTableObject {
- param(
- [string] $PackageName,
- [string] $Description
- )
- return [PSCustomObject] @{
- "Package Name" = $PackageName
- "Description" = $Description
- }
-}
-
function Get-AndroidSDKRoot {
return Join-Path $env:HOME "Library" "Android" "sdk"
}
@@ -43,124 +28,153 @@ function Get-AndroidInstalledPackages {
return $androidInstalledPackages
}
-function Build-AndroidSDKToolsTable {
- param (
- [Parameter(Mandatory)]
- [object] $packageInfo
- )
-
- return $packageInfo | ForEach-Object {
- $packageInfoParts = Split-TableRowByColumns $_
- $packageName = $packageInfoParts[0]
- $packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1]
- return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription
+function Get-AndroidPackages {
+ $androidSDKManagerPath = Get-AndroidSDKManagerPath
+ $androidPackages = & $androidSDKManagerPath --list --verbose
+ return $androidPackages
+}
+
+function Build-AndroidTable {
+ Write-Host "Build-AndroidTable"
+ $packageInfo = Get-AndroidInstalledPackages
+ return @(
+ @{
+ "Package" = "Android SDK Tools"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Tools"
+ },
+ @{
+ "Package" = "Android SDK Platforms"
+ "Version" = Get-AndroidPlatformVersions -PackageInfo $packageInfo
+ },
+ @{
+ "Package" = "Android SDK Build-tools"
+ "Version" = Get-AndroidBuildToolVersions -PackageInfo $packageInfo
+ },
+ @{
+ "Package" = "Android SDK Platform-Tools"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Platform-Tools"
+ },
+ @{
+ "Package" = "Google APIs"
+ "Version" = Get-AndroidGoogleAPIsVersions -PackageInfo $packageInfo
+ },
+ @{
+ "Package" = "Android Support Repository"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android Support Repository"
+ },
+ @{
+ "Package" = "Google Play services"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Play services"
+ },
+ @{
+ "Package" = "Google Repository"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Repository"
+ },
+ @{
+ "Package" = "SDK Patch Applier v4"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "SDK Patch Applier v4"
+ },
+ @{
+ "Package" = "CMake"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "cmake"
+ },
+ @{
+ "Package" = "NDK"
+ "Version" = Get-AndroidNDKVersions -PackageInfo $packageInfo
+ }
+ ) | Where-Object { $_.Version } | ForEach-Object {
+ [PSCustomObject] @{
+ "Package Name" = $_.Package
+ "Version" = $_.Version
+ }
}
}
-function Build-AndroidSDKPlatformTable {
+function Get-AndroidPackageVersions {
param (
[Parameter(Mandatory)]
- [object] $packageInfo
+ [object] $PackageInfo,
+ [Parameter(Mandatory)]
+ [object] $MatchedString
)
- return $packageInfo | ForEach-Object {
+ $versions = $packageInfo | Where-Object { $_ -Match $MatchedString } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
- $packageName = $packageInfoParts[0].split(";")[1]
- $packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1]
- return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription
+ return $packageInfoParts[1]
}
+ return ($versions -Join "
")
}
-function Build-AndroidSDKBuildToolsTable {
+function Get-AndroidPlatformVersions {
param (
[Parameter(Mandatory)]
- [object] $packageInfo
+ [object] $PackageInfo
)
- return $packageInfo | ForEach-Object {
+ $versions = $packageInfo | Where-Object { $_ -Match "Android SDK Platform " } | ForEach-Object {
$packageInfoParts = Split-TableRowByColumns $_
- $packageName = $packageInfoParts[0].replace(";", "-")
- $packageDescription = "Android SDK Build-Tools, Revision " + $packageInfoParts[1]
- return Build-AndroidTableObject -PackageName $packageName -Description $packageDescription
+ $revision = $packageInfoParts[1]
+ $version = $packageInfoParts[0].split(";")[1]
+ return "$version (rev $revision)"
}
+ [array]::Reverse($versions)
+ return ($versions -Join "
")
}
-function Build-AndroidNDKTable {
+function Get-AndroidBuildToolVersions {
+ param (
+ [Parameter(Mandatory)]
+ [object] $PackageInfo
+ )
+
+ $versions = $packageInfo | Where-Object { $_ -Match "Android SDK Build-Tools" } | ForEach-Object {
+ $packageInfoParts = Split-TableRowByColumns $_
+ return $packageInfoParts[1]
+ }
+ $groupVersions = @()
+ $versions | ForEach-Object {
+ $majorVersion = $_.Split(".")[0]
+ $groupVersions += $versions | Where-Object { $_.StartsWith($majorVersion) } | Join-String -Separator " "
+ }
+ return ($groupVersions | Sort-Object -Descending -Unique | Join-String -Separator "
")
+}
+
+function Get-AndroidGoogleAPIsVersions {
+ param (
+ [Parameter(Mandatory)]
+ [object] $PackageInfo
+ )
+
+ $versions = $packageInfo | Where-Object { $_ -Match "Google APIs" } | ForEach-Object {
+ $packageInfoParts = Split-TableRowByColumns $_
+ return $packageInfoParts[0].split(";")[1]
+ }
+ return ($versions -Join "
")
+}
+
+function Get-AndroidNDKVersions {
param (
[Parameter(Mandatory)][AllowEmptyString()]
- [string[]] $installedPackages
+ [string[]] $packageInfo
)
- $ndkInfo = @()
+ $os = Get-OSVersion
+ $versions = @()
if ($os.IsLessThanBigSur) {
- $ndkInfo += [PSCustomObject] @{
- # Hardcode NDK 15 as a separate case since it is installed manually without sdk-manager (to none default location)
- "Version" = "15.2.4203891"
- "Path" = Join-Path (Get-AndroidSDKRoot) "android-ndk-r15c"
- }
-
+ # Hardcode NDK 15 as a separate case since it is installed manually without sdk-manager (to none default location)
+ $versions += "15.2.4203891"
+
$ndkFolderPath = Join-Path (Get-AndroidSDKRoot) "ndk"
- $ndkInfo += Get-ChildItem -Path $ndkFolderPath | ForEach-Object {
- return [PSCustomObject] @{
- "Version" = $_.Name
- "Path" = $_.FullName
- }
+ Get-ChildItem -Path $ndkFolderPath | ForEach-Object {
+ $versions += $_.Name
}
}
-
- $ndkBundleInfo = $installedPackages | Where-Object { $_ -Match "ndk-bundle" } | Select-Object -First 1
- $ndkBundleVersion = (Split-TableRowByColumns $ndkBundleInfo)[1]
- $ndkInfo += [PSCustomObject] @{
- "Version" = $ndkBundleVersion
- "Path" = Join-Path (Get-AndroidSDKRoot) "ndk-bundle"
+
+ $versions += $packageInfo | Where-Object { $_ -Match "ndk-bundle" } | ForEach-Object {
+ $packageInfoParts = Split-TableRowByColumns $_
+ return $packageInfoParts[1]
}
- $ndkInfo | ForEach-Object {
- $_.Path = $_.Path.Replace($env:HOME, '$HOME')
- }
-
- return $ndkInfo
-}
-
-function Build-AndroidUtilsTable {
- param (
- [Parameter(Mandatory)][AllowEmptyString()]
- [string[]] $installedPackages
- )
-
- $utilsList = @("cmake", "Android Emulator")
- return $utilsList | ForEach-Object {
- $packageName = $_
- $packageInfo = $installedPackages | Where-Object { $_ -Match $packageName } | Select-Object -First 1
- $packageInfoParts = Split-TableRowByColumns $packageInfo
- return [PSCustomObject] @{
- "Package Name" = $packageName
- "Version" = $packageInfoParts[1]
- }
- }
-}
-
-function Build-AndroidExtraPackagesTable {
- param (
- [Parameter(Mandatory)][AllowEmptyString()]
- [string[]] $installedPackages
- )
-
- $extraPackages = @(
- "Android Support Repository",
- "Google Play services",
- "Google Repository",
- "Hardware_Accelerated_Execution_Manager"
- )
-
- return $extraPackages | ForEach-Object {
- $packageId = $_
- $packageInfo = $installedPackages | Where-Object { $_ -Like "*${packageId}*" } | Select-Object -First 1
- $packageInfoParts = Split-TableRowByColumns $packageInfo
- return [PSCustomObject] @{
- "Package Name" = $packageInfoParts[2]
- "Version" = $packageInfoParts[1]
- }
- }
+ return ($versions -Join "
")
}
\ No newline at end of file
diff --git a/images/macos/software-report/SoftwareReport.Generator.ps1 b/images/macos/software-report/SoftwareReport.Generator.ps1
index b8a5283c..9bcef14c 100644
--- a/images/macos/software-report/SoftwareReport.Generator.ps1
+++ b/images/macos/software-report/SoftwareReport.Generator.ps1
@@ -4,6 +4,8 @@ param (
$ImageName
)
+$ErrorActionPreference = "Stop"
+
Import-Module MarkdownPS
Import-Module "$PSScriptRoot/SoftwareReport.Common.psm1" -DisableNameChecking
Import-Module "$PSScriptRoot/SoftwareReport.Xcode.psm1" -DisableNameChecking
@@ -55,6 +57,10 @@ if ( -not $os.IsHighSierra) {
$markdown += New-MDList -Style Unordered -NoNewLine -Lines $lines
}
+if ($os.IsLessThanBigSur) {
+ $markdown += New-MDList -Style Unordered -Lines @(Get-RVersion) -NoNewLine
+}
+
$markdown += New-MDList -Style Unordered -Lines @(
"Node.js ${nodejsVersion}"
"NVM ${nvmVersion}"
@@ -63,7 +69,6 @@ $markdown += New-MDList -Style Unordered -Lines @(
$python3Version,
"Ruby ${rubyVersion}",
(Get-DotnetVersionList),
- (Get-RVersion),
"Go ${goVersion}",
"$phpVersion",
"$juliaVersion"
@@ -136,11 +141,9 @@ $aria2Version = Run-Command "aria2c --version" | Select-Object -First 1 | Take-P
$azcopyVersion = Run-Command "azcopy --version" | Take-Part -Part 2
$zstdVersion = Run-Command "zstd --version" | Take-Part -Part 1 -Delimiter "v" | Take-Part -Part 0 -Delimiter ","
$bazelVersion = Run-Command "bazel --version" | Take-Part -Part 0 -Delimiter "-"
-$bazeliskVersion = Run-Command "bazelisk version" | Select-String "Bazelisk version:" | Take-Part -Part 1 -Delimiter ":"
+$bazeliskVersion = Run-Command "brew list bazelisk --versions"
$packerVersion = Run-Command "packer --version"
$helmVersion = Run-Command "helm version --short"
-$vbox = Run-Command "vboxmanage -v"
-$vagrant = Run-Command "vagrant -v"
$mongo = Run-Command "mongo --version" | Select-String "MongoDB shell version" | Take-Part -Part 3
$mongod = Run-Command "mongod --version" | Select-String "db version " | Take-Part -Part 2
$p7zip = Run-Command "7z i" | Select-String "7-Zip" | Take-Part -Part 0,2
@@ -164,12 +167,10 @@ $markdown += New-MDList -Style Unordered -NoNewLine -Lines @(
"azcopy $azcopyVersion",
"zstd $zstdVersion",
$bazelVersion,
- "bazelisk $($bazeliskVersion.Trim())",
+ $bazeliskVersion,
"helm $helmVersion",
- "virtualbox $vbox",
"mongo $mongo",
"mongod $mongod",
- "$vagrant",
$p7zip
)
if ($os.IsHigherThanMojave) {
@@ -177,8 +178,14 @@ if ($os.IsHigherThanMojave) {
$markdown += New-MDList -Lines "Newman $newmanVersion" -Style Unordered -NoNewLine
}
if ($os.IsLessThanBigSur) {
+ $vagrant = Run-Command "vagrant -v"
+ $vbox = Run-Command "vboxmanage -v"
$parallelVersion = Run-Command "parallel --version" | Select-String "GNU parallel" | Select-Object -First 1
- $markdown += New-MDList -Lines $parallelVersion -Style Unordered
+ $markdown += New-MDList -Style Unordered -Lines @(
+ "virtualbox $vbox",
+ $vagrant,
+ $parallelVersion
+ )
}
$markdown += New-MDNewLine
@@ -190,9 +197,9 @@ $azureCLIVersion = Run-Command "az -v" | Select-String "^azure-cli" | Take-Part
$awsVersion = Run-Command "aws --version" | Take-Part -Part 0 | Take-Part -Delimiter "/" -Part 1
$aliyunVersion = Run-Command "aliyun --version" | Select-String "Alibaba Cloud Command Line Interface Version " | Take-Part -Part 6
$awsSamVersion = Run-Command "sam --version" | Take-Part -Part 3
-$awsSessionManagerVersion = Run-Command "session-manager-plugin --version"
+$awsSessionManagerVersion = Run-Command "session-manager-plugin --version"
$ghcUpVersion = Run-Command "ghcup --version" | Take-Part -Part 5
-$ghcVersion = Run-Command "ghc --version" | Take-Part -Part 7
+$ghcVersion = Run-Command "ghc --version" | Take-Part -Part 7
$cabalVersion = Run-Command "cabal --version" | Take-Part -Part 3
$stackVersion = Run-Command "stack --version" | Take-Part -Part 1 | ForEach-Object {$_.replace(",","")}
@@ -284,6 +291,8 @@ $markdown += New-MDList -Lines (Build-XamarinAndroidList) -Style Unordered
$markdown += New-MDHeader "Unit Test Framework" -Level 4
$markdown += New-MDList -Lines @(Get-NUnitVersion) -Style Unordered
+# First run doesn't provide full data about devices and runtimes
+Get-XcodeInfoList | Out-Null
# Xcode section
$xcodeInfo = Get-XcodeInfoList
$markdown += New-MDHeader "Xcode" -Level 3
@@ -296,54 +305,13 @@ $markdown += New-MDHeader "Installed SDKs" -Level 4
$markdown += Build-XcodeSDKTable $xcodeInfo | New-MDTable
$markdown += New-MDNewLine
-# Disable simulators table on 11.0 beta for now since "simctl" tool doesn't work properly
-if (-not $os.IsBigSur) {
- $markdown += New-MDHeader "Installed Simulators" -Level 4
- $markdown += Build-XcodeSimulatorsTable $xcodeInfo | New-MDTable
- $markdown += New-MDNewLine
-}
+$markdown += New-MDHeader "Installed Simulators" -Level 4
+$markdown += Build-XcodeSimulatorsTable $xcodeInfo | New-MDTable
+$markdown += New-MDNewLine
# Android section
$markdown += New-MDHeader "Android" -Level 3
-$androidInstalledPackages = Get-AndroidInstalledPackages
-
-$markdown += New-MDHeader "Android SDK Tools" -Level 4
-$androidSDKTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Tools" }
-$markdown += Build-AndroidSDKToolsTable $androidSDKTools | New-MDTable
-$markdown += New-MDNewLine
-
-$markdown += New-MDHeader "Android SDK Platform-Tools" -Level 4
-$androidSDKPlatformTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Platform-Tools" }
-$markdown += Build-AndroidSDKToolsTable $androidSDKPlatformTools | New-MDTable
-$markdown += New-MDNewLine
-
-$markdown += New-MDHeader "Android SDK Platforms" -Level 4
-$androidSDKPlatforms = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Platform " }
-$markdown += Build-AndroidSDKPlatformTable $androidSDKPlatforms | New-MDTable
-$markdown += New-MDNewLine
-
-$markdown += New-MDHeader "Android SDK Build-Tools" -Level 4
-$androidSDKBuildTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Build-Tools" }
-$markdown += Build-AndroidSDKBuildtoolsTable $androidSDKBuildTools | New-MDTable
-$markdown += New-MDNewLine
-
-$markdown += New-MDHeader "Android NDKs" -Level 4
-$markdown += Build-AndroidNDKTable $androidInstalledPackages | New-MDTable
-$markdown += New-MDNewLine
-
-$markdown += New-MDHeader "Android Utils" -Level 4
-$markdown += Build-AndroidUtilsTable $androidInstalledPackages | New-MDTable
-$markdown += New-MDNewLine
-
-$androidGoogleAPIsTable = $androidInstalledPackages | Where-Object { $_ -Match "Google APIs" }
-if ($androidGoogleAPIsTable.Count -gt 0) {
- $markdown += New-MDHeader "Android Google APIs" -Level 4
- $markdown += Build-AndroidSDKPlatformTable $androidGoogleAPIsTable | New-MDTable
- $markdown += New-MDNewLine
-}
-
-$markdown += New-MDHeader "Extra Packages" -Level 4
-$markdown += Build-AndroidExtraPackagesTable $androidInstalledPackages | New-MDTable
+$markdown += Build-AndroidTable | New-MDTable
$markdown += New-MDNewLine
#
diff --git a/images/macos/software-report/SoftwareReport.Xcode.psm1 b/images/macos/software-report/SoftwareReport.Xcode.psm1
index 59754d58..3d4cfa52 100644
--- a/images/macos/software-report/SoftwareReport.Xcode.psm1
+++ b/images/macos/software-report/SoftwareReport.Xcode.psm1
@@ -46,7 +46,8 @@ function Get-XcodeInfoList {
$versionInfo = Get-XcodeVersionInfo
$versionInfo.Path = $xcodeRootPath
$versionInfo.IsDefault = ($xcodeRootPath -eq $defaultXcodeRootPath)
-
+ $versionInfo.IsStable = Test-XcodeStableRelease -XcodeRootPath $xcodeRootPath
+
$xcodeInfo.Add($xcodeRootPath, [PSCustomObject] @{
VersionInfo = $versionInfo
SDKInfo = Get-XcodeSDKList
@@ -91,6 +92,7 @@ function Build-XcodeTable {
$xcodeList = $xcodeInfo.Values | ForEach-Object { $_.VersionInfo } | Sort-Object $sortRules
return $xcodeList | ForEach-Object {
$defaultPostfix = If ($_.IsDefault) { " (default)" } else { "" }
+ $betaPostfix = If ($_.IsStable) { "" } else { " (beta)" }
return [PSCustomObject] @{
"Version" = $_.Version.ToString() + $betaPostfix + $defaultPostfix
"Build" = $_.Build
diff --git a/images/macos/templates/macOS-10.13.json b/images/macos/templates/macOS-10.13.json
index d1737ac5..48293057 100644
--- a/images/macos/templates/macOS-10.13.json
+++ b/images/macos/templates/macOS-10.13.json
@@ -133,6 +133,7 @@
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
+ "./provision/core/xcode-clt.sh",
"./provision/core/homebrew.sh",
"./provision/core/dotnet.sh",
"./provision/core/python.sh",
diff --git a/images/macos/templates/macOS-10.14.json b/images/macos/templates/macOS-10.14.json
index ba6a0add..c5d36d22 100644
--- a/images/macos/templates/macOS-10.14.json
+++ b/images/macos/templates/macOS-10.14.json
@@ -133,6 +133,7 @@
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
+ "./provision/core/xcode-clt.sh",
"./provision/core/homebrew.sh",
"./provision/core/dotnet.sh",
"./provision/core/python.sh",
diff --git a/images/macos/templates/macOS-10.15.json b/images/macos/templates/macOS-10.15.json
index 468f02e9..3367eba7 100644
--- a/images/macos/templates/macOS-10.15.json
+++ b/images/macos/templates/macOS-10.15.json
@@ -134,6 +134,7 @@
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
+ "./provision/core/xcode-clt.sh",
"./provision/core/homebrew.sh",
"./provision/core/dotnet.sh",
"./provision/core/python.sh",
diff --git a/images/macos/templates/macOS-11.0.json b/images/macos/templates/macOS-11.0.json
index f270fc43..b38b6417 100644
--- a/images/macos/templates/macOS-11.0.json
+++ b/images/macos/templates/macOS-11.0.json
@@ -134,7 +134,7 @@
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
- "./provision/core/xcode-ctl.sh",
+ "./provision/core/xcode-clt.sh",
"./provision/core/homebrew.sh",
"./provision/core/dotnet.sh",
"./provision/core/python.sh",
diff --git a/images/macos/tests/Android.Tests.ps1 b/images/macos/tests/Android.Tests.ps1
index a7420b23..c14a02c5 100644
--- a/images/macos/tests/Android.Tests.ps1
+++ b/images/macos/tests/Android.Tests.ps1
@@ -1,10 +1,22 @@
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
Import-Module "$PSScriptRoot/../helpers/Tests.Helpers.psm1"
+Import-Module "$PSScriptRoot/../software-report/SoftwareReport.Android.psm1"
$os = Get-OSVersion
Describe "Android" {
$androidNdkToolchains = @("mips64el-linux-android-4.9", "mipsel-linux-android-4.9")
+ $androidSdkManagerPackages = Get-AndroidPackages
+ [int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
+ [version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
+
+ $platforms = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("platforms;") }) -replace 'platforms;', '' |
+ Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique |
+ ForEach-Object { "platforms/${_}" })
+
+ $buildTools = (($androidSdkManagerPackages | Where-Object { "$_".StartsWith("build-tools;") }) -replace 'build-tools;', '' |
+ Where-Object { [version]$_ -ge $buildToolsMinVersion } | Sort-Object { [version]$_ } -Unique |
+ ForEach-Object { "build-tools/${_}" })
$androidPackages = @(
"tools",
@@ -12,8 +24,8 @@ Describe "Android" {
"tools/proguard",
"ndk-bundle",
"cmake",
- (Get-ToolsetValue "android.platform-list" | ForEach-Object { "platforms/${_}" }),
- (Get-ToolsetValue "android.build-tools" | ForEach-Object { "build-tools/${_}" }),
+ $platforms,
+ $buildTools,
(Get-ToolsetValue "android.extra-list" | ForEach-Object { "extras/${_}" }),
(Get-ToolsetValue "android.addon-list" | ForEach-Object { "add-ons/${_}" })
) | ForEach-Object { $_ }
@@ -26,7 +38,7 @@ Describe "Android" {
[Parameter(Mandatory=$true)]
[string]$PackageName
)
-
+
# Convert 'm2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1' ->
# 'm2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-beta1'
$PackageName = $PackageName.Replace(";", "/")
@@ -62,14 +74,14 @@ Describe "Android" {
$rawContent = Get-Content $ndkBundlePath -Raw
$rawContent | Should -BeLikeExactly "*Revision = 21.*"
}
-
+
It "Android NDK version r18b is installed" {
$ndk18BundlePath = Join-Path $ANDROID_SDK_DIR "ndk" "18.1.5063045" "source.properties"
$rawContent = Get-Content $ndk18BundlePath -Raw
$rawContent | Should -BeLikeExactly "*Revision = 18.*"
}
}
-
+
It "HAXM is installed" {
$haxmPath = Join-Path $ANDROID_SDK_DIR "extras" "intel" "Hardware_Accelerated_Execution_Manager" "silent_install.sh"
"$haxmPath -v" | Should -ReturnZeroExitCode
diff --git a/images/macos/tests/Common.Tests.ps1 b/images/macos/tests/Common.Tests.ps1
index 3e61a9a8..88d735bf 100644
--- a/images/macos/tests/Common.Tests.ps1
+++ b/images/macos/tests/Common.Tests.ps1
@@ -12,6 +12,14 @@ Describe "Disk free space" {
}
}
+Describe "Certificate" {
+ It "Apple Worldwide Developer Relations Certification Authority[expired: 2030-02] is installed" {
+ $sha1Hash = "06EC06599F4ED0027CC58956B4D3AC1255114F35"
+ $certs = security find-certificate -a -c Worldwide -p -Z | Out-String
+ $certs | Should -Match $sha1Hash
+ }
+}
+
Describe "Git" {
It "git is installed" {
"git --version" | Should -ReturnZeroExitCode
@@ -94,16 +102,12 @@ Describe "Common utilities" {
"aliyun --version" | Should -ReturnZeroExitCode
}
- It "Mobile Center CLI" -Skip:($os.IsBigSur) {
- "mobile-center --version" | Should -ReturnZeroExitCode
- }
-
Context "Nomad" -Skip:($os.IsBigSur) {
It "Nomad CLI" {
$result = Get-CommandResult "gem list"
$result.Output | Should -BeLike "*nomad-cli*"
}
-
+
It "Nomad CLI IPA" {
"ipa --version" | Should -ReturnZeroExitCode
}
@@ -163,7 +167,7 @@ Describe "Common utilities" {
It "PostgreSQL-Client" {
"psql --version" | Should -ReturnZeroExitCode
}
-
+
It "PostgreSQL-Server" {
"pg_config --version" | Should -ReturnZeroExitCode
}
@@ -180,11 +184,11 @@ Describe "Common utilities" {
Get-WhichTool "php" | Should -Not -BeLike "/usr/bin/php*"
"php --version" | Should -ReturnZeroExitCode
}
-
+
It "Composer" {
"composer --version" | Should -ReturnZeroExitCode
}
-
+
It "R" -Skip:($os.IsBigSur) {
"R --version" | Should -ReturnZeroExitCode
}
@@ -200,7 +204,7 @@ Describe "Common utilities" {
It "bazelisk" {
"bazelisk version" | Should -ReturnZeroExitCode
}
-
+
It "Julia" {
"julia --version" | Should -ReturnZeroExitCode
}
@@ -213,11 +217,11 @@ Describe "Common utilities" {
"helm version --short" | Should -ReturnZeroExitCode
}
- It "virtualbox" {
+ It "virtualbox" -Skip:($os.IsBigSur) {
"vboxmanage -v" | Should -ReturnZeroExitCode
}
- It "vagrant" {
+ It "vagrant" -Skip:($os.IsBigSur) {
"vagrant --version" | Should -ReturnZeroExitCode
}
@@ -254,7 +258,7 @@ Describe "Browsers" {
It "Microsoft Edge Driver" {
"msedgedriver --version" | Should -ReturnZeroExitCode
}
-
+
It "Firefox" {
$firefoxLocation = "/Applications/Firefox.app/Contents/MacOS/firefox"
$firefoxLocation | Should -Exist
@@ -306,7 +310,7 @@ Describe "Haskell" -Skip:($os.IsHighSierra) {
It "GHC" {
"ghc --version" | Should -ReturnZeroExitCode
}
-
+
It "Cabal" {
"cabal --version" | Should -ReturnZeroExitCode
}
@@ -329,7 +333,7 @@ Describe "Gcc" -Skip:($os.IsHighSierra) {
param (
[string] $GccVersion
)
-
+
"gcc-$GccVersion --version" | Should -ReturnZeroExitCode
}
}
diff --git a/images/macos/tests/Python.Tests.ps1 b/images/macos/tests/Python.Tests.ps1
index 76cd8941..62460999 100644
--- a/images/macos/tests/Python.Tests.ps1
+++ b/images/macos/tests/Python.Tests.ps1
@@ -31,4 +31,10 @@ Describe "Python" {
It "Pip 3 is available" {
"pip3 --version" | Should -ReturnZeroExitCode
}
+
+ It "Pip 3 and Python 3 came from the same brew formula" {
+ $pip3Path = Split-Path (readlink (which pip3))
+ $python3Path = Split-Path (readlink (which python3))
+ $pip3Path | Should -BeExactly $python3Path
+ }
}
\ No newline at end of file
diff --git a/images/macos/tests/Xcode.Tests.ps1 b/images/macos/tests/Xcode.Tests.ps1
index ff8d5e93..250c8d8a 100644
--- a/images/macos/tests/Xcode.Tests.ps1
+++ b/images/macos/tests/Xcode.Tests.ps1
@@ -40,7 +40,7 @@ Describe "Xcode" {
It "Xcode has correct beta symlink" -TestCases $testCases {
param ( [string] $XcodeVersion )
- $xcodesWithBetaSymlink = @("12", "12_beta", "9.3", "9.4")
+ $xcodesWithBetaSymlink = @("12", "9.3", "9.4")
$shouldBetaSymlinkExists = $XcodeVersion.StartsWith("10") -or $XcodeVersion.StartsWith("11") -or ($XcodeVersion -in $xcodesWithBetaSymlink)
$betaSymlinkPath = Get-XcodeRootPath -Version "${XcodeVersion}_beta"
@@ -56,7 +56,7 @@ Describe "Xcode" {
}
Context "XCODE_DEVELOPER_DIR" {
- $stableXcodeVersions = $XCODE_VERSIONS | Where-Object { Test-XcodeStableVersion $_ }
+ $stableXcodeVersions = $XCODE_VERSIONS | ForEach-Object { $_.Split("_")[0] } | Where-Object { Test-XcodeStableRelease -Version $_ }
$majorXcodeVersions = $stableXcodeVersions | ForEach-Object { $_.Split(".")[0] } | Select-Object -Unique
$testCases = $majorXcodeVersions | ForEach-Object {
$majorXcodeVersion = $_
@@ -76,7 +76,7 @@ Describe "Xcode" {
$variableName = "XCODE_${MajorXcodeVersion}_DEVELOPER_DIR"
$actualPath = Get-EnvironmentVariable $variableName
$expectedPath = Join-Path (Get-XcodeRootPath -Version $ExpectedVersion) "Contents/Developer"
-
+
$actualPath | Should -Exist
$actualPath | Should -Be $expectedPath
}
@@ -84,15 +84,15 @@ Describe "Xcode" {
}
Describe "Xcode simulators" {
- $XCODE_VERSIONS | Where-Object { Test-XcodeStableVersion $_ } | ForEach-Object {
+ $XCODE_VERSIONS | Where-Object { Test-XcodeStableRelease -Version $_ } | ForEach-Object {
Switch-Xcode -Version $_
-
+
Context "$_" {
It "No duplicates in devices" {
[array]$devicesList = @(Get-XcodeDevicesList | Where-Object { $_ })
Validate-ArrayWithoutDuplicates $devicesList -Because "Found duplicate device simulators"
}
-
+
It "No duplicates in pairs" {
[array]$pairsList = @(Get-XcodePairsList | Where-Object { $_ })
Validate-ArrayWithoutDuplicates $pairsList -Because "Found duplicate pairs simulators"
diff --git a/images/macos/toolsets/toolset-10.13.json b/images/macos/toolsets/toolset-10.13.json
index fdb14d08..6c12251b 100644
--- a/images/macos/toolsets/toolset-10.13.json
+++ b/images/macos/toolsets/toolset-10.13.json
@@ -170,12 +170,8 @@
]
},
"android": {
- "platform-list": [
- "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-20", "android-19", "android-18", "android-17", "android-16", "android-15"
- ],
- "build-tools": [
- "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "23.0.0", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0"
- ],
+ "platform_min_version": "15",
+ "build_tools_min_version": "17.0.0",
"extra-list": [
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
],
diff --git a/images/macos/toolsets/toolset-10.14.json b/images/macos/toolsets/toolset-10.14.json
index e868f769..2abe9803 100644
--- a/images/macos/toolsets/toolset-10.14.json
+++ b/images/macos/toolsets/toolset-10.14.json
@@ -191,12 +191,8 @@
]
},
"android": {
- "platform-list": [
- "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-20", "android-19", "android-18", "android-17", "android-16", "android-15"
- ],
- "build-tools": [
- "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "23.0.0", "22.0.1", "21.1.2", "20.0.0", "19.1.0", "17.0.0"
- ],
+ "platform_min_version": "15",
+ "build_tools_min_version": "17.0.0",
"extra-list": [
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
],
@@ -220,7 +216,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
]
},
{
diff --git a/images/macos/toolsets/toolset-10.15.json b/images/macos/toolsets/toolset-10.15.json
index e7b17989..fc0bf798 100644
--- a/images/macos/toolsets/toolset-10.15.json
+++ b/images/macos/toolsets/toolset-10.15.json
@@ -1,17 +1,17 @@
{
"xcode": {
- "default": "11.7",
+ "default": "12",
"versions": [
- "12.2_beta", "12", "12_beta", "11.7", "11.6", "11.5", "11.4.1", "11.4", "11.3.1", "11.2.1", "11.1", "11", "10.3"
+ "12.2_beta", "12.1_GM_seed", "12", "11.7", "11.6", "11.5", "11.4.1", "11.4", "11.3.1", "11.2.1", "11.1", "11", "10.3"
]
},
"xamarin": {
- "vsmac": "8.7.7.10",
+ "vsmac": "latest",
"mono-versions": [
"6.12.0.93", "6.10.0.106", "6.8.0.123", "6.6.0.166", "6.4.0.208"
],
"ios-versions": [
- "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"
+ "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"
],
"mac-versions": [
"6.20.2.2", "6.18.3.2", "6.16.0.13", "6.14.1.39", "6.10.0.21", "6.8.3.0", "6.6.0.12", "6.4.0.2", "6.2.0.47"
@@ -21,26 +21,33 @@
],
"bundle-default": "latest",
"bundles": [
+ {
+ "symlink": "6_12_1",
+ "mono":"6.12",
+ "ios": "14.0",
+ "mac": "6.20",
+ "android": "11.0"
+ },
{
"symlink": "6_12_0",
"mono":"6.12",
"ios": "13.20",
"mac": "6.20",
- "android": "11.0"
+ "android": "11.0"
},
{
"symlink": "6_10_0",
"mono":"6.10",
"ios": "13.18",
"mac": "6.18",
- "android": "10.3"
+ "android": "10.3"
},
{
"symlink": "6_8_1",
"mono":"6.8",
"ios": "13.16",
"mac": "6.16",
- "android": "10.2"
+ "android": "10.2"
},
{
"symlink": "6_8_0",
@@ -93,12 +100,8 @@
]
},
"android": {
- "platform-list": [
- "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24"
- ],
- "build-tools": [
- "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0"
- ],
+ "platform_min_version": "24",
+ "build_tools_min_version": "24.0.0",
"extra-list": [
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1", "m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4", "m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5", "m2repository;com;android;support;constraint;constraint-layout;1.0.0", "m2repository;com;android;support;constraint;constraint-layout;1.0.1", "m2repository;com;android;support;constraint;constraint-layout;1.0.2"
],
@@ -122,7 +125,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
]
},
{
diff --git a/images/macos/toolsets/toolset-11.0.json b/images/macos/toolsets/toolset-11.0.json
index fa7a65a5..5ff2280a 100644
--- a/images/macos/toolsets/toolset-11.0.json
+++ b/images/macos/toolsets/toolset-11.0.json
@@ -2,16 +2,16 @@
"xcode": {
"default": "11.7",
"versions": [
- "12.2_beta", "12_beta", "11.7"
+ "12.2_beta", "11.7"
]
},
"xamarin": {
- "vsmac": "8.7.7.10",
+ "vsmac": "latest",
"mono-versions": [
"6.12.0.93"
],
"ios-versions": [
- "13.20.2.2"
+ "14.0.0.0", "13.20.2.2"
],
"mac-versions": [
"6.20.2.2"
@@ -19,14 +19,21 @@
"android-versions": [
"11.0.2.0"
],
- "bundle-default": "latest",
+ "bundle-default": "6_12_0",
"bundles": [
+ {
+ "symlink": "6_12_1",
+ "mono":"6.12",
+ "ios": "14.0",
+ "mac": "6.20",
+ "android": "11.0"
+ },
{
"symlink": "6_12_0",
"mono":"6.12",
"ios": "13.20",
"mac": "6.20",
- "android": "11.0"
+ "android": "11.0"
}
]
},
@@ -37,12 +44,8 @@
]
},
"android": {
- "platform-list": [
- "android-30", "android-29", "android-28", "android-27"
- ],
- "build-tools": [
- "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0"
- ],
+ "platform_min_version": "27",
+ "build_tools_min_version": "27.0.0",
"extra-list": [
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager"
],
@@ -61,7 +64,8 @@
"platform" : "darwin",
"versions": [
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
]
},
{
diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md
index c7bffc4f..f184b50a 100644
--- a/images/win/Windows2016-Readme.md
+++ b/images/win/Windows2016-Readme.md
@@ -1,122 +1,120 @@
-| Announcements |
-|-|
-| [[In Discussion] Git internal tools will be removed from PATH Windows images](https://github.com/actions/virtual-environments/issues/1525) |
-***
-# Microsoft Windows Server 2016 Datacenter
-- OS Version: 10.0.14393 Build 3930
-- Image Version: 20200913.0
-
-## Installed Software
-### Language and Runtime
-- Java 1.7.0_232
-- Java 1.8.0_265 (default)
-- Java 11.0.8
-- Java 13.0.2
-- Python 3.7.9
-- Ruby 2.5.8p224
-- Go 1.14.9
-- PHP 7.4.9
-- Julia 1.5.1
-- Perl 5.32.0
-- Node 12.18.3
-
-### Package Management
-- Chocolatey 0.10.15
-- Vcpkg 2020.06.15
-- NPM 6.14.6
-- Yarn 1.22.5
-- pip 20.2.3 (python 3.7)
-- Miniconda 4.6.14
-- RubyGems 3.1.4
-- Helm 3.3.1
-- Composer 1.10.13
-- NuGet 5.7.0.6726
-
-### Project Management
-- Ant 1.10.8
-- Maven 3.6.3
-- Gradle 6.6
-- sbt 1.3.13
-
-### Tools
-- Azure CosmosDb Emulator 2.11.5.0
-- azcopy 10.6.0
-- Bazel 3.5.0
-- Bazelisk 1.6.1
-- CMake 3.18.2
-- R 4.0.2
-- Docker 19.03.11
-- Docker-compose 1.26.2
-- Git 2.28.0
-- Git LFS 2.11.0
-- Google Cloud SDK 309.0.0
-- InnoSetup 6.0.5
-- jq 1.6
-- Kubectl 1.19.1
-- Kind 0.8.1
-- Mingw-w64 8.1.0
-- MySQL 5.7.21.0
-- Mercurial 5.0
-- NSIS v3.06.1
-- Newman 5.2.0
-- OpenSSL 1.1.1
-- Packer 1.6.2
-- Pulumi v2.10.0
-- SQLPS 1.0
-- SQLServer PS 21.1.18226
-- Subversion (SVN) 1.14.0
-- ghc 8.10.2
-- Cabal 3.2.0.0
-- Stack 2.3.3
-- WinAppDriver 1.1.1809.18001
-- zstd 1.4.5
-- VSWhere 2.8.4
-- 7zip 19.00
-- yamllint 1.24.2
-
-### CLI Tools
-- Azure CLI 2.11.1
-- Azure DevOps CLI extension 0.18.0
-- AWS CLI 2.0.48
-- AWS SAM CLI 1.2.0
-- AWS Session Manager CLI 1.1.61.0
-- Alibaba Cloud CLI 3.0.56
-- Cloud Foundry CLI 6.52.0
-- Hub CLI 2.14.2
-- GitHub CLI 0.12.0
-
-### Rust Tools
-- Rust 1.46.0
-
-#### Packages
-- bindgen 0.55.1
-- cbindgen 0.14.4
-- cargo-audit 0.12.0
-- cargo-outdated v0.9.11
-
-### Browsers and webdrivers
-- Google Chrome 85.0.4183.102
-- Chrome Driver 85.0.4183.87
-- Microsoft Edge 85.0.564.51
-- Microsoft Edge Driver 85.0.564.51
-- Mozilla Firefox 80.0.1
-- Gecko Driver 0.27.0
-- IE Driver 3.150.1.0
-
-### MSYS2
-- Pacman 5.2.2
+| Announcements |
+|-|
+| [[In Discussion] Git internal tools will be removed from PATH Windows images and replaced with MSYS2 tools](https://github.com/actions/virtual-environments/issues/1525) |
+***
+# Microsoft Windows Server 2016 Datacenter
+- OS Version: 10.0.14393 Build 3930
+- Image Version: 20201012.1
+
+## Installed Software
+### Language and Runtime
+- Java 1.7.0_232
+- Java 1.8.0_265 (default)
+- Java 11.0.8
+- Java 13.0.2
+- Python 3.7.9
+- Ruby 2.5.8p224
+- Go 1.14.9
+- PHP 7.4.11
+- Julia 1.5.2
+- Perl 5.32.0
+- Node 12.19.0
+
+### Package Management
+- Chocolatey 0.10.15
+- Vcpkg 2020.06.15
+- NPM 6.14.8
+- Yarn 1.22.10
+- pip 20.2.3 (python 3.7)
+- Miniconda 4.6.14
+- RubyGems 3.1.4
+- Helm 3.3.4
+- Composer 1.10.13
+- NuGet 5.7.0.6726
+
+### Project Management
+- Ant 1.10.9
+- Maven 3.6.3
+- Gradle 6.6
+- sbt 1.4.0
+
+### Tools
+- azcopy 10.6.0
+- Bazel 3.6.0
+- Bazelisk 1.7.1
+- CMake 3.18.4
+- CodeQL Action Bundle 2.2.5
+- R 4.0.3
+- Docker 19.03.12
+- Docker-compose 1.27.2
+- Git 2.28.0
+- Git LFS 2.11.0
+- Google Cloud SDK 313.0.1
+- InnoSetup 6.0.5
+- jq 1.6
+- Kubectl 1.19.1
+- Kind 0.9.0
+- Mingw-w64 8.1.0
+- Mercurial 5.0
+- NSIS v3.06.1
+- Newman 5.2.0
+- OpenSSL 1.1.1
+- Packer 1.6.3
+- Pulumi v2.11.2
+- Subversion (SVN) 1.14.0
+- ghc 8.10.2
+- Cabal 3.2.0.0
+- Stack 2.3.3
+- WinAppDriver 1.1.1809.18001
+- zstd 1.4.5
+- VSWhere 2.8.4
+- 7zip 19.00
+- yamllint 1.25.0
+
+### CLI Tools
+- Azure CLI 2.12.1
+- Azure DevOps CLI extension 0.18.0
+- Azure Dev Spaces CLI 1.0.20200921.3
+- AWS CLI 2.0.56
+- AWS SAM CLI 1.6.2
+- AWS Session Manager CLI 1.1.61.0
+- Alibaba Cloud CLI 3.0.60
+- Cloud Foundry CLI 6.53.0
+- Hub CLI 2.14.2
+- GitHub CLI 1.1.0
+
+### Rust Tools
+- Rust 1.47.0
+
+#### Packages
+- bindgen 0.55.1
+- cbindgen 0.15.0
+- cargo-audit 0.12.1
+- cargo-outdated v0.9.11
+
+### Browsers and webdrivers
+- Google Chrome 86.0.4240.75
+- Chrome Driver 86.0.4240.22
+- Microsoft Edge 86.0.622.38
+- Microsoft Edge Driver 86.0.622.38
+- Mozilla Firefox 81.0.1
+- Gecko Driver 0.27.0
+- IE Driver 3.150.1.0
+
+### MSYS2
+- Pacman 5.2.2
```
Location: C:\msys64
Note: MSYS2 is pre-installed on image but not added to PATH.
-```
-### Cached Tools
-#### Boost
-| Version | Architecture | Environment Variable |
-| ------- | ------------ | -------------------- |
-| 1.69.0 | x64, x86 | BOOST_ROOT_1_69_0 |
-| 1.72.0 | x64, x86 | BOOST_ROOT_1_72_0 |
-##### Notes:
+```
+### Cached Tools
+#### Boost
+| Version | Architecture | Environment Variable |
+| ------- | ------------ | -------------------- |
+| 1.69.0 | x64, x86 | BOOST_ROOT_1_69_0 |
+| 1.72.0 | x64, x86 | BOOST_ROOT_1_72_0 |
+##### Notes:
```
1. Environment variable "BOOST_ROOT" is not set by default.
Please make sure you set this variable value to proper value
@@ -129,468 +127,420 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
See documentation of the Boost CMake package configuration for details on what it provides.
Set Boost_NO_BOOST_CMAKE to ON, to disable the search for boost-cmake.
Link: https://cmake.org/cmake/help/latest/module/FindBoost.html
-```
-
-#### Go
-| Version | Architecture | Environment Variable |
-| ------- | ------------ | -------------------- |
-| 1.9.7 | x64 | GOROOT_1_9_X64 |
-| 1.10.8 | x64 | GOROOT_1_10_X64 |
-| 1.11.13 | x64 | GOROOT_1_11_X64 |
-| 1.12.17 | x64 | GOROOT_1_12_X64 |
-| 1.13.15 | x64 | GOROOT_1_13_X64 |
-| 1.14.9 (Default) | x64 | GOROOT_1_14_X64 |
-| 1.15.2 | x64 | GOROOT_1_15_X64 |
-
-
-#### Node
-| Version | Architecture |
-| ------- | ------------ |
-| 8.17.0 | x64 |
-| 10.22.0 | x64 |
-| 12.18.3 | x64 |
-| 14.10.1 | x64 |
-
-
-#### Python
-| Version | Architecture |
-| ------- | ------------ |
-| 2.7.18 | x64, x86 |
-| 3.5.4 | x64, x86 |
-| 3.6.8 | x64, x86 |
-| 3.7.9 (Default) | x64, x86 |
-| 3.8.5 | x64, x86 |
-
-
-#### Ruby
-| Version | Architecture |
-| ------- | ------------ |
-| 2.4.10 | x64 |
-| 2.5.8 (Default) | x64 |
-| 2.6.6 | x64 |
-| 2.7.1 | x64 |
-
-
-#### PyPy
-| Python Version | Architecture | PyPy Version |
-| -------------- | ------------ | ------------ |
-| 2.7.13 | x86 | PyPy 7.3.2 with MSC v.1927 32 bit |
-| 3.6.9 | x86 | PyPy 7.3.2 with MSC v.1927 32 bit |
-
-
-
-### Databases
-#### PostgreSQL
-| Property | Value |
-| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
-| ServiceName | postgresql-x64-12 |
-| Version | 12.4 |
-| ServiceStatus | Stopped |
-| ServiceStartType | Disabled |
-| EnvironmentVariables | PGBIN=C:\Program Files\PostgreSQL\12\bin
PGDATA=C:\Program Files\PostgreSQL\12\data
PGROOT=C:\Program Files\PostgreSQL\12 |
-| Path | C:\Program Files\PostgreSQL\12 |
-| UserName | postgres |
-| Password | root |
-
-
-#### MongoDB
-| Version | ServiceName | ServiceStatus | ServiceStartType |
-| ------- | ----------- | ------------- | ---------------- |
-| 4.4.1.0 | MongoDB | Running | Automatic |
-
-
-
-### Visual Studio Enterprise 2017
-| Name | Version | Path |
-| ----------------------------- | --------------- | -------------------------------------------------------------- |
-| Visual Studio Enterprise 2017 | 15.9.28307.1259 | C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise |
-
-#### Workloads, components and extensions:
-
-| Package | Version |
-| ------------------------------------------------------------------------- | ---------------- |
-| Component.Anaconda3.x64 | 5.2.0 |
-| Component.Android.NDK.R12B | 12.1.10 |
-| Component.Android.NDK.R15C | 15.2.1 |
-| Component.Android.SDK19.Private | 15.9.28107.0 |
-| Component.Android.SDK21.Private | 15.9.28016.0 |
-| Component.Android.SDK22.Private | 15.9.28016.0 |
-| Component.Android.SDK23 | 15.9.28107.0 |
-| Component.Android.SDK23.Private | 15.9.28016.0 |
-| Component.Android.SDK25.Private | 15.9.28016.0 |
-| Component.Android.SDK27 | 15.9.28016.0 |
-| Component.Ant | 1.9.3.8 |
-| Component.CordovaToolset.6.3.1 | 15.7.27625.0 |
-| Component.Dotfuscator | 15.0.26208.0 |
-| Component.Google.Android.Emulator.API27 | 15.9.28307.421 |
-| Component.HAXM | 15.9.28307.421 |
-| Component.Linux.CMake | 15.9.28307.102 |
-| Component.MDD.Android | 15.0.26606.0 |
-| Component.MDD.Linux | 15.6.27406.0 |
-| Component.Microsoft.VisualStudio.RazorExtension | 15.0.26720.2 |
-| Component.Microsoft.VisualStudio.Tools.Applications | 15.0.27520.3 |
-| Component.Microsoft.VisualStudio.Web.AzureFunctions | 15.7.27617.1 |
-| Component.Microsoft.Web.LibraryManager | 15.8.27705.0 |
-| Component.Microsoft.Windows.DriverKit | 10.0.17740.0 |
-| Component.OpenJDK | 15.9.28307.443 |
-| Component.Redgate.ReadyRoll | 1.17.18155.10346 |
-| Component.Redgate.SQLPrompt.VsPackage | 9.2.0.5601 |
-| Component.Redgate.SQLSearch.VSExtension | 3.1.7.2062 |
-| Component.UnityEngine.x64 | 15.9.28307.616 |
-| Component.Unreal | 15.8.27729.1 |
-| Component.Unreal.Android | 15.9.28307.341 |
-| Component.WixToolset.VisualStudioExtension.Dev15 | 0.9.21.62588 |
-| Component.Xamarin | 15.9.28307.1177 |
-| Component.Xamarin.Profiler | 15.0.27005.2 |
-| Component.Xamarin.RemotedSimulator | 15.6.27323.2 |
-| Microsoft.Component.Azure.DataLake.Tools | 15.9.28107.0 |
-| Microsoft.Component.Blend.SDK.WPF | 15.6.27406.0 |
-| Microsoft.Component.ClickOnce | 15.8.27825.0 |
-| Microsoft.Component.CookiecutterTools | 15.0.26621.2 |
-| Microsoft.Component.MSBuild | 15.7.27520.0 |
-| Microsoft.Component.NetFX.Core.Runtime | 15.0.26208.0 |
-| Microsoft.Component.NetFX.Native | 15.0.26208.0 |
-| Microsoft.Component.PythonTools | 15.0.26823.1 |
-| Microsoft.Component.PythonTools.UWP | 15.0.26606.0 |
-| Microsoft.Component.PythonTools.Web | 15.9.28107.0 |
-| Microsoft.Component.VC.Runtime.OSSupport | 15.6.27406.0 |
-| Microsoft.Component.VC.Runtime.UCRTSDK | 15.6.27309.0 |
-| Microsoft.ComponentGroup.Blend | 15.6.27406.0 |
-| Microsoft.Net.Component.3.5.DeveloperTools | 15.6.27406.0 |
-| Microsoft.Net.Component.4.5.1.TargetingPack | 15.6.27406.0 |
-| Microsoft.Net.Component.4.5.2.TargetingPack | 15.6.27406.0 |
-| Microsoft.Net.Component.4.5.TargetingPack | 15.6.27406.0 |
-| Microsoft.Net.Component.4.6.1.SDK | 15.6.27406.0 |
-| Microsoft.Net.Component.4.6.1.TargetingPack | 15.6.27406.0 |
-| Microsoft.Net.Component.4.6.2.SDK | 15.6.27406.0 |
-| Microsoft.Net.Component.4.6.2.TargetingPack | 15.6.27406.0 |
-| Microsoft.Net.Component.4.6.TargetingPack | 15.6.27406.0 |
-| Microsoft.Net.Component.4.7.1.SDK | 15.6.27406.0 |
-| Microsoft.Net.Component.4.7.1.TargetingPack | 15.6.27406.0 |
-| Microsoft.Net.Component.4.7.2.SDK | 15.8.27825.0 |
-| Microsoft.Net.Component.4.7.2.TargetingPack | 15.8.27825.0 |
-| Microsoft.Net.Component.4.7.SDK | 15.6.27406.0 |
-| Microsoft.Net.Component.4.7.TargetingPack | 15.6.27406.0 |
-| Microsoft.Net.Component.4.TargetingPack | 15.6.27406.0 |
-| Microsoft.Net.ComponentGroup.4.6.2.DeveloperTools | 15.6.27406.0 |
-| Microsoft.Net.ComponentGroup.4.7.1.DeveloperTools | 15.6.27406.0 |
-| Microsoft.Net.ComponentGroup.4.7.2.DeveloperTools | 15.8.27825.0 |
-| Microsoft.Net.ComponentGroup.4.7.DeveloperTools | 15.6.27406.0 |
-| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 15.8.27825.0 |
-| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 15.6.27406.0 |
-| Microsoft.Net.Core.Component.SDK.1x | 15.9.28307.1259 |
-| Microsoft.Net.Core.Component.SDK.2.1 | 15.8.27924.0 |
-| Microsoft.NetCore.1x.ComponentGroup.Web | 15.9.28307.1259 |
-| Microsoft.NetCore.ComponentGroup.DevelopmentTools.2.1 | 15.8.27924.0 |
-| Microsoft.NetCore.ComponentGroup.Web.2.1 | 15.8.27924.0 |
-| Microsoft.VisualStudio.Component.AppInsights.Tools | 15.8.27825.0 |
-| Microsoft.VisualStudio.Component.AspNet45 | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.Azure.AuthoringTools | 15.9.28307.421 |
-| Microsoft.VisualStudio.Component.Azure.ClientLibs | 15.0.26208.0 |
-| Microsoft.VisualStudio.Component.Azure.Compute.Emulator | 15.9.28307.421 |
-| Microsoft.VisualStudio.Component.Azure.MobileAppsSdk | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.Azure.ResourceManager.Tools | 15.9.28107.0 |
-| Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools | 15.8.27825.0 |
-| Microsoft.VisualStudio.Component.Azure.Storage.AzCopy | 15.0.26906.1 |
-| Microsoft.VisualStudio.Component.Azure.Storage.Emulator | 15.9.28125.51 |
-| Microsoft.VisualStudio.Component.Azure.Waverton | 15.9.28107.0 |
-| Microsoft.VisualStudio.Component.Azure.Waverton.BuildTools | 15.7.27617.1 |
-| Microsoft.VisualStudio.Component.ClassDesigner | 15.0.26208.0 |
-| Microsoft.VisualStudio.Component.CloudExplorer | 15.9.28230.55 |
-| Microsoft.VisualStudio.Component.CodeClone | 15.0.26208.0 |
-| Microsoft.VisualStudio.Component.CodeMap | 15.0.26208.0 |
-| Microsoft.VisualStudio.Component.Common.Azure.Tools | 15.9.28107.0 |
-| Microsoft.VisualStudio.Component.Cordova | 15.0.26606.0 |
-| Microsoft.VisualStudio.Component.CoreEditor | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.Debugger.JustInTime | 15.0.27005.2 |
-| Microsoft.VisualStudio.Component.Debugger.Snapshot | 15.8.28010.0 |
-| Microsoft.VisualStudio.Component.DependencyValidation.Enterprise | 15.0.26208.0 |
-| Microsoft.VisualStudio.Component.DiagnosticTools | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.DockerTools | 15.8.27906.1 |
-| Microsoft.VisualStudio.Component.DockerTools.BuildTools | 15.7.27617.1 |
-| Microsoft.VisualStudio.Component.DslTools | 15.0.27005.2 |
-| Microsoft.VisualStudio.Component.EntityFramework | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.FSharp | 15.8.27825.0 |
-| Microsoft.VisualStudio.Component.FSharp.Desktop | 15.8.27825.0 |
-| Microsoft.VisualStudio.Component.FSharp.WebTemplates | 15.9.28307.421 |
-| Microsoft.VisualStudio.Component.GraphDocument | 15.0.27005.2 |
-| Microsoft.VisualStudio.Component.Graphics | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Graphics.Tools | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Graphics.Win81 | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.IISExpress | 15.0.26208.0 |
-| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.JavaScript.ProjectSystem | 15.0.26606.0 |
-| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 15.9.28125.51 |
-| Microsoft.VisualStudio.Component.LinqToSql | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.LiveUnitTesting | 15.0.26720.2 |
-| Microsoft.VisualStudio.Component.ManagedDesktop.Core | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.Merq | 15.8.27924.0 |
-| Microsoft.VisualStudio.Component.MonoDebugger | 15.0.26720.2 |
-| Microsoft.VisualStudio.Component.Node.Build | 15.8.27825.0 |
-| Microsoft.VisualStudio.Component.Node.Tools | 15.8.27825.0 |
-| Microsoft.VisualStudio.Component.NuGet | 15.9.28016.0 |
-| Microsoft.VisualStudio.Component.NuGet.BuildTools | 15.9.28016.0 |
-| Microsoft.VisualStudio.Component.PortableLibrary | 15.6.27309.0 |
-| Microsoft.VisualStudio.Component.R.Open | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.RHost | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Roslyn.Compiler | 15.6.27309.0 |
-| Microsoft.VisualStudio.Component.Roslyn.LanguageServices | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.RTools | 15.0.26919.1 |
-| Microsoft.VisualStudio.Component.Sharepoint.Tools | 15.8.27924.0 |
-| Microsoft.VisualStudio.Component.SQL.ADAL | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.SQL.CLR | 15.0.26208.0 |
-| Microsoft.VisualStudio.Component.SQL.CMDUtils | 15.0.26208.0 |
-| Microsoft.VisualStudio.Component.SQL.DataSources | 15.0.26621.2 |
-| Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime | 15.7.27617.1 |
-| Microsoft.VisualStudio.Component.SQL.NCLI | 15.0.26208.0 |
-| Microsoft.VisualStudio.Component.SQL.SSDT | 15.9.28107.0 |
-| Microsoft.VisualStudio.Component.Static.Analysis.Tools | 15.0.26208.0 |
-| Microsoft.VisualStudio.Component.TeamOffice | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.TestTools.CodedUITest | 15.0.26606.0 |
-| Microsoft.VisualStudio.Component.TestTools.Core | 15.7.27520.0 |
-| Microsoft.VisualStudio.Component.TestTools.WebLoadTest | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.TextTemplating | 15.0.26208.0 |
-| Microsoft.VisualStudio.Component.TypeScript.2.0 | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.TypeScript.2.1 | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.TypeScript.2.2 | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.TypeScript.2.3 | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.TypeScript.3.1 | 15.0.28218.60 |
-| Microsoft.VisualStudio.Component.Unity | 15.7.27617.1 |
-| Microsoft.VisualStudio.Component.UWP.Support | 15.9.28119.51 |
-| Microsoft.VisualStudio.Component.UWP.VC.ARM64 | 15.0.28125.51 |
-| Microsoft.VisualStudio.Component.VC.140 | 15.7.27617.1 |
-| Microsoft.VisualStudio.Component.VC.ATL | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.VC.ATL.ARM | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.VC.ATL.ARM64 | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.VC.ATL.Spectre | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.VC.ATLMFC | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre | 15.7.27625.0 |
-| Microsoft.VisualStudio.Component.VC.ClangC2 | 15.7.27520.0 |
-| Microsoft.VisualStudio.Component.VC.CLI.Support | 15.6.27309.0 |
-| Microsoft.VisualStudio.Component.VC.CMake.Project | 15.9.28307.102 |
-| Microsoft.VisualStudio.Component.VC.CoreIde | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.VC.DiagnosticTools | 15.0.26823.1 |
-| Microsoft.VisualStudio.Component.VC.Modules.x86.x64 | 15.6.27309.0 |
-| Microsoft.VisualStudio.Component.VC.Redist.14.Latest | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre | 15.9.28230.55 |
-| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre | 15.9.28230.55 |
-| Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre | 15.9.28230.55 |
-| Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest | 15.9.28307.616 |
-| Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest | 15.8.27906.1 |
-| Microsoft.VisualStudio.Component.VC.Tools.ARM | 15.8.27825.0 |
-| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 15.9.28230.55 |
-| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 15.9.28230.55 |
-| Microsoft.VisualStudio.Component.VisualStudioData | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.VSSDK | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.Wcf.Tooling | 15.8.27924.0 |
-| Microsoft.VisualStudio.Component.Web | 15.8.27825.0 |
-| Microsoft.VisualStudio.Component.WebDeploy | 15.8.27729.1 |
-| Microsoft.VisualStudio.Component.Windows10SDK | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Windows10SDK.10240 | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Windows10SDK.10586 | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Windows10SDK.14393 | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Windows10SDK.15063.Desktop | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Windows10SDK.15063.UWP | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Windows10SDK.15063.UWP.Native | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Windows10SDK.16299.Desktop | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Windows10SDK.16299.Desktop.arm | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Windows10SDK.16299.UWP | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Windows10SDK.16299.UWP.Native | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.Windows10SDK.17134 | 15.9.28307.102 |
-| Microsoft.VisualStudio.Component.Windows10SDK.17763 | 15.9.28307.102 |
-| Microsoft.VisualStudio.Component.Windows81SDK | 15.6.27406.0 |
-| Microsoft.VisualStudio.Component.WinXP | 15.8.27924.0 |
-| Microsoft.VisualStudio.Component.Workflow | 15.8.27825.0 |
-| Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Managed | 15.0.26208.0 |
-| Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native | 15.0.26208.0 |
-| Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices | 15.0.26504.0 |
-| Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites | 15.9.28107.0 |
-| Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools | 15.0.27005.2 |
-| Microsoft.VisualStudio.ComponentGroup.AzureFunctions | 15.7.27617.1 |
-| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 15.8.27729.1 |
-| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Win81 | 15.6.27406.0 |
-| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.WinXP | 15.8.27705.0 |
-| Microsoft.VisualStudio.ComponentGroup.UWP.Cordova | 15.9.28307.102 |
-| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 15.8.27906.1 |
-| Microsoft.VisualStudio.ComponentGroup.UWP.VC | 15.9.28307.102 |
-| Microsoft.VisualStudio.ComponentGroup.UWP.Xamarin | 15.9.28307.102 |
-| Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites | 15.7.27625.0 |
-| Microsoft.VisualStudio.ComponentGroup.Web | 15.9.28219.51 |
-| Microsoft.VisualStudio.ComponentGroup.Web.CloudTools | 15.8.27729.1 |
-| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 15.8.27825.0 |
-| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 15.8.27729.1 |
-| Microsoft.VisualStudio.Web.Mvc4.ComponentGroup | 15.6.27406.0 |
-| Microsoft.VisualStudio.Workload.Azure | 15.8.27906.1 |
-| Microsoft.VisualStudio.Workload.CoreEditor | 15.0.27205.0 |
-| Microsoft.VisualStudio.Workload.Data | 15.6.27309.0 |
-| Microsoft.VisualStudio.Workload.DataScience | 15.9.28307.421 |
-| Microsoft.VisualStudio.Workload.ManagedDesktop | 15.9.28307.1062 |
-| Microsoft.VisualStudio.Workload.ManagedGame | 15.0.27005.2 |
-| Microsoft.VisualStudio.Workload.NativeCrossPlat | 15.0.27205.0 |
-| Microsoft.VisualStudio.Workload.NativeDesktop | 15.9.28307.102 |
-| Microsoft.VisualStudio.Workload.NativeGame | 15.9.28307.102 |
-| Microsoft.VisualStudio.Workload.NativeMobile | 15.9.28107.0 |
-| Microsoft.VisualStudio.Workload.NetCoreTools | 15.8.27906.1 |
-| Microsoft.VisualStudio.Workload.NetCrossPlat | 15.9.28107.0 |
-| Microsoft.VisualStudio.Workload.NetWeb | 15.8.27906.1 |
-| Microsoft.VisualStudio.Workload.Node | 15.9.28107.0 |
-| Microsoft.VisualStudio.Workload.Office | 15.8.27924.0 |
-| Microsoft.VisualStudio.Workload.Python | 15.8.27825.0 |
-| Microsoft.VisualStudio.Workload.Universal | 15.9.28307.102 |
-| Microsoft.VisualStudio.Workload.VisualStudioExtension | 15.7.27625.0 |
-| Microsoft.VisualStudio.Workload.WebCrossPlat | 15.9.28307.341 |
-| SSDT Microsoft Analysis Services Projects | 2.9.6 |
-| SSDT SQL Server Integration Services Projects | 2.6 |
-| SSDT Microsoft Reporting Services Projects | 2.6.3 |
-| Windows Driver Kit | 3.11.4516 |
-| Windows Driver Kit Visual Studio Extension | 10.1.17763.1 |
-| WIX Toolset | 3.11.4516 |
-| WIX Toolset Studio 2017 Extension | 0.9.21.62588 |
-
-#### Microsoft Visual C++:
-
-| Name | Architecture | Version |
-| -------------------------------------------- | ------------ | ----------- |
-| Microsoft Visual C++ 2010 Redistributable | x64 | 10.0.30319 |
-| Microsoft Visual C++ 2010 Redistributable | x86 | 10.0.40219 |
-| Microsoft Visual C++ 2012 Additional Runtime | x64 | 11.0.61030 |
-| Microsoft Visual C++ 2012 Minimum Runtime | x64 | 11.0.61030 |
-| Microsoft Visual C++ 2013 Additional Runtime | x64 | 12.0.40660 |
-| Microsoft Visual C++ 2013 Minimum Runtime | x64 | 12.0.40660 |
-| Microsoft Visual C++ 2013 Additional Runtime | x86 | 12.0.21005 |
-| Microsoft Visual C++ 2013 Minimum Runtime | x86 | 12.0.21005 |
-| Microsoft Visual C++ 2017 Debug Runtime | x64 | 14.16.27033 |
-| Microsoft Visual C++ 2017 Debug Runtime | x86 | 14.16.27033 |
-| Microsoft Visual C++ 2019 Additional Runtime | x64 | 14.26.28720 |
-| Microsoft Visual C++ 2019 Minimum Runtime | x64 | 14.26.28720 |
-| Microsoft Visual C++ 2019 Additional Runtime | x86 | 14.26.28720 |
-| Microsoft Visual C++ 2019 Minimum Runtime | x86 | 14.26.28720 |
-
-### .NET Core SDK
-`Location C:\Program Files\dotnet\sdk`
-- 1.1.14 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402
-
-### .NET Core Runtime
-`Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All`
-- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22
-
-`Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App`
-- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
-
-`Location: C:\Program Files\dotnet\shared\Microsoft.NETCore.App`
-- 1.0.16 1.1.13 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
-
-`Location: C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App`
-- 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
-
-### .NET Framework
-`Type: Developer Pack`
-`Location C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX Tools`
-- 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.8
-
-### PowerShell Tools
-- PowerShell 7.0.3
-
-#### Azure Powershell Modules
-| Module | Version | Path |
-| ------- | -------------------------------------------------------------------------------------- | ------------------------------ |
-| Az | 1.0.0
1.6.0
2.3.2
2.6.0
3.1.0
3.5.0
3.8.0
4.3.0
4.4.0
4.6.0 | C:\Modules\az_\ |
-| Azure | 2.1.0 [Installed]
3.8.0
4.2.1
5.1.1
5.3.0 | C:\Modules\azure_\ |
-| AzureRM | 2.1.0 [Installed]
3.8.0
4.2.1
5.1.1
6.7.0
6.13.1 | C:\Modules\azurerm_\ |
+```
+
+#### Go
+| Version | Architecture | Environment Variable |
+| ------- | ------------ | -------------------- |
+| 1.9.7 | x64 | GOROOT_1_9_X64 |
+| 1.10.8 | x64 | GOROOT_1_10_X64 |
+| 1.11.13 | x64 | GOROOT_1_11_X64 |
+| 1.12.17 | x64 | GOROOT_1_12_X64 |
+| 1.13.15 | x64 | GOROOT_1_13_X64 |
+| 1.14.9 (Default) | x64 | GOROOT_1_14_X64 |
+| 1.15.2 | x64 | GOROOT_1_15_X64 |
+
+
+#### Node
+| Version | Architecture |
+| ------- | ------------ |
+| 8.17.0 | x64 |
+| 10.22.1 | x64 |
+| 12.19.0 | x64 |
+| 14.13.1 | x64 |
+
+
+#### Python
+| Version | Architecture |
+| ------- | ------------ |
+| 2.7.18 | x64, x86 |
+| 3.5.4 | x64, x86 |
+| 3.6.8 | x64, x86 |
+| 3.7.9 (Default) | x64, x86 |
+| 3.8.6 | x64, x86 |
+
+
+#### Ruby
+| Version | Architecture |
+| ------- | ------------ |
+| 2.4.10 | x64 |
+| 2.5.8 (Default) | x64 |
+| 2.6.6 | x64 |
+| 2.7.1 | x64 |
+
+
+#### PyPy
+| Python Version | Architecture | PyPy Version |
+| -------------- | ------------ | ------------ |
+| 2.7.13 | x86 | PyPy 7.3.2 with MSC v.1927 32 bit |
+| 3.6.9 | x86 | PyPy 7.3.2 with MSC v.1927 32 bit |
+
+
+
+### Databases
+#### PostgreSQL
+| Property | Value |
+| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
+| ServiceName | postgresql-x64-13 |
+| Version | 13.0 |
+| ServiceStatus | Stopped |
+| ServiceStartType | Disabled |
+| EnvironmentVariables | PGBIN=C:\Program Files\PostgreSQL\13\bin
PGDATA=C:\Program Files\PostgreSQL\13\data
PGROOT=C:\Program Files\PostgreSQL\13 |
+| Path | C:\Program Files\PostgreSQL\13 |
+| UserName | postgres |
+| Password | root |
+
+
+#### MongoDB
+| Version | ServiceName | ServiceStatus | ServiceStartType |
+| ------- | ----------- | ------------- | ---------------- |
+| 4.4.1.0 | MongoDB | Running | Automatic |
+
+
+
+### Database tools
+- Azure CosmosDb Emulator 2.11.6.0
+- SQLPS 1.0
+- MySQL 5.7.21.0
+
+
+### Visual Studio Enterprise 2017
+| Name | Version | Path |
+| ----------------------------- | --------------- | -------------------------------------------------------------- |
+| Visual Studio Enterprise 2017 | 15.9.28307.1259 | C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise |
+
+#### Workloads, components and extensions:
+
+| Package | Version |
+| ------------------------------------------------------------------------- | ---------------- |
+| Component.Anaconda3.x64 | 5.2.0 |
+| Component.Android.NDK.R12B | 12.1.10 |
+| Component.Android.NDK.R15C | 15.2.1 |
+| Component.Android.SDK19.Private | 15.9.28107.0 |
+| Component.Android.SDK21.Private | 15.9.28016.0 |
+| Component.Android.SDK22.Private | 15.9.28016.0 |
+| Component.Android.SDK23 | 15.9.28107.0 |
+| Component.Android.SDK23.Private | 15.9.28016.0 |
+| Component.Android.SDK25.Private | 15.9.28016.0 |
+| Component.Android.SDK27 | 15.9.28016.0 |
+| Component.Ant | 1.9.3.8 |
+| Component.CordovaToolset.6.3.1 | 15.7.27625.0 |
+| Component.Dotfuscator | 15.0.26208.0 |
+| Component.Google.Android.Emulator.API27 | 15.9.28307.421 |
+| Component.HAXM | 15.9.28307.421 |
+| Component.Linux.CMake | 15.9.28307.102 |
+| Component.MDD.Android | 15.0.26606.0 |
+| Component.MDD.Linux | 15.6.27406.0 |
+| Component.Microsoft.VisualStudio.RazorExtension | 15.0.26720.2 |
+| Component.Microsoft.VisualStudio.Tools.Applications | 15.0.27520.3 |
+| Component.Microsoft.VisualStudio.Web.AzureFunctions | 15.7.27617.1 |
+| Component.Microsoft.Web.LibraryManager | 15.8.27705.0 |
+| Component.Microsoft.Windows.DriverKit | 10.0.17740.0 |
+| Component.OpenJDK | 15.9.28307.443 |
+| Component.Redgate.ReadyRoll | 1.17.18155.10346 |
+| Component.Redgate.SQLPrompt.VsPackage | 9.2.0.5601 |
+| Component.Redgate.SQLSearch.VSExtension | 3.1.7.2062 |
+| Component.UnityEngine.x64 | 15.9.28307.616 |
+| Component.Unreal | 15.8.27729.1 |
+| Component.Unreal.Android | 15.9.28307.341 |
+| Component.WixToolset.VisualStudioExtension.Dev15 | 0.9.21.62588 |
+| Component.Xamarin | 15.9.28307.1177 |
+| Component.Xamarin.Profiler | 15.0.27005.2 |
+| Component.Xamarin.RemotedSimulator | 15.6.27323.2 |
+| Microsoft.Component.Azure.DataLake.Tools | 15.9.28107.0 |
+| Microsoft.Component.Blend.SDK.WPF | 15.6.27406.0 |
+| Microsoft.Component.ClickOnce | 15.8.27825.0 |
+| Microsoft.Component.CookiecutterTools | 15.0.26621.2 |
+| Microsoft.Component.MSBuild | 15.7.27520.0 |
+| Microsoft.Component.NetFX.Core.Runtime | 15.0.26208.0 |
+| Microsoft.Component.NetFX.Native | 15.0.26208.0 |
+| Microsoft.Component.PythonTools | 15.0.26823.1 |
+| Microsoft.Component.PythonTools.UWP | 15.0.26606.0 |
+| Microsoft.Component.PythonTools.Web | 15.9.28107.0 |
+| Microsoft.Component.VC.Runtime.OSSupport | 15.6.27406.0 |
+| Microsoft.Component.VC.Runtime.UCRTSDK | 15.6.27309.0 |
+| Microsoft.ComponentGroup.Blend | 15.6.27406.0 |
+| Microsoft.Net.Component.3.5.DeveloperTools | 15.6.27406.0 |
+| Microsoft.Net.Component.4.5.1.TargetingPack | 15.6.27406.0 |
+| Microsoft.Net.Component.4.5.2.TargetingPack | 15.6.27406.0 |
+| Microsoft.Net.Component.4.5.TargetingPack | 15.6.27406.0 |
+| Microsoft.Net.Component.4.6.1.SDK | 15.6.27406.0 |
+| Microsoft.Net.Component.4.6.1.TargetingPack | 15.6.27406.0 |
+| Microsoft.Net.Component.4.6.2.SDK | 15.6.27406.0 |
+| Microsoft.Net.Component.4.6.2.TargetingPack | 15.6.27406.0 |
+| Microsoft.Net.Component.4.6.TargetingPack | 15.6.27406.0 |
+| Microsoft.Net.Component.4.7.1.SDK | 15.6.27406.0 |
+| Microsoft.Net.Component.4.7.1.TargetingPack | 15.6.27406.0 |
+| Microsoft.Net.Component.4.7.2.SDK | 15.8.27825.0 |
+| Microsoft.Net.Component.4.7.2.TargetingPack | 15.8.27825.0 |
+| Microsoft.Net.Component.4.7.SDK | 15.6.27406.0 |
+| Microsoft.Net.Component.4.7.TargetingPack | 15.6.27406.0 |
+| Microsoft.Net.Component.4.TargetingPack | 15.6.27406.0 |
+| Microsoft.Net.ComponentGroup.4.6.2.DeveloperTools | 15.6.27406.0 |
+| Microsoft.Net.ComponentGroup.4.7.1.DeveloperTools | 15.6.27406.0 |
+| Microsoft.Net.ComponentGroup.4.7.2.DeveloperTools | 15.8.27825.0 |
+| Microsoft.Net.ComponentGroup.4.7.DeveloperTools | 15.6.27406.0 |
+| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 15.8.27825.0 |
+| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 15.6.27406.0 |
+| Microsoft.Net.Core.Component.SDK.1x | 15.9.28307.1259 |
+| Microsoft.Net.Core.Component.SDK.2.1 | 15.8.27924.0 |
+| Microsoft.NetCore.1x.ComponentGroup.Web | 15.9.28307.1259 |
+| Microsoft.NetCore.ComponentGroup.DevelopmentTools.2.1 | 15.8.27924.0 |
+| Microsoft.NetCore.ComponentGroup.Web.2.1 | 15.8.27924.0 |
+| Microsoft.VisualStudio.Component.AppInsights.Tools | 15.8.27825.0 |
+| Microsoft.VisualStudio.Component.AspNet45 | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.Azure.AuthoringTools | 15.9.28307.421 |
+| Microsoft.VisualStudio.Component.Azure.ClientLibs | 15.0.26208.0 |
+| Microsoft.VisualStudio.Component.Azure.Compute.Emulator | 15.9.28307.421 |
+| Microsoft.VisualStudio.Component.Azure.MobileAppsSdk | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.Azure.ResourceManager.Tools | 15.9.28107.0 |
+| Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools | 15.8.27825.0 |
+| Microsoft.VisualStudio.Component.Azure.Storage.AzCopy | 15.0.26906.1 |
+| Microsoft.VisualStudio.Component.Azure.Storage.Emulator | 15.9.28125.51 |
+| Microsoft.VisualStudio.Component.Azure.Waverton | 15.9.28107.0 |
+| Microsoft.VisualStudio.Component.Azure.Waverton.BuildTools | 15.7.27617.1 |
+| Microsoft.VisualStudio.Component.ClassDesigner | 15.0.26208.0 |
+| Microsoft.VisualStudio.Component.CloudExplorer | 15.9.28230.55 |
+| Microsoft.VisualStudio.Component.CodeClone | 15.0.26208.0 |
+| Microsoft.VisualStudio.Component.CodeMap | 15.0.26208.0 |
+| Microsoft.VisualStudio.Component.Common.Azure.Tools | 15.9.28107.0 |
+| Microsoft.VisualStudio.Component.Cordova | 15.0.26606.0 |
+| Microsoft.VisualStudio.Component.CoreEditor | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.Debugger.JustInTime | 15.0.27005.2 |
+| Microsoft.VisualStudio.Component.Debugger.Snapshot | 15.8.28010.0 |
+| Microsoft.VisualStudio.Component.DependencyValidation.Enterprise | 15.0.26208.0 |
+| Microsoft.VisualStudio.Component.DiagnosticTools | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.DockerTools | 15.8.27906.1 |
+| Microsoft.VisualStudio.Component.DockerTools.BuildTools | 15.7.27617.1 |
+| Microsoft.VisualStudio.Component.DslTools | 15.0.27005.2 |
+| Microsoft.VisualStudio.Component.EntityFramework | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.FSharp | 15.8.27825.0 |
+| Microsoft.VisualStudio.Component.FSharp.Desktop | 15.8.27825.0 |
+| Microsoft.VisualStudio.Component.FSharp.WebTemplates | 15.9.28307.421 |
+| Microsoft.VisualStudio.Component.GraphDocument | 15.0.27005.2 |
+| Microsoft.VisualStudio.Component.Graphics | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Graphics.Tools | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Graphics.Win81 | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.IISExpress | 15.0.26208.0 |
+| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.JavaScript.ProjectSystem | 15.0.26606.0 |
+| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 15.9.28125.51 |
+| Microsoft.VisualStudio.Component.LinqToSql | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.LiveUnitTesting | 15.0.26720.2 |
+| Microsoft.VisualStudio.Component.ManagedDesktop.Core | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.Merq | 15.8.27924.0 |
+| Microsoft.VisualStudio.Component.MonoDebugger | 15.0.26720.2 |
+| Microsoft.VisualStudio.Component.Node.Build | 15.8.27825.0 |
+| Microsoft.VisualStudio.Component.Node.Tools | 15.8.27825.0 |
+| Microsoft.VisualStudio.Component.NuGet | 15.9.28016.0 |
+| Microsoft.VisualStudio.Component.NuGet.BuildTools | 15.9.28016.0 |
+| Microsoft.VisualStudio.Component.PortableLibrary | 15.6.27309.0 |
+| Microsoft.VisualStudio.Component.R.Open | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.RHost | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Roslyn.Compiler | 15.6.27309.0 |
+| Microsoft.VisualStudio.Component.Roslyn.LanguageServices | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.RTools | 15.0.26919.1 |
+| Microsoft.VisualStudio.Component.Sharepoint.Tools | 15.8.27924.0 |
+| Microsoft.VisualStudio.Component.SQL.ADAL | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.SQL.CLR | 15.0.26208.0 |
+| Microsoft.VisualStudio.Component.SQL.CMDUtils | 15.0.26208.0 |
+| Microsoft.VisualStudio.Component.SQL.DataSources | 15.0.26621.2 |
+| Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime | 15.7.27617.1 |
+| Microsoft.VisualStudio.Component.SQL.NCLI | 15.0.26208.0 |
+| Microsoft.VisualStudio.Component.SQL.SSDT | 15.9.28107.0 |
+| Microsoft.VisualStudio.Component.Static.Analysis.Tools | 15.0.26208.0 |
+| Microsoft.VisualStudio.Component.TeamOffice | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.TestTools.CodedUITest | 15.0.26606.0 |
+| Microsoft.VisualStudio.Component.TestTools.Core | 15.7.27520.0 |
+| Microsoft.VisualStudio.Component.TestTools.WebLoadTest | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.TextTemplating | 15.0.26208.0 |
+| Microsoft.VisualStudio.Component.TypeScript.2.0 | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.TypeScript.2.1 | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.TypeScript.2.2 | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.TypeScript.2.3 | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.TypeScript.3.1 | 15.0.28218.60 |
+| Microsoft.VisualStudio.Component.Unity | 15.7.27617.1 |
+| Microsoft.VisualStudio.Component.UWP.Support | 15.9.28119.51 |
+| Microsoft.VisualStudio.Component.UWP.VC.ARM64 | 15.0.28125.51 |
+| Microsoft.VisualStudio.Component.VC.140 | 15.7.27617.1 |
+| Microsoft.VisualStudio.Component.VC.ATL | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.VC.ATL.ARM | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.VC.ATL.ARM64 | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.VC.ATL.Spectre | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.VC.ATLMFC | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre | 15.7.27625.0 |
+| Microsoft.VisualStudio.Component.VC.ClangC2 | 15.7.27520.0 |
+| Microsoft.VisualStudio.Component.VC.CLI.Support | 15.6.27309.0 |
+| Microsoft.VisualStudio.Component.VC.CMake.Project | 15.9.28307.102 |
+| Microsoft.VisualStudio.Component.VC.CoreIde | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.VC.DiagnosticTools | 15.0.26823.1 |
+| Microsoft.VisualStudio.Component.VC.Modules.x86.x64 | 15.6.27309.0 |
+| Microsoft.VisualStudio.Component.VC.Redist.14.Latest | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre | 15.9.28230.55 |
+| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre | 15.9.28230.55 |
+| Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre | 15.9.28230.55 |
+| Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest | 15.9.28307.616 |
+| Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest | 15.8.27906.1 |
+| Microsoft.VisualStudio.Component.VC.Tools.ARM | 15.8.27825.0 |
+| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 15.9.28230.55 |
+| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 15.9.28230.55 |
+| Microsoft.VisualStudio.Component.VisualStudioData | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.VSSDK | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.Wcf.Tooling | 15.8.27924.0 |
+| Microsoft.VisualStudio.Component.Web | 15.8.27825.0 |
+| Microsoft.VisualStudio.Component.WebDeploy | 15.8.27729.1 |
+| Microsoft.VisualStudio.Component.Windows10SDK | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Windows10SDK.10240 | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Windows10SDK.10586 | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Windows10SDK.14393 | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Windows10SDK.15063.Desktop | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Windows10SDK.15063.UWP | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Windows10SDK.15063.UWP.Native | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Windows10SDK.16299.Desktop | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Windows10SDK.16299.Desktop.arm | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Windows10SDK.16299.UWP | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Windows10SDK.16299.UWP.Native | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.Windows10SDK.17134 | 15.9.28307.102 |
+| Microsoft.VisualStudio.Component.Windows10SDK.17763 | 15.9.28307.102 |
+| Microsoft.VisualStudio.Component.Windows81SDK | 15.6.27406.0 |
+| Microsoft.VisualStudio.Component.WinXP | 15.8.27924.0 |
+| Microsoft.VisualStudio.Component.Workflow | 15.8.27825.0 |
+| Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Managed | 15.0.26208.0 |
+| Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native | 15.0.26208.0 |
+| Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices | 15.0.26504.0 |
+| Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites | 15.9.28107.0 |
+| Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools | 15.0.27005.2 |
+| Microsoft.VisualStudio.ComponentGroup.AzureFunctions | 15.7.27617.1 |
+| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 15.8.27729.1 |
+| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Win81 | 15.6.27406.0 |
+| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.WinXP | 15.8.27705.0 |
+| Microsoft.VisualStudio.ComponentGroup.UWP.Cordova | 15.9.28307.102 |
+| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 15.8.27906.1 |
+| Microsoft.VisualStudio.ComponentGroup.UWP.VC | 15.9.28307.102 |
+| Microsoft.VisualStudio.ComponentGroup.UWP.Xamarin | 15.9.28307.102 |
+| Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites | 15.7.27625.0 |
+| Microsoft.VisualStudio.ComponentGroup.Web | 15.9.28219.51 |
+| Microsoft.VisualStudio.ComponentGroup.Web.CloudTools | 15.8.27729.1 |
+| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 15.8.27825.0 |
+| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 15.8.27729.1 |
+| Microsoft.VisualStudio.Web.Mvc4.ComponentGroup | 15.6.27406.0 |
+| Microsoft.VisualStudio.Workload.Azure | 15.8.27906.1 |
+| Microsoft.VisualStudio.Workload.CoreEditor | 15.0.27205.0 |
+| Microsoft.VisualStudio.Workload.Data | 15.6.27309.0 |
+| Microsoft.VisualStudio.Workload.DataScience | 15.9.28307.421 |
+| Microsoft.VisualStudio.Workload.ManagedDesktop | 15.9.28307.1062 |
+| Microsoft.VisualStudio.Workload.ManagedGame | 15.0.27005.2 |
+| Microsoft.VisualStudio.Workload.NativeCrossPlat | 15.0.27205.0 |
+| Microsoft.VisualStudio.Workload.NativeDesktop | 15.9.28307.102 |
+| Microsoft.VisualStudio.Workload.NativeGame | 15.9.28307.102 |
+| Microsoft.VisualStudio.Workload.NativeMobile | 15.9.28107.0 |
+| Microsoft.VisualStudio.Workload.NetCoreTools | 15.8.27906.1 |
+| Microsoft.VisualStudio.Workload.NetCrossPlat | 15.9.28107.0 |
+| Microsoft.VisualStudio.Workload.NetWeb | 15.8.27906.1 |
+| Microsoft.VisualStudio.Workload.Node | 15.9.28107.0 |
+| Microsoft.VisualStudio.Workload.Office | 15.8.27924.0 |
+| Microsoft.VisualStudio.Workload.Python | 15.8.27825.0 |
+| Microsoft.VisualStudio.Workload.Universal | 15.9.28307.102 |
+| Microsoft.VisualStudio.Workload.VisualStudioExtension | 15.7.27625.0 |
+| Microsoft.VisualStudio.Workload.WebCrossPlat | 15.9.28307.341 |
+| SSDT Microsoft Analysis Services Projects | 2.9.6 |
+| SSDT SQL Server Integration Services Projects | 2.6 |
+| SSDT Microsoft Reporting Services Projects | 2.6.3 |
+| Windows Driver Kit | 3.11.4516 |
+| Windows Driver Kit Visual Studio Extension | 10.1.17763.1 |
+| WIX Toolset | 3.11.4516 |
+| WIX Toolset Studio 2017 Extension | 0.9.21.62588 |
+
+#### Microsoft Visual C++:
+
+| Name | Architecture | Version |
+| -------------------------------------------- | ------------ | ----------- |
+| Microsoft Visual C++ 2010 Redistributable | x64 | 10.0.30319 |
+| Microsoft Visual C++ 2010 Redistributable | x86 | 10.0.40219 |
+| Microsoft Visual C++ 2012 Additional Runtime | x64 | 11.0.61030 |
+| Microsoft Visual C++ 2012 Minimum Runtime | x64 | 11.0.61030 |
+| Microsoft Visual C++ 2013 Additional Runtime | x64 | 12.0.40660 |
+| Microsoft Visual C++ 2013 Minimum Runtime | x64 | 12.0.40660 |
+| Microsoft Visual C++ 2013 Additional Runtime | x86 | 12.0.21005 |
+| Microsoft Visual C++ 2013 Minimum Runtime | x86 | 12.0.21005 |
+| Microsoft Visual C++ 2017 Debug Runtime | x64 | 14.16.27033 |
+| Microsoft Visual C++ 2017 Debug Runtime | x86 | 14.16.27033 |
+| Microsoft Visual C++ 2019 Additional Runtime | x64 | 14.27.29112 |
+| Microsoft Visual C++ 2019 Minimum Runtime | x64 | 14.27.29112 |
+| Microsoft Visual C++ 2019 Additional Runtime | x86 | 14.27.29112 |
+| Microsoft Visual C++ 2019 Minimum Runtime | x86 | 14.27.29112 |
+
+### .NET Core SDK
+`Location C:\Program Files\dotnet\sdk`
+- 1.1.14 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402
+
+### .NET Core Runtime
+`Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All`
+- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22
+
+`Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App`
+- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
+
+`Location: C:\Program Files\dotnet\shared\Microsoft.NETCore.App`
+- 1.0.16 1.1.13 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
+
+`Location: C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App`
+- 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
+
+### .NET Framework
+`Type: Developer Pack`
+`Location C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX Tools`
+- 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.8
+
+### PowerShell Tools
+- PowerShell 7.0.3
+
+#### Azure Powershell Modules
+| Module | Version | Path |
+| ------- | ----------------------------------------------------------------------------------------------- | ------------------------------ |
+| Az | 1.0.0
1.6.0
2.3.2
2.6.0
3.1.0
3.5.0
3.8.0
4.3.0
4.4.0
4.6.0
4.7.0 | C:\Modules\az_\ |
+| Azure | 2.1.0 [Installed]
3.8.0
4.2.1
5.1.1
5.3.0 | C:\Modules\azure_\ |
+| AzureRM | 2.1.0 [Installed]
3.8.0
4.2.1
5.1.1
6.7.0
6.13.1 | C:\Modules\azurerm_\ |
```
Azure PowerShell module 2.1.0 and AzureRM PowerShell module 2.1.0 are installed
and are available via 'Get-Module -ListAvailable'.
All other versions are saved but not installed.
-```
-#### Powershell Modules
-| Module | Version |
-| ------------------ | ------------------ |
-| DockerMsftProvider | 1.0.0.8 |
-| MarkdownPS | 1.9 |
-| Pester | 3.4.0
5.0.4 |
-| PowerShellGet | 1.0.0.1
2.2.4.1 |
-| PSWindowsUpdate | 2.2.0.2 |
-| SqlServer | 21.1.18226 |
-| VSSetup | 2.2.16 |
-
-### Android SDK Tools
-| Package Name | Description |
-| -------------- | ------------------------------------------- |
-| platform-tools | Android SDK Platform-Tools, Revision 30.0.4 |
-| tools | Android SDK Tools 25.2.5, Revision 25.2.5 |
-
-### Android SDK Platforms
-`Location C:\Program Files (x86)\Android\android-sdk\platforms`
-| Package Name | Description |
-| ------------ | ------------------------------------------ |
-| android-19 | Android SDK Platform 19, Revision 4 |
-| android-21 | Android SDK Platform 21, Revision 2 |
-| android-22 | Android SDK Platform 22, Revision 2 |
-| android-23 | Android SDK Platform 23, rev 3, Revision 3 |
-| android-24 | Android SDK Platform 24, Revision 2 |
-| android-25 | Android SDK Platform 25, Revision 3 |
-| android-26 | Android SDK Platform 26, Revision 2 |
-| android-27 | Android SDK Platform 27, Revision 3 |
-| android-28 | Android SDK Platform 28, Revision 6 |
-| android-29 | Android SDK Platform 29, Revision 5 |
-| android-30 | Android SDK Platform 30, Revision 3 |
-
-### Android SDK Build-Tools
-`Location C:\Program Files (x86)\Android\android-sdk\build-tools`
-| Package Name | Description |
-| ------------------ | ---------------------------------------- |
-| build-tools-19.1.0 | Android SDK Build-Tools, Revision 19.1.0 |
-| build-tools-20.0.0 | Android SDK Build-Tools, Revision 20.0.0 |
-| build-tools-21.1.2 | Android SDK Build-Tools, Revision 21.1.2 |
-| build-tools-22.0.1 | Android SDK Build-Tools, Revision 22.0.1 |
-| build-tools-23.0.1 | Android SDK Build-Tools, Revision 23.0.1 |
-| build-tools-23.0.2 | Android SDK Build-Tools, Revision 23.0.2 |
-| build-tools-23.0.3 | Android SDK Build-Tools, Revision 23.0.3 |
-| build-tools-24.0.0 | Android SDK Build-Tools, Revision 24.0.0 |
-| build-tools-24.0.1 | Android SDK Build-Tools, Revision 24.0.1 |
-| build-tools-24.0.2 | Android SDK Build-Tools, Revision 24.0.2 |
-| build-tools-24.0.3 | Android SDK Build-Tools, Revision 24.0.3 |
-| build-tools-25.0.0 | Android SDK Build-Tools, Revision 25.0.0 |
-| build-tools-25.0.1 | Android SDK Build-Tools, Revision 25.0.1 |
-| build-tools-25.0.2 | Android SDK Build-Tools, Revision 25.0.2 |
-| build-tools-25.0.3 | Android SDK Build-Tools, Revision 25.0.3 |
-| build-tools-26.0.0 | Android SDK Build-Tools, Revision 26.0.0 |
-| build-tools-26.0.1 | Android SDK Build-Tools, Revision 26.0.1 |
-| build-tools-26.0.2 | Android SDK Build-Tools, Revision 26.0.2 |
-| build-tools-26.0.3 | Android SDK Build-Tools, Revision 26.0.3 |
-| build-tools-27.0.0 | Android SDK Build-Tools, Revision 27.0.0 |
-| build-tools-27.0.1 | Android SDK Build-Tools, Revision 27.0.1 |
-| build-tools-27.0.2 | Android SDK Build-Tools, Revision 27.0.2 |
-| build-tools-27.0.3 | Android SDK Build-Tools, Revision 27.0.3 |
-| build-tools-28.0.0 | Android SDK Build-Tools, Revision 28.0.0 |
-| build-tools-28.0.1 | Android SDK Build-Tools, Revision 28.0.1 |
-| build-tools-28.0.2 | Android SDK Build-Tools, Revision 28.0.2 |
-| build-tools-28.0.3 | Android SDK Build-Tools, Revision 28.0.3 |
-| build-tools-29.0.0 | Android SDK Build-Tools, Revision 29.0.0 |
-| build-tools-29.0.1 | Android SDK Build-Tools, Revision 29.0.1 |
-| build-tools-29.0.2 | Android SDK Build-Tools, Revision 29.0.2 |
-| build-tools-29.0.3 | Android SDK Build-Tools, Revision 29.0.3 |
-| build-tools-30.0.0 | Android SDK Build-Tools, Revision 30.0.0 |
-| build-tools-30.0.1 | Android SDK Build-Tools, Revision 30.0.1 |
-| build-tools-30.0.2 | Android SDK Build-Tools, Revision 30.0.2 |
-
-### Android Extra Packages
-| Package Name | Version |
-| -------------------------- | ------------ |
-| Android Support Repository | 47.0.0 |
-| Google Play services | 49 |
-| Google Repository | 58 |
-| NDK | 21.3.6528147 |
-
-### Cached Docker images
-- mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016
-- mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016
-- mcr.microsoft.com/windows/servercore:ltsc2016
-- microsoft/aspnetcore-build:1.0-2.0
-- mcr.microsoft.com/windows/nanoserver:10.0.14393.953
-
-
+```
+#### Powershell Modules
+| Module | Version |
+| ------------------ | --------------------------- |
+| DockerMsftProvider | 1.0.0.8 |
+| MarkdownPS | 1.9 |
+| Pester | 3.4.0
5.0.4 |
+| PowerShellGet | 1.0.0.1
2.2.4.1
2.2.5 |
+| PSWindowsUpdate | 2.2.0.2 |
+| SqlServer | 21.1.18228 |
+| VSSetup | 2.2.16 |
+
+### Android
+| Package Name | Version |
+| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| Android SDK Platform-Tools | 30.0.4 |
+| Android SDK Tools | 25.2.5 |
+| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3)
android-22 (rev 2)
android-21 (rev 2)
android-20 (rev 2)
android-19 (rev 4) |
+| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3
22.0.1
21.1.2
20.0.0
19.1.0 |
+| NDK | 21.3.6528147 |
+| Android Support Repository | 47.0.0 |
+| Google APIs | addon-g..._apis-google-21
addon-g..._apis-google-22
addon-g..._apis-google-23
addon-g..._apis-google-24
a...google_apis |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| SDK Patch Applier v4 | 1 |
+| CMake | 3.10.2
3.6.4111459 |
+
+### Cached Docker images
+- mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016
+- mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016
+- mcr.microsoft.com/windows/servercore:ltsc2016
+- microsoft/aspnetcore-build:1.0-2.0
+- mcr.microsoft.com/windows/nanoserver:10.0.14393.953
+
+
diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md
index c74d15f3..a153b8d4 100644
--- a/images/win/Windows2019-Readme.md
+++ b/images/win/Windows2019-Readme.md
@@ -1,124 +1,123 @@
-| Announcements |
-|-|
-| [Replace SVN (1.8.17) by TortoiseSVN (1.14.x) on Windows images](https://github.com/actions/virtual-environments/issues/1318) |
-***
-# Microsoft Windows Server 2019 Datacenter
-- OS Version: 10.0.17763 Build 1397
-- Image Version: 20200827.1
-
-## Enabled windows optional features
-- Windows Subsystem for Linux
-
-## Installed Software
-### Language and Runtime
-- Java 1.7.0_232
-- Java 1.8.0_265 (default)
-- Java 11.0.8
-- Java 13.0.2
-- Python 3.7.9
-- Ruby 2.5.8p224
-- Go 1.14.7
-- PHP 7.4.9
-- Julia 1.5.1
-- Perl 5.30.3
-- Node 12.18.3
-
-### Package Management
-- Chocolatey 0.10.15
-- Vcpkg 2020.06.15
-- NPM 6.14.6
-- Yarn 1.22.4
-- pip 20.2.2 (python 3.7)
-- Miniconda 4.6.14
-- RubyGems 3.1.4
-- Helm 3.3.0
-- Composer 1.10.10
-- NuGet 5.7.0.6726
-
-### Project Management
-- Ant 1.10.5
-- Maven 3.6.3
-- Gradle 6.6
-- sbt 1.3.13
-
-### Tools
-- Azure CosmosDb Emulator 2.11.5.0
-- azcopy 10.6.0
-- Bazel 3.4.1
-- Bazelisk 1.6.1
-- CMake 3.18.2
-- R 4.0.2
-- Docker 19.03.11
-- Docker-compose 1.26.2
-- Git 2.28.0
-- Git LFS 2.11.0
-- Google Cloud SDK 307.0.0
-- InnoSetup 6.0.5
-- jq 1.6
-- Kubectl 1.18.8
-- Kind 0.8.1
-- Mingw-w64 8.1.0
-- MySQL 5.7.21.0
-- Mercurial 5.0
-- NSIS v3.06.1
-- Newman 5.1.2
-- OpenSSL 1.1.1
-- Packer 1.6.1
-- SQLPS 1.0
-- SQLServer PS 21.1.18226
-- Subversion (SVN) 1.14.0
-- ghc 8.10.2
-- Cabal 3.2.0.0
-- Stack 2.3.3
-- WinAppDriver 1.1.1809.18001
-- zstd 1.4.0
-- VSWhere 2.8.4
-- 7zip 19.00
-- yamllint 1.24.2
-
-### CLI Tools
-- Azure CLI 2.11.0
-- Azure DevOps CLI extension 0.18.0
-- AWS CLI 2.0.43
-- AWS SAM CLI 1.1.0
-- AWS Session Manager CLI 1.1.61.0
-- Alibaba Cloud CLI 3.0.56
-- Cloud Foundry CLI 6.52.0
-- Hub CLI 2.14.2
-- GitHub CLI gh version 0.11.1 (2020-07-28) https://github.com/cli/cli/releases/tag/v0.11.1
-
-### Rust Tools
-- Rust 1.45.2
-
-#### Packages
-- bindgen 0.55.1
-- cbindgen 0.14.4
-- cargo-audit 0.12.0
-- cargo-outdated v0.9.11
-
-### Browsers and webdrivers
-- Google Chrome 85.0.4183.83
-- Chrome Driver 85.0.4183.83
-- Microsoft Edge 84.0.522.63
-- Microsoft Edge Driver 84.0.522.63
-- Mozilla Firefox 80.0
-- Gecko Driver 0.27.0
-- IE Driver 3.150.1.0
-
-### MSYS2
-- Pacman 5.2.2
+| Announcements |
+|-|
+| [[In Discussion] Git internal tools will be removed from PATH Windows images and replaced with MSYS2 tools](https://github.com/actions/virtual-environments/issues/1525) |
+***
+# Microsoft Windows Server 2019 Datacenter
+- OS Version: 10.0.17763 Build 1457
+- Image Version: 20201011.1
+
+## Enabled windows optional features
+- Windows Subsystem for Linux
+
+## Installed Software
+### Language and Runtime
+- Java 1.7.0_232
+- Java 1.8.0_265 (default)
+- Java 11.0.8
+- Java 13.0.2
+- Python 3.7.9
+- Ruby 2.5.8p224
+- Go 1.14.9
+- PHP 7.4.11
+- Julia 1.5.2
+- Perl 5.32.0
+- Node 12.19.0
+
+### Package Management
+- Chocolatey 0.10.15
+- Vcpkg 2020.06.15
+- NPM 6.14.8
+- Yarn 1.22.10
+- pip 20.2.3 (python 3.7)
+- Miniconda 4.6.14
+- RubyGems 3.1.4
+- Helm 3.3.4
+- Composer 1.10.13
+- NuGet 5.7.0.6726
+
+### Project Management
+- Ant 1.10.9
+- Maven 3.6.3
+- Gradle 6.6
+- sbt 1.4.0
+
+### Tools
+- azcopy 10.6.0
+- Bazel 3.6.0
+- Bazelisk 1.7.1
+- CMake 3.18.4
+- CodeQL Action Bundle 2.2.5
+- R 4.0.3
+- Docker 19.03.12
+- Docker-compose 1.27.2
+- Git 2.28.0
+- Git LFS 2.11.0
+- Google Cloud SDK 313.0.1
+- InnoSetup 6.0.5
+- jq 1.6
+- Kubectl 1.19.1
+- Kind 0.9.0
+- Mingw-w64 8.1.0
+- Mercurial 5.0
+- NSIS v3.06.1
+- Newman 5.2.0
+- OpenSSL 1.1.1
+- Packer 1.6.3
+- Pulumi v2.11.2
+- Subversion (SVN) 1.14.0
+- ghc 8.10.2
+- Cabal 3.2.0.0
+- Stack 2.3.3
+- WinAppDriver 1.1.1809.18001
+- zstd 1.4.5
+- VSWhere 2.8.4
+- 7zip 19.00
+- yamllint 1.25.0
+
+### CLI Tools
+- Azure CLI 2.12.1
+- Azure DevOps CLI extension 0.18.0
+- Azure Dev Spaces CLI 1.0.20200921.3
+- AWS CLI 2.0.56
+- AWS SAM CLI 1.6.2
+- AWS Session Manager CLI 1.1.61.0
+- Alibaba Cloud CLI 3.0.60
+- Cloud Foundry CLI 6.53.0
+- Hub CLI 2.14.2
+- GitHub CLI 1.1.0
+
+### Rust Tools
+- Rust 1.47.0
+
+#### Packages
+- bindgen 0.55.1
+- cbindgen 0.15.0
+- cargo-audit 0.12.1
+- cargo-outdated v0.9.11
+
+### Browsers and webdrivers
+- Google Chrome 86.0.4240.75
+- Chrome Driver 86.0.4240.22
+- Microsoft Edge 86.0.622.38
+- Microsoft Edge Driver 86.0.622.38
+- Mozilla Firefox 81.0.1
+- Gecko Driver 0.27.0
+- IE Driver 3.150.1.0
+
+### MSYS2
+- Pacman 5.2.2
```
Location: C:\msys64
Note: MSYS2 is pre-installed on image but not added to PATH.
-```
-### Cached Tools
-#### Boost
-| Version | Architecture | Environment Variable |
-| ------- | ------------ | -------------------- |
-| 1.69.0 | x64, x86 | BOOST_ROOT_1_69_0 |
-| 1.72.0 | x64, x86 | BOOST_ROOT_1_72_0 |
-##### Notes:
+```
+### Cached Tools
+#### Boost
+| Version | Architecture | Environment Variable |
+| ------- | ------------ | -------------------- |
+| 1.69.0 | x64, x86 | BOOST_ROOT_1_69_0 |
+| 1.72.0 | x64, x86 | BOOST_ROOT_1_72_0 |
+##### Notes:
```
1. Environment variable "BOOST_ROOT" is not set by default.
Please make sure you set this variable value to proper value
@@ -131,445 +130,400 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
See documentation of the Boost CMake package configuration for details on what it provides.
Set Boost_NO_BOOST_CMAKE to ON, to disable the search for boost-cmake.
Link: https://cmake.org/cmake/help/latest/module/FindBoost.html
-```
-
-#### Go
-| Version | Architecture | Environment Variable |
-| ------- | ------------ | -------------------- |
-| 1.9.7 | x64 | GOROOT_1_9_X64 |
-| 1.10.8 | x64 | GOROOT_1_10_X64 |
-| 1.11.13 | x64 | GOROOT_1_11_X64 |
-| 1.12.17 | x64 | GOROOT_1_12_X64 |
-| 1.13.15 | x64 | GOROOT_1_13_X64 |
-| 1.14.7 (Default) | x64 | GOROOT_1_14_X64 |
-| 1.15.0 | x64 | GOROOT_1_15_X64 |
-
-
-#### Node
-| Version | Architecture |
-| ------- | ------------ |
-| 8.17.0 | x64 |
-| 10.22.0 | x64 |
-| 12.18.3 | x64 |
-| 14.8.0 | x64 |
-
-
-#### Python
-| Version | Architecture |
-| ------- | ------------ |
-| 2.7.18 | x64, x86 |
-| 3.5.4 | x64, x86 |
-| 3.6.8 | x64, x86 |
-| 3.7.9 (Default) | x64, x86 |
-| 3.8.5 | x64, x86 |
-
-
-#### Ruby
-| Version | Architecture |
-| ------- | ------------ |
-| 2.4.10 | x64 |
-| 2.5.8 (Default) | x64 |
-| 2.6.6 | x64 |
-| 2.7.1 | x64 |
-
-
-#### PyPy
-| Python Version | Architecture | PyPy Version |
-| -------------- | ------------ | ------------ |
-| 2.7.13 | x86 | PyPy 7.3.1 with MSC v.1912 32 bit |
-| 3.6.9 | x86 | PyPy 7.3.1 with MSC v.1912 32 bit |
-
-
-
-### Databases
-#### PostgreSQL
-| Property | Value |
-| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
-| ServiceName | postgresql-x64-12 |
-| Version | 12.4 |
-| ServiceStatus | Stopped |
-| ServiceStartType | Disabled |
-| EnvironmentVariables | PGBIN=C:\Program Files\PostgreSQL\12\bin
PGDATA=C:\Program Files\PostgreSQL\12\data
PGROOT=C:\Program Files\PostgreSQL\12 |
-| Path | C:\Program Files\PostgreSQL\12 |
-| UserName | postgres |
-| Password | root |
-
-
-#### MongoDB
-| Version | ServiceName | ServiceStatus | ServiceStartType |
-| ------- | ----------- | ------------- | ---------------- |
-| 4.4.0.0 | MongoDB | Running | Automatic |
-
-
-
-### Visual Studio Enterprise 2019
-| Name | Version | Path |
-| ----------------------------- | -------------- | -------------------------------------------------------------- |
-| Visual Studio Enterprise 2019 | 16.7.30413.136 | C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise |
-
-#### Workloads, components and extensions:
-
-| Package | Version |
-| ------------------------------------------------------------------------- | -------------- |
-| Component.Android.NDK.R16B | 16.7.30411.121 |
-| Component.Android.SDK25.Private | 16.0.28625.61 |
-| Component.Android.SDK28 | 16.2.29003.222 |
-| Component.Ant | 1.9.3.8 |
-| Component.Dotfuscator | 16.0.28528.71 |
-| Component.Linux.CMake | 16.2.29003.222 |
-| Component.MDD.Android | 16.0.28517.75 |
-| Component.MDD.Linux | 16.5.29515.121 |
-| Component.MDD.Linux.GCC.arm | 16.5.29515.121 |
-| Component.Microsoft.VisualStudio.LiveShare | 1.0.2518 |
-| Component.Microsoft.VisualStudio.RazorExtension | 16.0.28714.129 |
-| Component.Microsoft.VisualStudio.Tools.Applications | 16.0.29425.2 |
-| Component.Microsoft.VisualStudio.Web.AzureFunctions | 16.0.28714.129 |
-| Component.Microsoft.Web.LibraryManager | 16.0.28315.86 |
-| Component.Microsoft.Windows.DriverKit | 10.0.19030.0 |
-| Component.OpenJDK | 16.1.28811.260 |
-| Component.UnityEngine.x64 | 16.7.30310.162 |
-| Component.Unreal | 16.1.28810.153 |
-| Component.Unreal.Android | 16.1.28810.153 |
-| Component.WixToolset.VisualStudioExtension.Dev16 | 1.0.0.4 |
-| Component.WixToolset.VisualStudioExtension.Schemas3 | 1.0.0.4 |
-| Component.WixToolset.VisualStudioExtension.Schemas4 | 1.0.0.4 |
-| Component.Xamarin | 16.7.30310.162 |
-| Component.Xamarin.RemotedSimulator | 16.0.28315.86 |
-| Microsoft.Component.Azure.DataLake.Tools | 16.7.30310.162 |
-| Microsoft.Component.MSBuild | 16.5.29515.121 |
-| Microsoft.Component.NetFX.Native | 16.5.29515.121 |
-| Microsoft.Component.PythonTools | 16.5.29515.121 |
-| Microsoft.Component.PythonTools.Miniconda | 16.2.29003.222 |
-| Microsoft.Component.PythonTools.Web | 16.0.28517.75 |
-| Microsoft.Component.VC.Runtime.UCRTSDK | 16.0.28625.61 |
-| Microsoft.ComponentGroup.Blend | 16.0.28315.86 |
-| Microsoft.Net.Component.3.5.DeveloperTools | 16.0.28517.75 |
-| Microsoft.Net.Component.4.5.1.TargetingPack | 16.0.28517.75 |
-| Microsoft.Net.Component.4.5.2.TargetingPack | 16.0.28517.75 |
-| Microsoft.Net.Component.4.5.TargetingPack | 16.0.28517.75 |
-| Microsoft.Net.Component.4.6.1.TargetingPack | 16.0.28517.75 |
-| Microsoft.Net.Component.4.6.2.TargetingPack | 16.0.28517.75 |
-| Microsoft.Net.Component.4.6.TargetingPack | 16.0.28517.75 |
-| Microsoft.Net.Component.4.7.1.TargetingPack | 16.7.30310.162 |
-| Microsoft.Net.Component.4.7.2.SDK | 16.4.29409.204 |
-| Microsoft.Net.Component.4.7.2.TargetingPack | 16.7.30310.162 |
-| Microsoft.Net.Component.4.7.TargetingPack | 16.7.30310.162 |
-| Microsoft.Net.Component.4.8.SDK | 16.4.29313.120 |
-| Microsoft.Net.Component.4.TargetingPack | 16.0.28517.75 |
-| Microsoft.Net.ComponentGroup.4.6.2.DeveloperTools | 16.3.29207.166 |
-| Microsoft.Net.ComponentGroup.4.7.1.DeveloperTools | 16.3.29207.166 |
-| Microsoft.Net.ComponentGroup.4.7.DeveloperTools | 16.3.29207.166 |
-| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 16.3.29207.166 |
-| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 16.0.28516.191 |
-| Microsoft.Net.Core.Component.SDK.2.1 | 16.7.30406.193 |
-| Microsoft.NetCore.Component.DevelopmentTools | 16.5.29721.120 |
-| Microsoft.NetCore.Component.Runtime.3.1 | 16.7.30406.193 |
-| Microsoft.NetCore.Component.SDK | 16.7.30406.193 |
-| Microsoft.NetCore.Component.Web | 16.5.29721.120 |
-| Microsoft.VisualStudio.Component.AppInsights.Tools | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.AspNet45 | 16.0.28315.86 |
-| Microsoft.VisualStudio.Component.Azure.AuthoringTools | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.Azure.ClientLibs | 16.0.28315.86 |
-| Microsoft.VisualStudio.Component.Azure.Compute.Emulator | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.Azure.Kubernetes.Tools | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.Azure.Powershell | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.Azure.ResourceManager.Tools | 16.4.29409.204 |
-| Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools | 16.4.29313.120 |
-| Microsoft.VisualStudio.Component.Azure.Storage.AzCopy | 16.0.28517.75 |
-| Microsoft.VisualStudio.Component.Azure.Storage.Emulator | 16.4.29313.120 |
-| Microsoft.VisualStudio.Component.Azure.Waverton | 16.4.29409.204 |
-| Microsoft.VisualStudio.Component.Azure.Waverton.BuildTools | 16.3.29207.166 |
-| Microsoft.VisualStudio.Component.ClassDesigner | 16.0.28528.71 |
-| Microsoft.VisualStudio.Component.CloudExplorer | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.CodeMap | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.Common.Azure.Tools | 16.4.29409.204 |
-| Microsoft.VisualStudio.Component.CoreEditor | 16.1.28811.260 |
-| Microsoft.VisualStudio.Component.Debugger.JustInTime | 16.0.28517.75 |
-| Microsoft.VisualStudio.Component.Debugger.Snapshot | 16.5.29813.82 |
-| Microsoft.VisualStudio.Component.Debugger.TimeTravel | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.DiagnosticTools | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.DockerTools | 16.4.29409.204 |
-| Microsoft.VisualStudio.Component.DotNetModelBuilder | 16.7.30322.227 |
-| Microsoft.VisualStudio.Component.DslTools | 16.0.28315.86 |
-| Microsoft.VisualStudio.Component.EntityFramework | 16.0.28315.86 |
-| Microsoft.VisualStudio.Component.FSharp | 16.0.28315.86 |
-| Microsoft.VisualStudio.Component.FSharp.Desktop | 16.0.28315.86 |
-| Microsoft.VisualStudio.Component.FSharp.WebTemplates | 16.3.29207.166 |
-| Microsoft.VisualStudio.Component.GraphDocument | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.Graphics | 16.0.28517.75 |
-| Microsoft.VisualStudio.Component.Graphics.Tools | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.IISExpress | 16.0.28315.86 |
-| Microsoft.VisualStudio.Component.IntelliCode | 0.2 |
-| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 16.0.28517.75 |
-| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.LinqToSql | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.LiveUnitTesting | 16.1.28811.260 |
-| Microsoft.VisualStudio.Component.ManagedDesktop.Core | 16.4.29318.151 |
-| Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.Merq | 16.2.29012.281 |
-| Microsoft.VisualStudio.Component.MonoDebugger | 16.0.28517.75 |
-| Microsoft.VisualStudio.Component.MSODBC.SQL | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils | 16.0.28707.177 |
-| Microsoft.VisualStudio.Component.Node.Tools | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.NuGet | 16.1.28829.92 |
-| Microsoft.VisualStudio.Component.NuGet.BuildTools | 16.1.28829.92 |
-| Microsoft.VisualStudio.Component.PortableLibrary | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.Roslyn.Compiler | 16.0.28714.129 |
-| Microsoft.VisualStudio.Component.Roslyn.LanguageServices | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.Sharepoint.Tools | 16.4.29409.204 |
-| Microsoft.VisualStudio.Component.SQL.ADAL | 16.0.28517.75 |
-| Microsoft.VisualStudio.Component.SQL.CLR | 16.0.28315.86 |
-| Microsoft.VisualStudio.Component.SQL.DataSources | 16.0.28315.86 |
-| Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.SQL.SSDT | 16.3.29207.166 |
-| Microsoft.VisualStudio.Component.TeamOffice | 16.4.29409.204 |
-| Microsoft.VisualStudio.Component.TestTools.CodedUITest | 16.0.28327.66 |
-| Microsoft.VisualStudio.Component.TestTools.WebLoadTest | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.TextTemplating | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.TypeScript.3.9 | 16.0.30322.227 |
-| Microsoft.VisualStudio.Component.Unity | 16.0.28315.86 |
-| Microsoft.VisualStudio.Component.UWP.VC.ARM64 | 16.3.29207.166 |
-| Microsoft.VisualStudio.Component.VC.14.25.x86.x64 | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.140 | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.ASAN | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.VC.ATL | 16.4.29313.120 |
-| Microsoft.VisualStudio.Component.VC.ATL.ARM | 16.4.29313.120 |
-| Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre | 16.5.29721.120 |
-| Microsoft.VisualStudio.Component.VC.ATL.ARM64 | 16.4.29313.120 |
-| Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.VC.ATL.Spectre | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.VC.ATLMFC | 16.4.29313.120 |
-| Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre | 16.5.29721.120 |
-| Microsoft.VisualStudio.Component.VC.CLI.Support | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.CMake.Project | 16.3.29103.31 |
-| Microsoft.VisualStudio.Component.VC.CoreIde | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.DiagnosticTools | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.VC.Llvm.Clang | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset | 16.3.29207.166 |
-| Microsoft.VisualStudio.Component.VC.MFC.ARM | 16.4.29313.120 |
-| Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre | 16.5.29721.120 |
-| Microsoft.VisualStudio.Component.VC.MFC.ARM64 | 16.4.29313.120 |
-| Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre | 16.5.29721.120 |
-| Microsoft.VisualStudio.Component.VC.Redist.14.Latest | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.VC.Redist.MSM | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest | 16.0.28517.75 |
-| Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest | 16.0.28517.75 |
-| Microsoft.VisualStudio.Component.VC.Tools.ARM | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.v141.ARM | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.v141.ARM.Spectre | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.VC.v141.ARM64 | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.v141.ARM64.Spectre | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.VC.v141.ATL | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.VC.v141.ATL.ARM.Spectre | 16.5.29721.120 |
-| Microsoft.VisualStudio.Component.VC.v141.ATL.ARM64.Spectre | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.VC.v141.ATL.Spectre | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.VC.v141.MFC | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.VC.v141.MFC.ARM.Spectre | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.VC.v141.MFC.ARM64.Spectre | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.VC.v141.x86.x64 | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.VC.v141.x86.x64.Spectre | 16.5.29515.121 |
-| Microsoft.VisualStudio.Component.VSSDK | 16.0.28315.86 |
-| Microsoft.VisualStudio.Component.Wcf.Tooling | 16.0.28625.61 |
-| Microsoft.VisualStudio.Component.Web | 16.0.28517.75 |
-| Microsoft.VisualStudio.Component.WebDeploy | 16.0.28517.75 |
-| Microsoft.VisualStudio.Component.Windows10SDK | 16.4.29409.204 |
-| Microsoft.VisualStudio.Component.Windows10SDK.16299 | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.Windows10SDK.17134 | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.Windows10SDK.17763 | 16.0.28517.75 |
-| Microsoft.VisualStudio.Component.Windows10SDK.18362 | 16.1.28829.92 |
-| Microsoft.VisualStudio.Component.Windows10SDK.19041 | 16.7.30310.162 |
-| Microsoft.VisualStudio.Component.WinXP | 16.1.28811.260 |
-| Microsoft.VisualStudio.Component.Workflow | 16.0.28315.86 |
-| Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native | 16.0.28621.142 |
-| Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices | 16.4.29409.204 |
-| Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites | 16.7.30310.162 |
-| Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools | 16.0.28528.71 |
-| Microsoft.VisualStudio.ComponentGroup.AzureFunctions | 16.0.28621.142 |
-| Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging | 16.7.30310.162 |
-| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 16.2.29012.281 |
-| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 16.7.30310.162 |
-| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 16.3.29102.218 |
-| Microsoft.VisualStudio.ComponentGroup.UWP.Support | 16.4.29409.204 |
-| Microsoft.VisualStudio.ComponentGroup.UWP.Xamarin | 16.5.29514.35 |
-| Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites | 16.4.29318.151 |
-| Microsoft.VisualStudio.ComponentGroup.Web | 16.4.29318.151 |
-| Microsoft.VisualStudio.ComponentGroup.Web.CloudTools | 16.2.29003.222 |
-| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 16.7.30310.162 |
-| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake | 16.3.29207.166 |
-| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 16.0.28315.86 |
-| Microsoft.VisualStudio.Workload.Azure | 16.4.29409.204 |
-| Microsoft.VisualStudio.Workload.CoreEditor | 16.0.28315.86 |
-| Microsoft.VisualStudio.Workload.Data | 16.0.28720.110 |
-| Microsoft.VisualStudio.Workload.DataScience | 16.0.28720.110 |
-| Microsoft.VisualStudio.Workload.ManagedDesktop | 16.7.30310.162 |
-| Microsoft.VisualStudio.Workload.ManagedGame | 16.5.29514.35 |
-| Microsoft.VisualStudio.Workload.NativeCrossPlat | 16.4.29409.204 |
-| Microsoft.VisualStudio.Workload.NativeDesktop | 16.5.29514.35 |
-| Microsoft.VisualStudio.Workload.NativeGame | 16.5.29514.35 |
-| Microsoft.VisualStudio.Workload.NativeMobile | 16.5.29514.35 |
-| Microsoft.VisualStudio.Workload.NetCoreTools | 16.7.30310.162 |
-| Microsoft.VisualStudio.Workload.NetCrossPlat | 16.5.29514.35 |
-| Microsoft.VisualStudio.Workload.NetWeb | 16.4.29409.204 |
-| Microsoft.VisualStudio.Workload.Node | 16.1.28825.262 |
-| Microsoft.VisualStudio.Workload.Office | 16.3.29207.166 |
-| Microsoft.VisualStudio.Workload.Python | 16.0.28621.142 |
-| Microsoft.VisualStudio.Workload.Universal | 16.7.30310.162 |
-| Microsoft.VisualStudio.Workload.VisualStudioExtension | 16.4.29409.204 |
-| SSDT Microsoft Analysis Services Projects | 2.9.12 |
-| SSDT SQL Server Integration Services Projects | 3.9 |
-| SSDT Microsoft Reporting Services Projects | 2.6.7 |
-| Windows Driver Kit | 3.11.4516 |
-| Windows Driver Kit Visual Studio Extension | 10.1.19041.1 |
-| WIX Toolset | 3.11.4516 |
-| WIX Toolset Studio 2019 Extension | 1.0.0.4 |
-
-#### Microsoft Visual C++:
-
-| Name | Architecture | Version |
-| -------------------------------------------- | ------------ | ----------- |
-| Microsoft Visual C++ 2010 Redistributable | x64 | 10.0.40219 |
-| Microsoft Visual C++ 2010 Redistributable | x86 | 10.0.40219 |
-| Microsoft Visual C++ 2012 Additional Runtime | x64 | 11.0.61030 |
-| Microsoft Visual C++ 2012 Minimum Runtime | x64 | 11.0.61030 |
-| Microsoft Visual C++ 2013 Additional Runtime | x64 | 12.0.40660 |
-| Microsoft Visual C++ 2013 Minimum Runtime | x64 | 12.0.40660 |
-| Microsoft Visual C++ 2013 Additional Runtime | x86 | 12.0.21005 |
-| Microsoft Visual C++ 2013 Minimum Runtime | x86 | 12.0.21005 |
-| Microsoft Visual C++ 2019 Additional Runtime | x64 | 14.27.29016 |
-| Microsoft Visual C++ 2019 Debug Runtime | x64 | 14.27.29016 |
-| Microsoft Visual C++ 2019 Minimum Runtime | x64 | 14.27.29016 |
-| Microsoft Visual C++ 2019 Additional Runtime | x86 | 14.27.29016 |
-| Microsoft Visual C++ 2019 Debug Runtime | x86 | 14.27.29016 |
-| Microsoft Visual C++ 2019 Minimum Runtime | x86 | 14.27.29016 |
-
-### .NET Core SDK
-`Location C:\Program Files\dotnet\sdk`
-- 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401
-
-### .NET Core Runtime
-`Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All`
-- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21
-
-`Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App`
-- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7
-
-`Location: C:\Program Files\dotnet\shared\Microsoft.NETCore.App`
-- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7
-
-`Location: C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App`
-- 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7
-
-### .NET Framework
-`Type: Developer Pack`
-`Location C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX Tools`
-- 4.7.2 4.8
-
-### PowerShell Tools
-- PowerShell 7.0.3
-
-#### Azure Powershell Modules
-| Module | Version | Path |
-| ------- | ----------------------------------------------------------------------------- | ------------------------------ |
-| Az | 1.0.0
1.6.0
2.3.2
2.6.0
3.1.0
3.5.0
3.8.0
4.3.0
4.4.0 | C:\Modules\az_\ |
-| Azure | 2.1.0 [Installed]
3.8.0
4.2.1
5.1.1
5.3.0 | C:\Modules\azure_\ |
-| AzureRM | 2.1.0 [Installed]
3.8.0
4.2.1
5.1.1
6.7.0
6.13.1 | C:\Modules\azurerm_\ |
+```
+
+#### Go
+| Version | Architecture | Environment Variable |
+| ------- | ------------ | -------------------- |
+| 1.9.7 | x64 | GOROOT_1_9_X64 |
+| 1.10.8 | x64 | GOROOT_1_10_X64 |
+| 1.11.13 | x64 | GOROOT_1_11_X64 |
+| 1.12.17 | x64 | GOROOT_1_12_X64 |
+| 1.13.15 | x64 | GOROOT_1_13_X64 |
+| 1.14.9 (Default) | x64 | GOROOT_1_14_X64 |
+| 1.15.2 | x64 | GOROOT_1_15_X64 |
+
+
+#### Node
+| Version | Architecture |
+| ------- | ------------ |
+| 8.17.0 | x64 |
+| 10.22.1 | x64 |
+| 12.19.0 | x64 |
+| 14.13.1 | x64 |
+
+
+#### Python
+| Version | Architecture |
+| ------- | ------------ |
+| 2.7.18 | x64, x86 |
+| 3.5.4 | x64, x86 |
+| 3.6.8 | x64, x86 |
+| 3.7.9 (Default) | x64, x86 |
+| 3.8.6 | x64, x86 |
+
+
+#### Ruby
+| Version | Architecture |
+| ------- | ------------ |
+| 2.4.10 | x64 |
+| 2.5.8 (Default) | x64 |
+| 2.6.6 | x64 |
+| 2.7.1 | x64 |
+
+
+#### PyPy
+| Python Version | Architecture | PyPy Version |
+| -------------- | ------------ | ------------ |
+| 2.7.13 | x86 | PyPy 7.3.2 with MSC v.1927 32 bit |
+| 3.6.9 | x86 | PyPy 7.3.2 with MSC v.1927 32 bit |
+
+
+
+### Databases
+#### PostgreSQL
+| Property | Value |
+| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
+| ServiceName | postgresql-x64-13 |
+| Version | 13.0 |
+| ServiceStatus | Stopped |
+| ServiceStartType | Disabled |
+| EnvironmentVariables | PGBIN=C:\Program Files\PostgreSQL\13\bin
PGDATA=C:\Program Files\PostgreSQL\13\data
PGROOT=C:\Program Files\PostgreSQL\13 |
+| Path | C:\Program Files\PostgreSQL\13 |
+| UserName | postgres |
+| Password | root |
+
+
+#### MongoDB
+| Version | ServiceName | ServiceStatus | ServiceStartType |
+| ------- | ----------- | ------------- | ---------------- |
+| 4.4.1.0 | MongoDB | Running | Automatic |
+
+
+
+### Database tools
+- Azure CosmosDb Emulator 2.11.6.0
+- SQLPS 1.0
+- MySQL 5.7.21.0
+
+
+### Visual Studio Enterprise 2019
+| Name | Version | Path |
+| ----------------------------- | -------------- | -------------------------------------------------------------- |
+| Visual Studio Enterprise 2019 | 16.7.30523.141 | C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise |
+
+#### Workloads, components and extensions:
+
+| Package | Version |
+| ------------------------------------------------------------------------- | -------------- |
+| Component.Android.NDK.R16B | 16.7.30521.138 |
+| Component.Android.SDK25.Private | 16.0.28625.61 |
+| Component.Android.SDK28 | 16.2.29003.222 |
+| Component.Ant | 1.9.3.8 |
+| Component.Dotfuscator | 16.0.28528.71 |
+| Component.Linux.CMake | 16.2.29003.222 |
+| Component.MDD.Android | 16.0.28517.75 |
+| Component.MDD.Linux | 16.5.29515.121 |
+| Component.MDD.Linux.GCC.arm | 16.5.29515.121 |
+| Component.Microsoft.VisualStudio.LiveShare | 1.0.2518 |
+| Component.Microsoft.VisualStudio.RazorExtension | 16.0.28714.129 |
+| Component.Microsoft.VisualStudio.Tools.Applications | 16.0.29425.2 |
+| Component.Microsoft.VisualStudio.Web.AzureFunctions | 16.0.28714.129 |
+| Component.Microsoft.Web.LibraryManager | 16.0.28315.86 |
+| Component.Microsoft.Windows.DriverKit | 10.0.19030.0 |
+| Component.OpenJDK | 16.1.28811.260 |
+| Component.UnityEngine.x64 | 16.7.30310.162 |
+| Component.Unreal | 16.1.28810.153 |
+| Component.Unreal.Android | 16.1.28810.153 |
+| Component.VSInstallerProjects | 0.9.9 |
+| Component.WixToolset.VisualStudioExtension.Dev16 | 1.0.0.4 |
+| Component.WixToolset.VisualStudioExtension.Schemas3 | 1.0.0.4 |
+| Component.WixToolset.VisualStudioExtension.Schemas4 | 1.0.0.4 |
+| Component.Xamarin | 16.7.30310.162 |
+| Component.Xamarin.RemotedSimulator | 16.0.28315.86 |
+| Microsoft.Component.Azure.DataLake.Tools | 16.7.30310.162 |
+| Microsoft.Component.ClickOnce | 16.4.29409.204 |
+| Microsoft.Component.MSBuild | 16.5.29515.121 |
+| Microsoft.Component.NetFX.Native | 16.5.29515.121 |
+| Microsoft.Component.PythonTools | 16.5.29515.121 |
+| Microsoft.Component.PythonTools.Miniconda | 16.2.29003.222 |
+| Microsoft.Component.PythonTools.Web | 16.0.28517.75 |
+| Microsoft.Component.VC.Runtime.UCRTSDK | 16.0.28625.61 |
+| Microsoft.ComponentGroup.Blend | 16.0.28315.86 |
+| Microsoft.Net.Component.3.5.DeveloperTools | 16.0.28517.75 |
+| Microsoft.Net.Component.4.5.1.TargetingPack | 16.0.28517.75 |
+| Microsoft.Net.Component.4.5.2.TargetingPack | 16.0.28517.75 |
+| Microsoft.Net.Component.4.5.TargetingPack | 16.0.28517.75 |
+| Microsoft.Net.Component.4.6.1.TargetingPack | 16.0.28517.75 |
+| Microsoft.Net.Component.4.6.2.TargetingPack | 16.0.28517.75 |
+| Microsoft.Net.Component.4.6.TargetingPack | 16.0.28517.75 |
+| Microsoft.Net.Component.4.7.1.TargetingPack | 16.7.30310.162 |
+| Microsoft.Net.Component.4.7.2.SDK | 16.4.29409.204 |
+| Microsoft.Net.Component.4.7.2.TargetingPack | 16.7.30310.162 |
+| Microsoft.Net.Component.4.7.TargetingPack | 16.7.30310.162 |
+| Microsoft.Net.Component.4.8.SDK | 16.4.29313.120 |
+| Microsoft.Net.Component.4.TargetingPack | 16.0.28517.75 |
+| Microsoft.Net.ComponentGroup.4.6.2.DeveloperTools | 16.3.29207.166 |
+| Microsoft.Net.ComponentGroup.4.7.1.DeveloperTools | 16.3.29207.166 |
+| Microsoft.Net.ComponentGroup.4.7.DeveloperTools | 16.3.29207.166 |
+| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 16.3.29207.166 |
+| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 16.0.28516.191 |
+| Microsoft.Net.Core.Component.SDK.2.1 | 16.7.30428.286 |
+| Microsoft.NetCore.Component.DevelopmentTools | 16.5.29721.120 |
+| Microsoft.NetCore.Component.Runtime.3.1 | 16.7.30428.286 |
+| Microsoft.NetCore.Component.SDK | 16.7.30428.286 |
+| Microsoft.NetCore.Component.Web | 16.5.29721.120 |
+| Microsoft.VisualStudio.Component.AppInsights.Tools | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.AspNet45 | 16.0.28315.86 |
+| Microsoft.VisualStudio.Component.Azure.AuthoringTools | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.Azure.ClientLibs | 16.0.28315.86 |
+| Microsoft.VisualStudio.Component.Azure.Compute.Emulator | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.Azure.Kubernetes.Tools | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.Azure.Powershell | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.Azure.ResourceManager.Tools | 16.4.29409.204 |
+| Microsoft.VisualStudio.Component.Azure.ServiceFabric.Tools | 16.4.29313.120 |
+| Microsoft.VisualStudio.Component.Azure.Storage.AzCopy | 16.0.28517.75 |
+| Microsoft.VisualStudio.Component.Azure.Storage.Emulator | 16.4.29313.120 |
+| Microsoft.VisualStudio.Component.Azure.Waverton | 16.4.29409.204 |
+| Microsoft.VisualStudio.Component.Azure.Waverton.BuildTools | 16.3.29207.166 |
+| Microsoft.VisualStudio.Component.ClassDesigner | 16.0.28528.71 |
+| Microsoft.VisualStudio.Component.CloudExplorer | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.CodeMap | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.Common.Azure.Tools | 16.4.29409.204 |
+| Microsoft.VisualStudio.Component.CoreEditor | 16.1.28811.260 |
+| Microsoft.VisualStudio.Component.Debugger.JustInTime | 16.0.28517.75 |
+| Microsoft.VisualStudio.Component.Debugger.Snapshot | 16.5.29813.82 |
+| Microsoft.VisualStudio.Component.Debugger.TimeTravel | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.DiagnosticTools | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.DockerTools | 16.4.29409.204 |
+| Microsoft.VisualStudio.Component.DotNetModelBuilder | 16.7.30322.227 |
+| Microsoft.VisualStudio.Component.DslTools | 16.0.28315.86 |
+| Microsoft.VisualStudio.Component.EntityFramework | 16.0.28315.86 |
+| Microsoft.VisualStudio.Component.FSharp | 16.0.28315.86 |
+| Microsoft.VisualStudio.Component.FSharp.Desktop | 16.0.28315.86 |
+| Microsoft.VisualStudio.Component.FSharp.WebTemplates | 16.3.29207.166 |
+| Microsoft.VisualStudio.Component.GraphDocument | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.Graphics | 16.0.28517.75 |
+| Microsoft.VisualStudio.Component.Graphics.Tools | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.IISExpress | 16.0.28315.86 |
+| Microsoft.VisualStudio.Component.IntelliCode | 0.2 |
+| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 16.0.28517.75 |
+| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.LinqToSql | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.LiveUnitTesting | 16.1.28811.260 |
+| Microsoft.VisualStudio.Component.ManagedDesktop.Core | 16.4.29318.151 |
+| Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.Merq | 16.2.29012.281 |
+| Microsoft.VisualStudio.Component.MonoDebugger | 16.0.28517.75 |
+| Microsoft.VisualStudio.Component.MSODBC.SQL | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils | 16.0.28707.177 |
+| Microsoft.VisualStudio.Component.Node.Tools | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.NuGet | 16.1.28829.92 |
+| Microsoft.VisualStudio.Component.NuGet.BuildTools | 16.1.28829.92 |
+| Microsoft.VisualStudio.Component.PortableLibrary | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.Roslyn.Compiler | 16.0.28714.129 |
+| Microsoft.VisualStudio.Component.Roslyn.LanguageServices | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.Sharepoint.Tools | 16.4.29409.204 |
+| Microsoft.VisualStudio.Component.SQL.ADAL | 16.0.28517.75 |
+| Microsoft.VisualStudio.Component.SQL.CLR | 16.0.28315.86 |
+| Microsoft.VisualStudio.Component.SQL.DataSources | 16.0.28315.86 |
+| Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.SQL.SSDT | 16.3.29207.166 |
+| Microsoft.VisualStudio.Component.TeamOffice | 16.4.29409.204 |
+| Microsoft.VisualStudio.Component.TestTools.CodedUITest | 16.0.28327.66 |
+| Microsoft.VisualStudio.Component.TestTools.WebLoadTest | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.TextTemplating | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.TypeScript.3.9 | 16.0.30322.227 |
+| Microsoft.VisualStudio.Component.Unity | 16.0.28315.86 |
+| Microsoft.VisualStudio.Component.UWP.VC.ARM64 | 16.3.29207.166 |
+| Microsoft.VisualStudio.Component.VC.14.25.x86.x64 | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.140 | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.ASAN | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.VC.ATL | 16.4.29313.120 |
+| Microsoft.VisualStudio.Component.VC.ATL.ARM | 16.4.29313.120 |
+| Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre | 16.5.29721.120 |
+| Microsoft.VisualStudio.Component.VC.ATL.ARM64 | 16.4.29313.120 |
+| Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.VC.ATL.Spectre | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.VC.ATLMFC | 16.4.29313.120 |
+| Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre | 16.5.29721.120 |
+| Microsoft.VisualStudio.Component.VC.CLI.Support | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.CMake.Project | 16.3.29103.31 |
+| Microsoft.VisualStudio.Component.VC.CoreIde | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.DiagnosticTools | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.VC.Llvm.Clang | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset | 16.3.29207.166 |
+| Microsoft.VisualStudio.Component.VC.MFC.ARM | 16.4.29313.120 |
+| Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre | 16.5.29721.120 |
+| Microsoft.VisualStudio.Component.VC.MFC.ARM64 | 16.4.29313.120 |
+| Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre | 16.5.29721.120 |
+| Microsoft.VisualStudio.Component.VC.Redist.14.Latest | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.VC.Redist.MSM | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest | 16.0.28517.75 |
+| Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest | 16.0.28517.75 |
+| Microsoft.VisualStudio.Component.VC.Tools.ARM | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.Tools.ARM64 | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.v141.ARM | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.v141.ARM.Spectre | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.VC.v141.ARM64 | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.v141.ARM64.Spectre | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.VC.v141.ATL | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.VC.v141.ATL.ARM.Spectre | 16.5.29721.120 |
+| Microsoft.VisualStudio.Component.VC.v141.ATL.ARM64.Spectre | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.VC.v141.ATL.Spectre | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.VC.v141.MFC | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.VC.v141.MFC.ARM.Spectre | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.VC.v141.MFC.ARM64.Spectre | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.VC.v141.MFC.Spectre | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.VC.v141.x86.x64 | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.VC.v141.x86.x64.Spectre | 16.5.29515.121 |
+| Microsoft.VisualStudio.Component.VSSDK | 16.0.28315.86 |
+| Microsoft.VisualStudio.Component.Wcf.Tooling | 16.0.28625.61 |
+| Microsoft.VisualStudio.Component.Web | 16.0.28517.75 |
+| Microsoft.VisualStudio.Component.WebDeploy | 16.0.28517.75 |
+| Microsoft.VisualStudio.Component.Windows10SDK | 16.4.29409.204 |
+| Microsoft.VisualStudio.Component.Windows10SDK.16299 | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.Windows10SDK.17134 | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.Windows10SDK.17763 | 16.0.28517.75 |
+| Microsoft.VisualStudio.Component.Windows10SDK.18362 | 16.1.28829.92 |
+| Microsoft.VisualStudio.Component.Windows10SDK.19041 | 16.7.30310.162 |
+| Microsoft.VisualStudio.Component.WinXP | 16.1.28811.260 |
+| Microsoft.VisualStudio.Component.Workflow | 16.0.28315.86 |
+| Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Native | 16.0.28621.142 |
+| Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices | 16.4.29409.204 |
+| Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites | 16.7.30310.162 |
+| Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools | 16.0.28528.71 |
+| Microsoft.VisualStudio.ComponentGroup.AzureFunctions | 16.0.28621.142 |
+| Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging | 16.7.30310.162 |
+| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 16.2.29012.281 |
+| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 16.7.30310.162 |
+| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 16.3.29102.218 |
+| Microsoft.VisualStudio.ComponentGroup.UWP.Support | 16.4.29409.204 |
+| Microsoft.VisualStudio.ComponentGroup.UWP.VC | 16.7.30310.162 |
+| Microsoft.VisualStudio.ComponentGroup.UWP.Xamarin | 16.5.29514.35 |
+| Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites | 16.4.29318.151 |
+| Microsoft.VisualStudio.ComponentGroup.Web | 16.4.29318.151 |
+| Microsoft.VisualStudio.ComponentGroup.Web.CloudTools | 16.2.29003.222 |
+| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions | 16.7.30310.162 |
+| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake | 16.3.29207.166 |
+| Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.TemplateEngine | 16.0.28315.86 |
+| Microsoft.VisualStudio.Workload.Azure | 16.4.29409.204 |
+| Microsoft.VisualStudio.Workload.CoreEditor | 16.0.28315.86 |
+| Microsoft.VisualStudio.Workload.Data | 16.0.28720.110 |
+| Microsoft.VisualStudio.Workload.DataScience | 16.0.28720.110 |
+| Microsoft.VisualStudio.Workload.ManagedDesktop | 16.7.30310.162 |
+| Microsoft.VisualStudio.Workload.ManagedGame | 16.5.29514.35 |
+| Microsoft.VisualStudio.Workload.NativeCrossPlat | 16.4.29409.204 |
+| Microsoft.VisualStudio.Workload.NativeDesktop | 16.5.29514.35 |
+| Microsoft.VisualStudio.Workload.NativeGame | 16.5.29514.35 |
+| Microsoft.VisualStudio.Workload.NativeMobile | 16.5.29514.35 |
+| Microsoft.VisualStudio.Workload.NetCoreTools | 16.7.30310.162 |
+| Microsoft.VisualStudio.Workload.NetCrossPlat | 16.5.29514.35 |
+| Microsoft.VisualStudio.Workload.NetWeb | 16.4.29409.204 |
+| Microsoft.VisualStudio.Workload.Node | 16.1.28825.262 |
+| Microsoft.VisualStudio.Workload.Office | 16.3.29207.166 |
+| Microsoft.VisualStudio.Workload.Python | 16.0.28621.142 |
+| Microsoft.VisualStudio.Workload.Universal | 16.7.30310.162 |
+| Microsoft.VisualStudio.Workload.VisualStudioExtension | 16.4.29409.204 |
+| SSDT Microsoft Analysis Services Projects | 2.9.14 |
+| SSDT SQL Server Integration Services Projects | 3.10 |
+| SSDT Microsoft Reporting Services Projects | 2.6.7 |
+| Windows Driver Kit | 3.11.4516 |
+| Windows Driver Kit Visual Studio Extension | 10.1.19041.1 |
+| WIX Toolset | 3.11.4516 |
+| WIX Toolset Studio 2019 Extension | 1.0.0.4 |
+
+#### Microsoft Visual C++:
+
+| Name | Architecture | Version |
+| -------------------------------------------- | ------------ | ----------- |
+| Microsoft Visual C++ 2010 Redistributable | x64 | 10.0.40219 |
+| Microsoft Visual C++ 2010 Redistributable | x86 | 10.0.40219 |
+| Microsoft Visual C++ 2012 Additional Runtime | x64 | 11.0.61030 |
+| Microsoft Visual C++ 2012 Minimum Runtime | x64 | 11.0.61030 |
+| Microsoft Visual C++ 2013 Additional Runtime | x64 | 12.0.40660 |
+| Microsoft Visual C++ 2013 Minimum Runtime | x64 | 12.0.40660 |
+| Microsoft Visual C++ 2013 Additional Runtime | x86 | 12.0.21005 |
+| Microsoft Visual C++ 2013 Minimum Runtime | x86 | 12.0.21005 |
+| Microsoft Visual C++ 2019 Additional Runtime | x64 | 14.27.29112 |
+| Microsoft Visual C++ 2019 Debug Runtime | x64 | 14.27.29112 |
+| Microsoft Visual C++ 2019 Minimum Runtime | x64 | 14.27.29112 |
+| Microsoft Visual C++ 2019 Additional Runtime | x86 | 14.27.29112 |
+| Microsoft Visual C++ 2019 Debug Runtime | x86 | 14.27.29112 |
+| Microsoft Visual C++ 2019 Minimum Runtime | x86 | 14.27.29112 |
+
+### .NET Core SDK
+`Location C:\Program Files\dotnet\sdk`
+- 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402
+
+### .NET Core Runtime
+`Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All`
+- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22
+
+`Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App`
+- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
+
+`Location: C:\Program Files\dotnet\shared\Microsoft.NETCore.App`
+- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
+
+`Location: C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App`
+- 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8
+
+### .NET Framework
+`Type: Developer Pack`
+`Location C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX Tools`
+- 4.7.2 4.8
+
+### PowerShell Tools
+- PowerShell 7.0.3
+
+#### Azure Powershell Modules
+| Module | Version | Path |
+| ------- | ----------------------------------------------------------------------------------------------- | ------------------------------ |
+| Az | 1.0.0
1.6.0
2.3.2
2.6.0
3.1.0
3.5.0
3.8.0
4.3.0
4.4.0
4.6.0
4.7.0 | C:\Modules\az_\ |
+| Azure | 2.1.0 [Installed]
3.8.0
4.2.1
5.1.1
5.3.0 | C:\Modules\azure_\ |
+| AzureRM | 2.1.0 [Installed]
3.8.0
4.2.1
5.1.1
6.7.0
6.13.1 | C:\Modules\azurerm_\ |
```
Azure PowerShell module 2.1.0 and AzureRM PowerShell module 2.1.0 are installed
and are available via 'Get-Module -ListAvailable'.
All other versions are saved but not installed.
-```
-#### Powershell Modules
-| Module | Version |
-| ------------------ | ------------------ |
-| DockerMsftProvider | 1.0.0.8 |
-| MarkdownPS | 1.9 |
-| Pester | 3.4.0
5.0.3 |
-| PowerShellGet | 1.0.0.1
2.2.4.1 |
-| PSWindowsUpdate | 2.2.0.2 |
-| SqlServer | 21.1.18226 |
-| VSSetup | 2.2.16 |
-
-### Android SDK Tools
-| Package Name | Description |
-| -------------- | ------------------------------------------- |
-| platform-tools | Android SDK Platform-Tools, Revision 30.0.4 |
-| tools | Android SDK Tools 26.1.1, Revision 26.1.1 |
-
-### Android SDK Platforms
-`Location C:\Program Files (x86)\Android\android-sdk\platforms`
-| Package Name | Description |
-| ------------ | ------------------------------------------ |
-| android-19 | Android SDK Platform 19, Revision 4 |
-| android-21 | Android SDK Platform 21, Revision 2 |
-| android-22 | Android SDK Platform 22, Revision 2 |
-| android-23 | Android SDK Platform 23, Revision 3 |
-| android-24 | Android SDK Platform 24, Revision 2 |
-| android-25 | Android SDK Platform 25, Revision 3 |
-| android-26 | Android SDK Platform 26, Revision 2 |
-| android-27 | Android SDK Platform 27, Revision 3 |
-| android-28 | Android SDK Platform 28, rev 6, Revision 6 |
-| android-29 | Android SDK Platform 29, Revision 5 |
-| android-30 | Android SDK Platform 30, Revision 3 |
-
-### Android SDK Build-Tools
-`Location C:\Program Files (x86)\Android\android-sdk\build-tools`
-| Package Name | Description |
-| ------------------ | ---------------------------------------- |
-| build-tools-19.1.0 | Android SDK Build-Tools, Revision 19.1.0 |
-| build-tools-20.0.0 | Android SDK Build-Tools, Revision 20.0.0 |
-| build-tools-21.1.2 | Android SDK Build-Tools, Revision 21.1.2 |
-| build-tools-22.0.1 | Android SDK Build-Tools, Revision 22.0.1 |
-| build-tools-23.0.1 | Android SDK Build-Tools, Revision 23.0.1 |
-| build-tools-23.0.2 | Android SDK Build-Tools, Revision 23.0.2 |
-| build-tools-23.0.3 | Android SDK Build-Tools, Revision 23.0.3 |
-| build-tools-24.0.0 | Android SDK Build-Tools, Revision 24.0.0 |
-| build-tools-24.0.1 | Android SDK Build-Tools, Revision 24.0.1 |
-| build-tools-24.0.2 | Android SDK Build-Tools, Revision 24.0.2 |
-| build-tools-24.0.3 | Android SDK Build-Tools, Revision 24.0.3 |
-| build-tools-25.0.0 | Android SDK Build-Tools, Revision 25.0.0 |
-| build-tools-25.0.1 | Android SDK Build-Tools, Revision 25.0.1 |
-| build-tools-25.0.2 | Android SDK Build-Tools, Revision 25.0.2 |
-| build-tools-25.0.3 | Android SDK Build-Tools, Revision 25.0.3 |
-| build-tools-26.0.0 | Android SDK Build-Tools, Revision 26.0.0 |
-| build-tools-26.0.1 | Android SDK Build-Tools, Revision 26.0.1 |
-| build-tools-26.0.2 | Android SDK Build-Tools, Revision 26.0.2 |
-| build-tools-26.0.3 | Android SDK Build-Tools, Revision 26.0.3 |
-| build-tools-27.0.0 | Android SDK Build-Tools, Revision 27.0.0 |
-| build-tools-27.0.1 | Android SDK Build-Tools, Revision 27.0.1 |
-| build-tools-27.0.2 | Android SDK Build-Tools, Revision 27.0.2 |
-| build-tools-27.0.3 | Android SDK Build-Tools, Revision 27.0.3 |
-| build-tools-28.0.0 | Android SDK Build-Tools, Revision 28.0.0 |
-| build-tools-28.0.1 | Android SDK Build-Tools, Revision 28.0.1 |
-| build-tools-28.0.2 | Android SDK Build-Tools, Revision 28.0.2 |
-| build-tools-28.0.3 | Android SDK Build-Tools, Revision 28.0.3 |
-| build-tools-29.0.0 | Android SDK Build-Tools, Revision 29.0.0 |
-| build-tools-29.0.1 | Android SDK Build-Tools, Revision 29.0.1 |
-| build-tools-29.0.2 | Android SDK Build-Tools, Revision 29.0.2 |
-| build-tools-29.0.3 | Android SDK Build-Tools, Revision 29.0.3 |
-| build-tools-30.0.0 | Android SDK Build-Tools, Revision 30.0.0 |
-| build-tools-30.0.1 | Android SDK Build-Tools, Revision 30.0.1 |
-| build-tools-30.0.2 | Android SDK Build-Tools, Revision 30.0.2 |
-
-### Android Extra Packages
-| Package Name | Version |
-| -------------------------- | ------------ |
-| Android Support Repository | 47.0.0 |
-| Google Play services | 49 |
-| Google Repository | 58 |
-| NDK | 21.3.6528147 |
-
-### Cached Docker images
-- mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
-- mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019
-- mcr.microsoft.com/windows/servercore:ltsc2019
-- mcr.microsoft.com/windows/nanoserver:1809
-- microsoft/aspnetcore-build:1.0-2.0
-
-
+```
+#### Powershell Modules
+| Module | Version |
+| ------------------ | --------------------------- |
+| DockerMsftProvider | 1.0.0.8 |
+| MarkdownPS | 1.9 |
+| Pester | 3.4.0
5.0.4 |
+| PowerShellGet | 1.0.0.1
2.2.4.1
2.2.5 |
+| PSWindowsUpdate | 2.2.0.2 |
+| SqlServer | 21.1.18228 |
+| VSSetup | 2.2.16 |
+
+### Android
+| Package Name | Version |
+| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| Android SDK Platform-Tools | 30.0.4 |
+| Android SDK Tools | 26.1.1 |
+| Android SDK Platforms | android-30 (rev 3)
android-29 (rev 5)
android-28 (rev 6)
android-27 (rev 3)
android-26 (rev 2)
android-25 (rev 3)
android-24 (rev 2)
android-23 (rev 3)
android-22 (rev 2)
android-21 (rev 2)
android-20 (rev 2)
android-19 (rev 4) |
+| Android SDK Build-tools | 30.0.0 30.0.1 30.0.2
29.0.0 29.0.1 29.0.2 29.0.3
28.0.0 28.0.1 28.0.2 28.0.3
27.0.0 27.0.1 27.0.2 27.0.3
26.0.0 26.0.1 26.0.2 26.0.3
25.0.0 25.0.1 25.0.2 25.0.3
24.0.0 24.0.1 24.0.2 24.0.3
23.0.1 23.0.2 23.0.3
22.0.1
21.1.2
20.0.0
19.1.0 |
+| NDK | 21.3.6528147 |
+| Android Support Repository | 47.0.0 |
+| Google APIs | addon-google_apis-google-21
addon-google_apis-google-22
addon-google_apis-google-23
addon-google_apis-google-24 |
+| Google Play services | 49 |
+| Google Repository | 58 |
+| SDK Patch Applier v4 | 1 |
+| CMake | 3.10.2
3.6.4111459 |
+
+### Cached Docker images
+- mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
+- mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019
+- mcr.microsoft.com/windows/servercore:ltsc2019
+- mcr.microsoft.com/windows/nanoserver:1809
+- microsoft/aspnetcore-build:1.0-2.0
+
+
diff --git a/images/win/post-generation/Choco.ps1 b/images/win/post-generation/Choco.ps1
new file mode 100644
index 00000000..3f8e7c8d
--- /dev/null
+++ b/images/win/post-generation/Choco.ps1
@@ -0,0 +1,2 @@
+# Step to avoid initial delay for choco scripts
+choco upgrade chocolatey
\ No newline at end of file
diff --git a/images/win/post-generation/Dotnet.ps1 b/images/win/post-generation/Dotnet.ps1
new file mode 100644
index 00000000..fd43757a
--- /dev/null
+++ b/images/win/post-generation/Dotnet.ps1
@@ -0,0 +1,8 @@
+$latestPath = [System.Environment]::GetEnvironmentVariable('PATH', [System.EnvironmentVariableTarget]::Machine)
+$dotnetPath = "$env:USERPROFILE\.dotnet\tools"
+
+if (-not $latestPath.Contains($dotnetPath))
+{
+ $latestPath = "$dotnetPath;$latestPath"
+ [System.Environment]::SetEnvironmentVariable('PATH', $latestPath, [System.EnvironmentVariableTarget]::Machine)
+}
\ No newline at end of file
diff --git a/images/win/post-generation/RustJunction.ps1 b/images/win/post-generation/RustJunction.ps1
new file mode 100644
index 00000000..86f3fc10
--- /dev/null
+++ b/images/win/post-generation/RustJunction.ps1
@@ -0,0 +1,12 @@
+# Create Rust junction points to cargo and rustup folder
+$cargoTarget = "$env:USERPROFILE\.cargo"
+if (-not (Test-Path $cargoTarget))
+{
+ New-Item -ItemType Junction -Path $cargoTarget -Target "C:\Rust\.cargo"
+}
+
+$rustupTarget = "$env:USERPROFILE\.rustup"
+if (-not (Test-Path $rustupTarget))
+{
+ New-Item -ItemType Junction -Path $rustupTarget -Target "C:\Rust\.rustup"
+}
\ No newline at end of file
diff --git a/images/win/post-generation/VSConfiguration.ps1 b/images/win/post-generation/VSConfiguration.ps1
new file mode 100644
index 00000000..0ff9d7bf
--- /dev/null
+++ b/images/win/post-generation/VSConfiguration.ps1
@@ -0,0 +1,4 @@
+$vsInstallRoot = Get-VisualStudioPath
+$devEnvPath = "$vsInstallRoot\Common7\IDE\devenv.exe"
+
+cmd.exe /c "`"$devEnvPath`" /updateconfiguration"
\ No newline at end of file
diff --git a/images/win/scripts/ImageHelpers/ImageHelpers.psm1 b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
index e150e1a1..1f52d22e 100644
--- a/images/win/scripts/ImageHelpers/ImageHelpers.psm1
+++ b/images/win/scripts/ImageHelpers/ImageHelpers.psm1
@@ -37,6 +37,9 @@ Export-ModuleMember -Function @(
'Get-VsCatalogJsonPath'
'Get-VisualStudioPath'
'Install-AndroidSDKPackages'
+ 'Get-AndroidPackages'
+ 'Get-AndroidPackagesByName'
+ 'Get-AndroidPackagesByVersion'
'Get-VisualStudioPackages'
'Get-VisualStudioComponents'
)
diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1
index 282c0376..aed13b99 100644
--- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1
+++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1
@@ -418,3 +418,41 @@ function Install-AndroidSDKPackages {
& $AndroidSDKManagerPath --sdk_root=$AndroidSDKRootPath "$PrefixPackageName$package"
}
}
+
+function Get-AndroidPackages {
+ Param
+ (
+ [Parameter(Mandatory=$true)]
+ [string]$AndroidSDKManagerPath
+ )
+
+ return (& $AndroidSDKManagerPath --list --verbose).Trim() | Foreach-Object { $_.Split()[0] } | Where-Object {$_}
+}
+
+function Get-AndroidPackagesByName {
+ Param (
+ [Parameter(Mandatory=$true)]
+ [string[]]$AndroidPackages,
+ [Parameter(Mandatory=$true)]
+ [string]$PrefixPackageName
+ )
+
+ return $AndroidPackages | Where-Object { "$_".StartsWith($PrefixPackageName) }
+}
+
+function Get-AndroidPackagesByVersion {
+ Param (
+ [Parameter(Mandatory=$true)]
+ [string[]]$AndroidPackages,
+ [Parameter(Mandatory=$true)]
+ [string]$PrefixPackageName,
+ [object]$MinimumVersion,
+ [char]$Delimiter,
+ [int]$Index = 0
+ )
+
+ $Type = $MinimumVersion.GetType()
+ $packagesByName = Get-AndroidPackagesByName -AndroidPackages $AndroidPackages -PrefixPackageName $PrefixPackageName
+ $packagesByVersion = $packagesByName | Where-Object { ($_.Split($Delimiter)[$Index] -as $Type) -ge $MinimumVersion }
+ return $packagesByVersion | Sort-Object { $_.Split($Delimiter)[$Index] -as $Type} -Unique
+}
diff --git a/images/win/scripts/ImageHelpers/VisualStudioHelpers.ps1 b/images/win/scripts/ImageHelpers/VisualStudioHelpers.ps1
index 0fd6bc8b..d5a5d59d 100644
--- a/images/win/scripts/ImageHelpers/VisualStudioHelpers.ps1
+++ b/images/win/scripts/ImageHelpers/VisualStudioHelpers.ps1
@@ -49,6 +49,13 @@ Function Install-VisualStudio
}
else
{
+ $setupErrorLogPath = "$env:TEMP\dd_setup_*_errors.log"
+ if (Test-Path -Path $setupErrorLogPath)
+ {
+ $logErrors = Get-Content -Path $setupErrorLogPath -Raw
+ Write-Host "$logErrors"
+ }
+
Write-Host "Non zero exit code returned by the installation process : $exitCode"
exit $exitCode
}
diff --git a/images/win/scripts/Installers/Configure-Toolset.ps1 b/images/win/scripts/Installers/Configure-Toolset.ps1
index a4fdba1f..9e067ade 100644
--- a/images/win/scripts/Installers/Configure-Toolset.ps1
+++ b/images/win/scripts/Installers/Configure-Toolset.ps1
@@ -27,10 +27,6 @@ Function Set-DefaultVariables
}
}
-$ErrorActionPreference = "Stop"
-
-Import-Module -Name ImageHelpers -Force -DisableNameChecking
-
# Define executables for cached tools
$toolsEnvironmentVariables = @{
Python = @{
diff --git a/images/win/scripts/Installers/Download-ToolCache.ps1 b/images/win/scripts/Installers/Download-ToolCache.ps1
index 6c93e380..8656fb6a 100644
--- a/images/win/scripts/Installers/Download-ToolCache.ps1
+++ b/images/win/scripts/Installers/Download-ToolCache.ps1
@@ -62,8 +62,6 @@ Function Set-DefaultRubyVersion {
Invoke-Expression "gem update --system"
}
-Import-Module -Name ImageHelpers -Force
-
$FeedPrefix = "https://npm.pkg.github.com"
$AccessToken = $env:GITHUB_FEED_TOKEN
diff --git a/images/win/scripts/Installers/Finalize-VM.ps1 b/images/win/scripts/Installers/Finalize-VM.ps1
index ab9e7080..4e7a260c 100644
--- a/images/win/scripts/Installers/Finalize-VM.ps1
+++ b/images/win/scripts/Installers/Finalize-VM.ps1
@@ -6,8 +6,6 @@
Write-Host "Cleanup WinSxS"
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
-$ErrorActionPreference = 'silentlycontinue'
-
Write-Host "Clean up various directories"
@(
"C:\\Recovery",
@@ -30,4 +28,5 @@ Write-Host "Clean up various directories"
$winInstallDir = "$env:windir\\Installer"
New-Item -Path $winInstallDir -ItemType Directory -Force
-$ErrorActionPreference = 'Continue'
+# Remove AllUsersAllHosts profile
+Remove-Item $profile.AllUsersAllHosts -Force
diff --git a/images/win/scripts/Installers/Initialize-VM.ps1 b/images/win/scripts/Installers/Initialize-VM.ps1
index bd4619ca..ad853bb7 100644
--- a/images/win/scripts/Installers/Initialize-VM.ps1
+++ b/images/win/scripts/Installers/Initialize-VM.ps1
@@ -30,6 +30,9 @@ function Disable-UserAccessControl {
Write-Host "User Access Control (UAC) has been disabled."
}
+# Enable $ErrorActionPreference='Stop' for AllUsersAllHosts
+Add-Content -Path $profile.AllUsersAllHosts -Value '$ErrorActionPreference="Stop"'
+
# Set TLS1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor "Tls12"
diff --git a/images/win/scripts/Installers/Install-AzureCosmosDbEmulator.ps1 b/images/win/scripts/Installers/Install-AzureCosmosDbEmulator.ps1
index 52c99f26..ba7922a7 100644
--- a/images/win/scripts/Installers/Install-AzureCosmosDbEmulator.ps1
+++ b/images/win/scripts/Installers/Install-AzureCosmosDbEmulator.ps1
@@ -3,8 +3,6 @@
## Desc: Install Azure CosmosDb Emulator
####################################################################################
-Import-Module -Name ImageHelpers -Force
-
$InstallerName = "AzureCosmosDBEmulator.msi"
$InstallerUrl = "https://aka.ms/cosmosdb-emulator"
diff --git a/images/win/scripts/Installers/Install-AzureDevSpacesCli.ps1 b/images/win/scripts/Installers/Install-AzureDevSpacesCli.ps1
new file mode 100644
index 00000000..5f37fc58
--- /dev/null
+++ b/images/win/scripts/Installers/Install-AzureDevSpacesCli.ps1
@@ -0,0 +1,10 @@
+################################################################################
+## File: Install-AzureDevSpacesCLI.ps1
+## Desc: Install Azure Dev Spaces CLI
+################################################################################
+
+# Install Azure Dev Spaces CLI
+Install-Binary -Url "https://aka.ms/get-azds-windows" -Name "Azure Dev Spaces CLI.exe" -ArgumentList ("/quiet")
+Add-MachinePathItem -PathItem "C:\Program Files\Microsoft SDKs\Azure\Azure Dev Spaces CLI"
+
+Invoke-PesterTests -TestFile "CLI.Tools" -TestName "Azure Dev Spaces CLI"
\ No newline at end of file
diff --git a/images/win/scripts/Installers/Install-AzureModules.ps1 b/images/win/scripts/Installers/Install-AzureModules.ps1
index d03100bd..a12dec60 100644
--- a/images/win/scripts/Installers/Install-AzureModules.ps1
+++ b/images/win/scripts/Installers/Install-AzureModules.ps1
@@ -3,8 +3,6 @@
## Desc: Install Azure PowerShell modules
################################################################################
-$ErrorActionPreference = "Stop"
-
# The correct Modules need to be saved in C:\Modules
$installPSModulePath = $env:PSMODULES_ROOT_FOLDER
if (-not (Test-Path -LiteralPath $installPSModulePath))
diff --git a/images/win/scripts/Installers/Install-Chrome.ps1 b/images/win/scripts/Installers/Install-Chrome.ps1
index 5e1d6ae4..790ec09f 100644
--- a/images/win/scripts/Installers/Install-Chrome.ps1
+++ b/images/win/scripts/Installers/Install-Chrome.ps1
@@ -3,8 +3,6 @@
## Desc: Install Google Chrome
################################################################################
-Import-Module -Name ImageHelpers -Force
-
# Download and install latest Chrome browser
$ChromeInstallerFile = "chrome_installer.exe"
$ChromeInstallerUrl = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}"
diff --git a/images/win/scripts/Installers/Install-CloudFoundryCli.ps1 b/images/win/scripts/Installers/Install-CloudFoundryCli.ps1
index 65831bd7..2bc7e4b0 100644
--- a/images/win/scripts/Installers/Install-CloudFoundryCli.ps1
+++ b/images/win/scripts/Installers/Install-CloudFoundryCli.ps1
@@ -3,8 +3,6 @@
## Desc: Install Cloud Foundry CLI
################################################################################
-Import-Module -Name ImageHelpers
-
# Download the latest cf cli exe
$CloudFoundryCliName = "cf-cli.zip"
$CloudFoundryCliUrl = "https://packages.cloudfoundry.org/stable?release=windows64-exe&source=github"
diff --git a/images/win/scripts/Installers/Install-CodeQLBundle.ps1 b/images/win/scripts/Installers/Install-CodeQLBundle.ps1
new file mode 100644
index 00000000..d9f27377
--- /dev/null
+++ b/images/win/scripts/Installers/Install-CodeQLBundle.ps1
@@ -0,0 +1,28 @@
+################################################################################
+## File: Install-CodeQLBundle.ps1
+## Desc: Install the CodeQL CLI Bundle to the toolcache.
+################################################################################
+
+# Retrieve the name of the CodeQL bundle preferred by the Action (in the format codeql-bundle-YYYYMMDD).
+$CodeQLBundleName = (Invoke-RestMethod "https://raw.githubusercontent.com/github/codeql-action/main/src/defaults.json").bundleVersion
+# Convert the bundle name to a version number (0.0.0-YYYYMMDD).
+$CodeQLBundleVersion = "0.0.0-" + $CodeQLBundleName.split("-")[-1]
+
+$ExtractionDirectory = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath $CodeQLBundleVersion | Join-Path -ChildPath "x64"
+New-Item -Path $ExtractionDirectory -ItemType Directory -Force | Out-Null
+
+Write-Host "Downloading CodeQL bundle $CodeQLBundleVersion..."
+$CodeQLBundlePath = Start-DownloadWithRetry -Url "https://github.com/github/codeql-action/releases/download/$CodeQLBundleName/codeql-bundle.tar.gz" -Name "codeql-bundle.tar.gz"
+$DownloadDirectoryPath = (Get-Item $CodeQLBundlePath).Directory.FullName
+Extract-7Zip -Path $CodeQLBundlePath -DestinationPath $DownloadDirectoryPath
+$UnGzipedCodeQLBundlePath = Join-Path $DownloadDirectoryPath "codeql-bundle.tar"
+Extract-7Zip -Path $UnGzipedCodeQLBundlePath -DestinationPath $ExtractionDirectory
+
+# Touch a special file that indicates to the CodeQL Action that this bundle was baked-in to the hosted runner images.
+New-Item -ItemType file (Join-Path $ExtractionDirectory -ChildPath "pinned-version")
+
+# Touch a file to indicate to the toolcache that setting up CodeQL is complete.
+New-Item -ItemType file "$ExtractionDirectory.complete"
+
+# Test that the tool has been extracted successfully.
+Invoke-PesterTests -TestFile "Tools" -TestName "CodeQLBundle"
diff --git a/images/win/scripts/Installers/Install-DACFx.ps1 b/images/win/scripts/Installers/Install-DACFx.ps1
index fb50af0d..a59466d7 100644
--- a/images/win/scripts/Installers/Install-DACFx.ps1
+++ b/images/win/scripts/Installers/Install-DACFx.ps1
@@ -1,12 +1,10 @@
####################################################################################
## File: Install-DACFx.ps1
-## Desc: Install SQL Server® Data-Tier Application Framework (DACFx) for Windows
+## Desc: Install SQL Server® Data-Tier Application Framework (DacFx) for Windows
####################################################################################
-Import-Module -Name ImageHelpers -Force
-
$InstallerName = "DacFramework.msi"
-$InstallerUrl = "https://go.microsoft.com/fwlink/?linkid=2134206"
+$InstallerUrl = "https://go.microsoft.com/fwlink/?linkid=2143544"
Install-Binary -Url $InstallerUrl -Name $InstallerName
diff --git a/images/win/scripts/Installers/Install-Edge.ps1 b/images/win/scripts/Installers/Install-Edge.ps1
index ebb7871b..1f4ce0ae 100644
--- a/images/win/scripts/Installers/Install-Edge.ps1
+++ b/images/win/scripts/Installers/Install-Edge.ps1
@@ -24,7 +24,14 @@ $EdgeDriverVersionFile = Start-DownloadWithRetry -Url $EdgeDriverVersionUrl -Nam
Write-Host "Download Microsoft Edge WebDriver..."
$EdgeDriverLatestVersion = Get-Content -Path $EdgeDriverVersionFile
$EdgeDriverArchName = "edgedriver_win64.zip"
-$EdgeDriverDownloadUrl="https://msedgedriver.azureedge.net/${EdgeDriverLatestVersion}/${EdgeDriverArchName}"
+# A temporary workaround to install the previous driver version because 85.0.564.60 for win64 doesn't exist
+if ($EdgeDriverLatestVersion -eq "85.0.564.60")
+{
+ $EdgeDriverLatestVersion = "85.0.564.51"
+ Set-Content -Path $EdgeDriverVersionFile -Value $EdgeDriverLatestVersion
+}
+
+$EdgeDriverDownloadUrl = "https://msedgedriver.azureedge.net/${EdgeDriverLatestVersion}/${EdgeDriverArchName}"
$EdgeDriverArchPath = Start-DownloadWithRetry -Url $EdgeDriverDownloadUrl -Name $EdgeDriverArchName
diff --git a/images/win/scripts/Installers/Install-Firefox.ps1 b/images/win/scripts/Installers/Install-Firefox.ps1
index 979a7b4b..f66a72e1 100644
--- a/images/win/scripts/Installers/Install-Firefox.ps1
+++ b/images/win/scripts/Installers/Install-Firefox.ps1
@@ -3,8 +3,6 @@
## Desc: Install Mozilla Firefox
################################################################################
-Import-Module -Name ImageHelpers -Force
-
# Install and configure Firefox browser
Write-Host "Install latest Firefox browser..."
$VersionsManifest = Invoke-RestMethod "https://product-details.mozilla.org/1.0/firefox_versions.json"
diff --git a/images/win/scripts/Installers/Install-Git.ps1 b/images/win/scripts/Installers/Install-Git.ps1
index 2a5ea925..27a61969 100644
--- a/images/win/scripts/Installers/Install-Git.ps1
+++ b/images/win/scripts/Installers/Install-Git.ps1
@@ -3,8 +3,6 @@
## Desc: Install Git for Windows
################################################################################
-Import-Module -Name ImageHelpers
-
function getSimpleValue([string] $url, [string] $filename ) {
$fullpath = "${env:Temp}\$filename"
Invoke-WebRequest -Uri $url -OutFile $fullpath
@@ -40,5 +38,13 @@ Choco-Install -PackageName hub
Add-MachinePathItem "C:\Program Files\Git\bin"
+if (Test-IsWin16) {
+ $env:Path += ";$env:ProgramFiles\Git\usr\bin\"
+}
+
+# Add well-known SSH host keys to ssh_known_hosts
+ssh-keyscan -t rsa github.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts"
+ssh-keyscan -t rsa ssh.dev.azure.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts"
+
Invoke-PesterTests -TestFile "Git" -TestName "Git"
Invoke-PesterTests -TestFile "CLI.Tools" -TestName "Hub CLI"
diff --git a/images/win/scripts/Installers/Install-GitHub-CLI.ps1 b/images/win/scripts/Installers/Install-GitHub-CLI.ps1
index 7891991d..1efb2f74 100644
--- a/images/win/scripts/Installers/Install-GitHub-CLI.ps1
+++ b/images/win/scripts/Installers/Install-GitHub-CLI.ps1
@@ -3,8 +3,14 @@
## Desc: Install GitHub CLI
################################################################################
-Choco-Install -PackageName gh
+Write-Host "Get the latest gh version..."
+
+$Name = "gh_windows_amd64.msi"
+$Assets = (Invoke-RestMethod -Uri "https://api.github.com/repos/cli/cli/releases/latest").assets
+$DownloadUrl = ($Assets.browser_download_url -match "windows_amd64.msi") | Select-Object -First 1
+
+Install-Binary -Url $DownloadUrl -Name $Name
Add-MachinePathItem "C:\Program Files (x86)\GitHub CLI"
-Invoke-PesterTests -TestFile "CLI.Tools" -TestName "GitHub CLI"
\ No newline at end of file
+Invoke-PesterTests -TestFile "CLI.Tools" -TestName "GitHub CLI"
diff --git a/images/win/scripts/Installers/Install-Haskell.ps1 b/images/win/scripts/Installers/Install-Haskell.ps1
index 459b74a5..18b256a3 100644
--- a/images/win/scripts/Installers/Install-Haskell.ps1
+++ b/images/win/scripts/Installers/Install-Haskell.ps1
@@ -4,7 +4,7 @@
################################################################################
# Get 3 latest versions of GHC
-[Version[]] $ChocoVersionsOutput = & choco search ghc --allversions --limit-output | Where-Object { $_.StartsWith("ghc|") } | ForEach-Object { $_.TrimStart("ghc|") }
+[Version[]] $ChocoVersionsOutput = & choco search ghc --allversions | Where-Object { $_.StartsWith("ghc ") -and $_ -match "Approved"} | ForEach-Object { [regex]::matches($_, "\d+(\.\d+){2,}").value }
$MajorMinorGroups = $ChocoVersionsOutput | Sort-Object -Descending | Group-Object { $_.ToString(2) } | Select-Object -First 3
$VersionsList = $MajorMinorGroups | ForEach-Object { $_.Group | Select-Object -First 1 } | Sort-Object
@@ -17,7 +17,8 @@ ForEach ($version in $VersionsList)
# Add default version of GHC to path, because choco formula updates path on user level
$DefaultGhcVersion = $VersionsList | Select-Object -Last 1
-$DefaultGhcPath = Join-Path $env:ChocolateyInstall "lib\ghc.$DefaultGhcVersion\tools\ghc-$DefaultGhcVersion\bin"
+$DefaultGhcShortVersion = ([version]$DefaultGhcVersion).ToString(3)
+$DefaultGhcPath = Join-Path $env:ChocolateyInstall "lib\ghc.$DefaultGhcVersion\tools\ghc-$DefaultGhcShortVersion\bin"
Add-MachinePathItem -PathItem $DefaultGhcPath
Write-Host "Installing cabal..."
diff --git a/images/win/scripts/Installers/Install-JavaTools.ps1 b/images/win/scripts/Installers/Install-JavaTools.ps1
index 04a56a91..4852f64c 100644
--- a/images/win/scripts/Installers/Install-JavaTools.ps1
+++ b/images/win/scripts/Installers/Install-JavaTools.ps1
@@ -3,8 +3,6 @@
## Desc: Install various JDKs and java tools
################################################################################
-Import-Module -Name ImageHelpers -Force
-
function Set-JavaPath {
param (
[string] $Version,
diff --git a/images/win/scripts/Installers/Install-Miniconda.ps1 b/images/win/scripts/Installers/Install-Miniconda.ps1
index 6f716b50..71706b3b 100644
--- a/images/win/scripts/Installers/Install-Miniconda.ps1
+++ b/images/win/scripts/Installers/Install-Miniconda.ps1
@@ -3,14 +3,10 @@
## Desc: Install the latest version of Miniconda and set $env:CONDA
################################################################################
-Import-Module -Name ImageHelpers -Force
-
$CondaDestination = "C:\Miniconda"
-# Lock to Miniconda 4.6 until we do the work to run `conda init` for the vsts user
-# Then we can go back to installing the latest Miniconda
-# $url = "https://repo.continuum.io/miniconda/Miniconda3-latest-Windows-x86_64.exe"
-$InstallerName = "Miniconda3-4.6.14-Windows-x86_64.exe"
+# Install the latest Miniconda
+$InstallerName = "Miniconda3-latest-Windows-x86_64.exe"
$InstallerUrl = "https://repo.continuum.io/miniconda/${InstallerName}"
$ArgumentList = ("/S", "/AddToPath=0", "/RegisterPython=0", "/D=$CondaDestination")
diff --git a/images/win/scripts/Installers/Install-NET48.ps1 b/images/win/scripts/Installers/Install-NET48.ps1
index ef343b53..ef26a3c0 100644
--- a/images/win/scripts/Installers/Install-NET48.ps1
+++ b/images/win/scripts/Installers/Install-NET48.ps1
@@ -3,8 +3,6 @@
## Desc: Install .NET 4.8
################################################################################
-Import-Module -Name ImageHelpers -Force
-
# .NET 4.8 Dev pack
$InstallerName = "ndp48-devpack-enu.exe"
$InstallerUrl = "https://download.visualstudio.microsoft.com/download/pr/014120d7-d689-4305-befd-3cb711108212/0307177e14752e359fde5423ab583e43/${InstallerName}"
diff --git a/images/win/scripts/Installers/Install-NodeLts.ps1 b/images/win/scripts/Installers/Install-NodeLts.ps1
index 8dc4559e..a44a04fb 100644
--- a/images/win/scripts/Installers/Install-NodeLts.ps1
+++ b/images/win/scripts/Installers/Install-NodeLts.ps1
@@ -4,8 +4,6 @@
## Must run after python is configured
################################################################################
-Import-Module -Name ImageHelpers -Force
-
$PrefixPath = 'C:\npm\prefix'
$CachePath = 'C:\npm\cache'
diff --git a/images/win/scripts/Installers/Install-PHP.ps1 b/images/win/scripts/Installers/Install-PHP.ps1
index a51c0e27..7e766bba 100644
--- a/images/win/scripts/Installers/Install-PHP.ps1
+++ b/images/win/scripts/Installers/Install-PHP.ps1
@@ -2,9 +2,6 @@
## File: Install-PHP.ps1
## Desc: Install PHP
################################################################################
-$ErrorActionPreference = "Stop"
-
-Import-Module -Name ImageHelpers
# Install latest PHP in chocolatey
$installDir = "c:\tools\php"
diff --git a/images/win/scripts/Installers/Install-PostgreSQL.ps1 b/images/win/scripts/Installers/Install-PostgreSQL.ps1
index 7d46d43e..0f88bb7f 100644
--- a/images/win/scripts/Installers/Install-PostgreSQL.ps1
+++ b/images/win/scripts/Installers/Install-PostgreSQL.ps1
@@ -1,5 +1,3 @@
-$ErrorActionPreference = "Stop"
-
#Define user and password for PostgreSQL database
$pgUser = "postgres"
$pgPwd = "root"
diff --git a/images/win/scripts/Installers/Install-PowerShellModules.ps1 b/images/win/scripts/Installers/Install-PowerShellModules.ps1
index f6cb22d0..f0afb9e6 100644
--- a/images/win/scripts/Installers/Install-PowerShellModules.ps1
+++ b/images/win/scripts/Installers/Install-PowerShellModules.ps1
@@ -1,5 +1,3 @@
-$ErrorActionPreference = "Stop"
-
# Set TLS1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor "Tls12"
diff --git a/images/win/scripts/Installers/Install-PyPy.ps1 b/images/win/scripts/Installers/Install-PyPy.ps1
index af1b1182..8b029f02 100644
--- a/images/win/scripts/Installers/Install-PyPy.ps1
+++ b/images/win/scripts/Installers/Install-PyPy.ps1
@@ -82,9 +82,6 @@ function Install-PyPy
}
}
-$ErrorActionPreference = "Stop"
-Import-Module -Name ImageHelpers -Force -DisableNameChecking
-
# Get PyPy content from toolset
$pypyTools = Get-ToolsetContent | Select-Object -ExpandProperty toolcache | Where-Object Name -eq "PyPy"
diff --git a/images/win/scripts/Installers/Install-Rust.ps1 b/images/win/scripts/Installers/Install-Rust.ps1
index 35e16dcd..294a1370 100644
--- a/images/win/scripts/Installers/Install-Rust.ps1
+++ b/images/win/scripts/Installers/Install-Rust.ps1
@@ -3,8 +3,6 @@
## Desc: Install Rust for Windows
################################################################################
-Import-Module -Name ImageHelpers
-
# Rust Env
$env:RUSTUP_HOME = "C:\Rust\.rustup"
$env:CARGO_HOME = "C:\Rust\.cargo"
diff --git a/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 b/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1
index 7c0a3cfd..60cbbefa 100644
--- a/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1
+++ b/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1
@@ -3,8 +3,6 @@
## Desc: Install SQL PowerShell tool
################################################################################
-Import-Module -Name ImageHelpers -Force
-
$BaseUrl = "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64"
# install required MSIs
diff --git a/images/win/scripts/Installers/Install-Sbt.ps1 b/images/win/scripts/Installers/Install-Sbt.ps1
index fc8b6a50..cfc37f5b 100644
--- a/images/win/scripts/Installers/Install-Sbt.ps1
+++ b/images/win/scripts/Installers/Install-Sbt.ps1
@@ -2,9 +2,6 @@
## File: Install-Sbt.ps1
## Desc: Install sbt for Windows
################################################################################
-$ErrorActionPreference = "Stop"
-
-Import-Module -Name ImageHelpers
# Install the latest version of sbt.
# See https://chocolatey.org/packages/sbt
diff --git a/images/win/scripts/Installers/Install-Selenium.ps1 b/images/win/scripts/Installers/Install-Selenium.ps1
index d49ad082..c1f2ce15 100644
--- a/images/win/scripts/Installers/Install-Selenium.ps1
+++ b/images/win/scripts/Installers/Install-Selenium.ps1
@@ -3,8 +3,6 @@
## Desc: Install Selenium Server standalone
################################################################################
-Import-Module -Name ImageHelpers -Force
-
# Acquire latest Selenium release number from GitHub API
$latestReleaseUrl = "https://api.github.com/repos/SeleniumHQ/selenium/releases/latest"
try {
diff --git a/images/win/scripts/Installers/Install-Toolset.ps1 b/images/win/scripts/Installers/Install-Toolset.ps1
index 42cdbaf2..5a8b3689 100644
--- a/images/win/scripts/Installers/Install-Toolset.ps1
+++ b/images/win/scripts/Installers/Install-Toolset.ps1
@@ -29,10 +29,6 @@ Function Install-Asset {
Pop-Location
}
-$ErrorActionPreference = "Stop"
-
-Import-Module -Name ImageHelpers -Force
-
# Get toolcache content from toolset
$ToolsToInstall = @("Python", "Node", "Boost", "Go")
diff --git a/images/win/scripts/Installers/Install-VS.ps1 b/images/win/scripts/Installers/Install-VS.ps1
index ed4fca73..4c1ce952 100644
--- a/images/win/scripts/Installers/Install-VS.ps1
+++ b/images/win/scripts/Installers/Install-VS.ps1
@@ -3,8 +3,6 @@
## Desc: Install Visual Studio
################################################################################
-$ErrorActionPreference = "Stop"
-
$toolset = Get-ToolsetContent
$requiredComponents = $toolset.visualStudio.workloads | ForEach-Object { "--add $_" }
$workLoads = @(
diff --git a/images/win/scripts/Installers/Install-Vcpkg.ps1 b/images/win/scripts/Installers/Install-Vcpkg.ps1
index f4b44f98..4360b2d3 100644
--- a/images/win/scripts/Installers/Install-Vcpkg.ps1
+++ b/images/win/scripts/Installers/Install-Vcpkg.ps1
@@ -3,8 +3,6 @@
## Desc: Install vcpkg
################################################################################
-Import-Module -Name ImageHelpers -Force
-
$Uri = 'https://github.com/Microsoft/vcpkg.git'
$InstallDir = 'C:\vcpkg'
$VcpkgExecPath = 'vcpkg.exe'
diff --git a/images/win/scripts/Installers/Install-Vsix.ps1 b/images/win/scripts/Installers/Install-Vsix.ps1
index 4e6062a2..628b643b 100644
--- a/images/win/scripts/Installers/Install-Vsix.ps1
+++ b/images/win/scripts/Installers/Install-Vsix.ps1
@@ -3,8 +3,6 @@
## Desc: Install the Visual Studio Extensions from toolset.json
###################################################################################
-$ErrorActionPreference = "Stop"
-
$toolset = Get-ToolsetContent
$vsixPackagesList = $toolset.visualStudio.vsix
if (-not $vsixPackagesList) {
diff --git a/images/win/scripts/Installers/Install-WDK.ps1 b/images/win/scripts/Installers/Install-WDK.ps1
index 54f08cc9..82690c80 100644
--- a/images/win/scripts/Installers/Install-WDK.ps1
+++ b/images/win/scripts/Installers/Install-WDK.ps1
@@ -4,9 +4,6 @@
################################################################################
# Requires Windows SDK with the same version number as the WDK
-
-Import-Module -Name ImageHelpers -Force
-
if (Test-IsWin19)
{
$winSdkUrl = "https://go.microsoft.com/fwlink/p/?linkid=2120843"
diff --git a/images/win/scripts/Installers/Install-WinAppDriver.ps1 b/images/win/scripts/Installers/Install-WinAppDriver.ps1
index fc79ff99..38745dd9 100644
--- a/images/win/scripts/Installers/Install-WinAppDriver.ps1
+++ b/images/win/scripts/Installers/Install-WinAppDriver.ps1
@@ -3,8 +3,6 @@
## Desc: Install Windows Application Driver (WinAppDriver)
####################################################################################
-Import-Module -Name ImageHelpers -Force
-
$InstallerName = "WindowsApplicationDriver.msi"
$InstallerUrl = "https://github.com/Microsoft/WinAppDriver/releases/download/v1.1/${InstallerName}"
diff --git a/images/win/scripts/Installers/Install-Wix.ps1 b/images/win/scripts/Installers/Install-Wix.ps1
index 63305f57..88ef31b2 100644
--- a/images/win/scripts/Installers/Install-Wix.ps1
+++ b/images/win/scripts/Installers/Install-Wix.ps1
@@ -3,8 +3,6 @@
## Desc: Install WIX.
################################################################################
-Import-Module -Name ImageHelpers -Force
-
Choco-Install -PackageName wixtoolset -ArgumentList "--force"
if(Test-IsWin19)
diff --git a/images/win/scripts/Installers/Update-AndroidSDK.ps1 b/images/win/scripts/Installers/Update-AndroidSDK.ps1
index 5eeac22f..a6a20131 100644
--- a/images/win/scripts/Installers/Update-AndroidSDK.ps1
+++ b/images/win/scripts/Installers/Update-AndroidSDK.ps1
@@ -3,15 +3,6 @@
## Desc: Install and update Android SDK and tools
################################################################################
-# Download the latest command line tools so that we can accept all of the licenses.
-# See https://developer.android.com/studio/#command-tools
-$sdkArchPath = Start-DownloadWithRetry -Url "https://dl.google.com/android/repository/sdk-tools-windows-4333796.zip" -Name "android-sdk-tools.zip"
-
-# Don't replace the one that VS installs as it seems to break things.
-Expand-Archive -Path $sdkArchPath -DestinationPath android-sdk -Force
-
-$sdk = Get-Item -Path .\android-sdk
-
# Install the standard Android SDK licenses. In the past, there wasn't a better way to do this,
# so we are base64-encoding a zip of the licenses directory from another installation.
# To create this base64 string, create a zip file that contains nothing but a 'licenses' folder,
@@ -30,7 +21,6 @@ $content = [System.Convert]::FromBase64String($base64Content)
Set-Content -Path .\android-sdk-licenses.zip -Value $content -Encoding Byte
Expand-Archive -Path .\android-sdk-licenses.zip -DestinationPath 'C:\Program Files (x86)\Android\android-sdk' -Force
-
# run the updates.
# keep newer versions in descending order
@@ -42,15 +32,32 @@ $sdkManager = "$sdkRoot\tools\bin\sdkmanager.bat"
& $sdkManager --sdk_root=$sdkRoot "platform-tools"
-Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
- -AndroidSDKRootPath $sdkRoot `
- -AndroidPackages $androidToolset.platform_list `
- -PrefixPackageName "platforms;"
+# get packages info
+$androidPackages = Get-AndroidPackages -AndroidSDKManagerPath $sdkManager
+
+# platforms
+[int]$platformMinVersion = $androidToolset.platform_min_version
+$platformList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
+ -PrefixPackageName "platforms;" `
+ -MinimumVersion $platformMinVersion `
+ -Delimiter "-" `
+ -Index 1
+
+# build-tools
+[version]$buildToolsMinVersion = $androidToolset.build_tools_min_version
+$buildToolsList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
+ -PrefixPackageName "build-tools;" `
+ -MinimumVersion $buildToolsMinVersion `
+ -Delimiter ";" `
+ -Index 1
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
-AndroidSDKRootPath $sdkRoot `
- -AndroidPackages $androidToolset.build_tools `
- -PrefixPackageName "build-tools;"
+ -AndroidPackages $platformList
+
+Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
+ -AndroidSDKRootPath $sdkRoot `
+ -AndroidPackages $buildToolsList
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
-AndroidSDKRootPath $sdkRoot `
@@ -71,6 +78,7 @@ $ndkRoot = "C:\Program Files (x86)\Android\android-sdk\ndk-bundle"
if (Test-Path $ndkRoot) {
setx ANDROID_HOME $sdkRoot /M
+ setx ANDROID_SDK_ROOT $sdkRoot /M
setx ANDROID_NDK_HOME $ndkRoot /M
setx ANDROID_NDK_PATH $ndkRoot /M
} else {
diff --git a/images/win/scripts/Installers/Update-DockerImages.ps1 b/images/win/scripts/Installers/Update-DockerImages.ps1
index d1a689d4..ec5df1b4 100644
--- a/images/win/scripts/Installers/Update-DockerImages.ps1
+++ b/images/win/scripts/Installers/Update-DockerImages.ps1
@@ -16,18 +16,7 @@ function DockerPull {
}
}
-if (Test-IsWin16) {
- DockerPull mcr.microsoft.com/windows/servercore:ltsc2016
- DockerPull mcr.microsoft.com/windows/nanoserver:10.0.14393.953
- DockerPull mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016
- DockerPull mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016
+$dockerToolset = (Get-ToolsetContent).docker
+foreach($dockerImage in $dockerToolset.images) {
+ DockerPull $dockerImage
}
-
-if (Test-IsWin19) {
- DockerPull mcr.microsoft.com/windows/servercore:ltsc2019
- DockerPull mcr.microsoft.com/windows/nanoserver:1809
- DockerPull mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
- DockerPull mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019
-}
-
-DockerPull microsoft/aspnetcore-build:1.0-2.0
diff --git a/images/win/scripts/Installers/Windows2016/Install-SSDT.ps1 b/images/win/scripts/Installers/Windows2016/Install-SSDT.ps1
index b39a547d..e67d0cb2 100644
--- a/images/win/scripts/Installers/Windows2016/Install-SSDT.ps1
+++ b/images/win/scripts/Installers/Windows2016/Install-SSDT.ps1
@@ -3,8 +3,6 @@
## Desc: Install SQL Server Data Tools for Windows
################################################################################
-Import-Module -Name ImageHelpers -Force
-
#SSDT for Visual Studio 2017
#The link down below points to the latest version of SSDT for Visual Studio 2017
$InstallerName = "SSDT-Setup-ENU.exe"
diff --git a/images/win/scripts/Installers/Windows2016/Install-Win81SDK.ps1 b/images/win/scripts/Installers/Windows2016/Install-Win81SDK.ps1
index d89f468f..897b8bff 100644
--- a/images/win/scripts/Installers/Windows2016/Install-Win81SDK.ps1
+++ b/images/win/scripts/Installers/Windows2016/Install-Win81SDK.ps1
@@ -3,8 +3,6 @@
## Desc: Install Windows 8.1 SDK
################################################################################
-Import-Module -Name ImageHelpers -Force
-
$InstallerName = "sdksetup.exe"
$InstallerUrl = "http://download.microsoft.com/download/B/0/C/B0C80BA3-8AD6-4958-810B-6882485230B5/standalonesdk/${InstallerName}"
$ArgumentList = ("/quiet", "/norestart")
diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1
index cc9fbb15..d3c9a174 100644
--- a/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1
+++ b/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1
@@ -1,4 +1,11 @@
-function Get-AndroidComponentLocation {
+function Split-TableRowByColumns {
+ param(
+ [string] $Row
+ )
+ return $Row.Split("|") | ForEach-Object { $_.trim() }
+}
+
+function Get-AndroidSDKRoot {
param(
[string] $ComponentName
)
@@ -6,24 +13,6 @@ function Get-AndroidComponentLocation {
return "Location $path"
}
-function Split-AndroidSDKOutputRow {
- param(
- [string] $Row
- )
- return $Row.Split("|").Trim()
-}
-
-function Create-AndroidTableObject {
- param(
- [string] $PackageName,
- [string] $Description
- )
- return [PSCustomObject] @{
- "Package Name" = $PackageName
- "Description" = $Description
- }
-}
-
function Get-AndroidSDKManagerPath {
return Join-Path $env:ANDROID_HOME "tools\bin\sdkmanager.bat"
}
@@ -42,68 +31,119 @@ function Get-AndroidInstalledPackages {
return $androidInstalledPackages
}
-function Build-AndroidSDKToolsTable {
- param (
- [Parameter(Mandatory)]
- [object] $packageInfo
- )
-
- return $packageInfo | ForEach-Object {
- $packageInfoParts = Split-AndroidSDKOutputRow $_
- $packageName = $packageInfoParts[0]
- $packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1]
- Create-AndroidTableObject -PackageName $packageName -Description $packageDescription
- }
-}
-
-function Build-AndroidSDKPlatformTable {
- param (
- [Parameter(Mandatory)]
- [object] $packageInfo
- )
-
- return $packageInfo | ForEach-Object {
- $packageInfoParts = Split-AndroidSDKOutputRow $_
- $packageName = $packageInfoParts[0].split(";")[1]
- $packageDescription = $packageInfoParts[2] + ", Revision " + $packageInfoParts[1]
- return Create-AndroidTableObject -PackageName $packageName -Description $packageDescription
- }
-}
-
-function Build-AndroidSDKBuildToolsTable {
- param (
- [Parameter(Mandatory)]
- [object] $packageInfo
- )
-
- return $packageInfo | ForEach-Object {
- $packageInfoParts = Split-AndroidSDKOutputRow $_
- $packageName = $packageInfoParts[0].replace(";", "-")
- $packageDescription = "Android SDK Build-Tools, Revision " + $packageInfoParts[1]
- return Create-AndroidTableObject -PackageName $packageName -Description $packageDescription
- }
-}
-
-function Build-AndroidExtraPackagesTable {
- param (
- [Parameter(Mandatory)][AllowEmptyString()]
- [string[]] $installedPackages
- )
-
- $extraPackages = @(
- "Android Support Repository",
- "Google Play services",
- "Google Repository",
- "ndk-bundle"
- )
-
- return $extraPackages | ForEach-Object {
- $packageId = $_
- $packageInfo = $installedPackages | Where-Object { $_ -Like "*${packageId}*" } | Select-Object -First 1
- $packageInfoParts = Split-AndroidSDKOutputRow $packageInfo
- return [PSCustomObject] @{
- "Package Name" = $packageInfoParts[2]
- "Version" = $packageInfoParts[1]
+function Build-AndroidTable {
+ $packageInfo = Get-AndroidInstalledPackages
+ return @(
+ @{
+ "Package" = "Android SDK Platform-Tools"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Platform-Tools"
+ },
+ @{
+ "Package" = "Android SDK Tools"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android SDK Tools"
+ },
+ @{
+ "Package" = "Android SDK Platforms"
+ "Version" = Get-AndroidPlatformVersions -PackageInfo $packageInfo
+ },
+ @{
+ "Package" = "Android SDK Build-tools"
+ "Version" = Get-AndroidBuildToolVersions -PackageInfo $packageInfo
+ },
+ @{
+ "Package" = "NDK"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "ndk-bundle"
+ },
+ @{
+ "Package" = "Android Support Repository"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Android Support Repository"
+ },
+ @{
+ "Package" = "Google APIs"
+ "Version" = Get-AndroidGoogleAPIsVersions -PackageInfo $packageInfo
+ },
+ @{
+ "Package" = "Google Play services"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Play services"
+ },
+ @{
+ "Package" = "Google Repository"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "Google Repository"
+ },
+ @{
+ "Package" = "SDK Patch Applier v4"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "SDK Patch Applier v4"
+ },
+ @{
+ "Package" = "CMake"
+ "Version" = Get-AndroidPackageVersions -PackageInfo $packageInfo -MatchedString "cmake"
+ }
+ ) | Where-Object { $_.Version } | ForEach-Object {
+ [PSCustomObject] @{
+ "Package Name" = $_.Package
+ "Version" = $_.Version
}
}
+}
+
+function Get-AndroidPackageVersions {
+ param (
+ [Parameter(Mandatory)]
+ [object] $PackageInfo,
+ [Parameter(Mandatory)]
+ [object] $MatchedString
+ )
+
+ $versions = $packageInfo | Where-Object { $_ -Match $MatchedString } | ForEach-Object {
+ $packageInfoParts = Split-TableRowByColumns $_
+ return $packageInfoParts[1]
+ }
+ return ($versions -Join "
")
+}
+
+function Get-AndroidPlatformVersions {
+ param (
+ [Parameter(Mandatory)]
+ [object] $PackageInfo
+ )
+
+ $versions = $packageInfo | Where-Object { $_ -Match "Android SDK Platform " } | ForEach-Object {
+ $packageInfoParts = Split-TableRowByColumns $_
+ $revision = $packageInfoParts[1]
+ $version = $packageInfoParts[0].split(";")[1]
+ return "$version (rev $revision)"
+ }
+ [array]::Reverse($versions)
+ return ($versions -Join "
")
+}
+
+function Get-AndroidBuildToolVersions {
+ param (
+ [Parameter(Mandatory)]
+ [object] $PackageInfo
+ )
+
+ $versions = $packageInfo | Where-Object { $_ -Match "Android SDK Build-Tools" } | ForEach-Object {
+ $packageInfoParts = Split-TableRowByColumns $_
+ return $packageInfoParts[1]
+ }
+ $groupVersions = @()
+ $versions | ForEach-Object {
+ $majorVersion = $_.Split(".")[0]
+ $groupVersions += $versions | Where-Object { $_.StartsWith($majorVersion) } | Join-String -Separator " "
+ }
+ return ($groupVersions | Sort-Object -Descending -Unique | Join-String -Separator "
")
+}
+
+function Get-AndroidGoogleAPIsVersions {
+ param (
+ [Parameter(Mandatory)]
+ [object] $PackageInfo
+ )
+
+ $versions = $packageInfo | Where-Object { $_ -Match "Google APIs" } | ForEach-Object {
+ $packageInfoParts = Split-TableRowByColumns $_
+ return $packageInfoParts[0].split(";")[1]
+ }
+ return ($versions -Join "
")
}
\ No newline at end of file
diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1
index eb8b35f0..1b3bf299 100644
--- a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1
+++ b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1
@@ -72,11 +72,11 @@ $markdown += New-MDList -Style Unordered -Lines @(
$markdown += New-MDHeader "Tools" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
- (Get-AzCosmosDBEmulatorVersion),
(Get-AzCopyVersion),
(Get-BazelVersion),
(Get-BazeliskVersion),
(Get-CMakeVersion),
+ (Get-CodeQLBundleVersion),
(Get-RVersion),
(Get-DockerVersion),
(Get-DockerComposeVersion),
@@ -88,15 +88,12 @@ $markdown += New-MDList -Style Unordered -Lines @(
(Get-KubectlVersion),
(Get-KindVersion),
(Get-MinGWVersion),
- (Get-MySQLVersion),
(Get-MercurialVersion),
(Get-NSISVersion),
(Get-NewmanVersion),
(Get-OpenSSLVersion),
(Get-PackerVersion),
(Get-PulumiVersion),
- (Get-SQLPSVersion),
- (Get-SQLServerPSVersion),
(Get-SVNVersion),
(Get-GHCVersion),
(Get-CabalVersion),
@@ -112,6 +109,7 @@ $markdown += New-MDHeader "CLI Tools" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(
(Get-AzureCLIVersion),
(Get-AzureDevopsExtVersion),
+ (Get-AZDSVersion),
(Get-AWSCLIVersion),
(Get-AWSSAMVersion),
(Get-AWSSessionManagerVersion),
@@ -164,6 +162,15 @@ $markdown += New-MDHeader "Databases" -Level 3
$markdown += Build-DatabasesMarkdown
$markdown += New-MDNewLine
+$markdown += New-MDHeader "Database tools" -Level 3
+$markdown += New-MDList -Style Unordered -Lines @(
+ (Get-AzCosmosDBEmulatorVersion),
+ (Get-DacFxVersion),
+ (Get-SQLPSVersion),
+ (Get-MySQLVersion)
+)
+$markdown += New-MDNewLine
+
$vs = Get-VisualStudioVersion
$markdown += New-MDHeader "$($vs.Name)" -Level 3
$markdown += $vs | New-MDTable
@@ -222,31 +229,11 @@ $markdown += Get-PowerShellModules | New-MDTable
$markdown += New-MDNewLine
# Android section
-$androidInstalledPackages = Get-AndroidInstalledPackages
-
-$markdown += New-MDHeader "Android SDK Tools" -Level 3
-$androidSDKTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Tools" -or $_ -Match "Android SDK Platform-Tools" }
-$markdown += Build-AndroidSDKToolsTable $androidSDKTools | New-MDTable
-$markdown += New-MDNewLine
-
-$markdown += New-MDHeader "Android SDK Platforms" -Level 3
-$androidSDKPlatforms = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Platform " }
-$markdown += New-MDInlineCode -Text (Get-AndroidComponentLocation -ComponentName "platforms")
-$markdown += New-MDNewLine
-$markdown += Build-AndroidSDKPlatformTable $androidSDKPlatforms | New-MDTable
-$markdown += New-MDNewLine
-
-$markdown += New-MDHeader "Android SDK Build-Tools" -Level 3
-$androidSDKBuildTools = $androidInstalledPackages | Where-Object { $_ -Match "Android SDK Build-Tools" }
-$markdown += New-MDInlineCode -Text (Get-AndroidComponentLocation -ComponentName "build-tools")
-$markdown += New-MDNewLine
-$markdown += Build-AndroidSDKBuildtoolsTable $androidSDKBuildTools | New-MDTable
-$markdown += New-MDNewLine
-
-$markdown += New-MDHeader "Android Extra Packages" -Level 3
-$markdown += Build-AndroidExtraPackagesTable $androidInstalledPackages | New-MDTable
+$markdown += New-MDHeader "Android" -Level 3
+$markdown += Build-AndroidTable | New-MDTable
$markdown += New-MDNewLine
+# Docker images section
$markdown += New-MDHeader "Cached Docker images" -Level 3
$markdown += New-MDList -Style Unordered -Lines @(Get-CachedDockerImages)
diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1
index e7235408..690f3676 100644
--- a/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1
+++ b/images/win/scripts/SoftwareReport/SoftwareReport.Tools.psm1
@@ -30,6 +30,14 @@ function Get-CMakeVersion {
return "CMake $cmakeVersion"
}
+function Get-CodeQLBundleVersion {
+ $CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "codeql" | Join-Path -ChildPath "*"
+ $CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Select-Object -First 1 -Expand FullName
+ $CodeQLPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql.exe"
+ $CodeQLVersion = & $CodeQLPath version --quiet
+ return "CodeQL Action Bundle $CodeQLVersion"
+}
+
function Get-DockerVersion {
$dockerVersion = $(docker version --format "{{.Server.Version}}")
return "Docker $dockerVersion"
@@ -117,12 +125,6 @@ function Get-SQLPSVersion {
return "SQLPS $version"
}
-function Get-SQLServerPSVersion {
- $module = Get-Module -Name SQLServer -ListAvailable
- $version = $module.Version
- return "SQLServer PS $version"
-}
-
function Get-SVNVersion {
$svnVersion = $(svn --version --quiet)
return "Subversion (SVN) $svnVersion"
@@ -246,4 +248,15 @@ function Get-VisualCPPComponents {
}
}
}
+}
+
+function Get-AZDSVersion {
+ $azdsVersion = $(azds --version) | Select-String "(\d+\.\d+\.\d+.\d+)"
+ return "Azure Dev Spaces CLI $azdsVersion"
+}
+
+function Get-DacFxVersion {
+ cd "C:\Program Files\Microsoft SQL Server\150\DAC\bin\"
+ $dacfxversion = (./sqlpackage.exe /version)
+ return "DacFx $dacfxversion"
}
\ No newline at end of file
diff --git a/images/win/scripts/Tests/Android.Tests.ps1 b/images/win/scripts/Tests/Android.Tests.ps1
index 8a1b6c0b..d6c81db4 100644
--- a/images/win/scripts/Tests/Android.Tests.ps1
+++ b/images/win/scripts/Tests/Android.Tests.ps1
@@ -2,16 +2,27 @@ Import-Module (Join-Path $PSScriptRoot "..\SoftwareReport\SoftwareReport.Android
Describe "Android SDK" {
$androidToolset = (Get-ToolsetContent).android
+ $androidPackages = Get-AndroidPackages -AndroidSDKManagerPath (Get-AndroidSDKManagerPath)
$androidInstalledPackages = Get-AndroidInstalledPackages
$platformTestCases = @()
- $platformList = $androidToolset.platform_list
+ [int]$platformMinVersion = $androidToolset.platform_min_version
+ $platformList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
+ -PrefixPackageName "platforms;" `
+ -MinimumVersion $platformMinVersion `
+ -Delimiter "-" `
+ -Index 1
$platformList | ForEach-Object {
$platformTestCases += @{ platformVersion = $_; installedPackages = $androidInstalledPackages }
}
$buildToolsTestCases = @()
- $buildToolsList = $androidToolset.build_tools
+ [version]$buildToolsMinVersion = $androidToolset.build_tools_min_version
+ $buildToolsList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages `
+ -PrefixPackageName "build-tools;" `
+ -MinimumVersion $buildToolsMinVersion `
+ -Delimiter ";" `
+ -Index 1
$buildToolsList | ForEach-Object {
$buildToolsTestCases += @{ buildToolsVersion = $_; installedPackages = $androidInstalledPackages }
}
@@ -35,14 +46,14 @@ Describe "Android SDK" {
}
It "Platform version is installed" -TestCases $platformTestCases {
- "$installedPackages" | Should -Match "platforms;$platformVersion"
+ "$installedPackages" | Should -Match "$platformVersion"
}
It "Platform build tools is installed" -TestCases $buildToolsTestCases {
- "$installedPackages" | Should -Match "build-tools;$buildToolsVersion"
+ "$installedPackages" | Should -Match "$buildToolsVersion"
}
- if (Test-isWin19) {
+ if (Test-IsWin19) {
It "Extra package is installed" -TestCases $extraPackagesTestCases {
"$installedPackages" | Should -Match "extras;$extraPackage"
}
diff --git a/images/win/scripts/Tests/CLI.Tools.Tests.ps1 b/images/win/scripts/Tests/CLI.Tools.Tests.ps1
index d230fcfc..80791405 100644
--- a/images/win/scripts/Tests/CLI.Tools.Tests.ps1
+++ b/images/win/scripts/Tests/CLI.Tools.Tests.ps1
@@ -53,4 +53,10 @@ Describe "Hub CLI" {
It "hub is installed" {
"hub --version" | Should -ReturnZeroExitCode
}
+}
+
+Describe "Azure Dev Spaces CLI" {
+ It "Azure Dev Spaces CLI" {
+ "azds --version" | Should -ReturnZeroExitCode
+ }
}
\ No newline at end of file
diff --git a/images/win/scripts/Tests/Haskell.Tests.ps1 b/images/win/scripts/Tests/Haskell.Tests.ps1
index b6ebb763..826dc16d 100644
--- a/images/win/scripts/Tests/Haskell.Tests.ps1
+++ b/images/win/scripts/Tests/Haskell.Tests.ps1
@@ -3,12 +3,18 @@ Describe "Haskell" {
[array]$ghcVersionList = Get-ChildItem -Path $chocoPackagesPath -Filter "ghc.*" | ForEach-Object { $_.Name.TrimStart("ghc.") }
$ghcCount = $ghcVersionList.Count
$defaultGhcVersion = $ghcVersionList | Sort-Object {[Version]$_} | Select-Object -Last 1
+ $ghcDefaultCases = @{
+ defaultGhcVersion = $defaultGhcVersion
+ defaultGhcShortVersion = ([version]$defaultGhcVersion).ToString(3)
+ }
$ghcTestCases = $ghcVersionList | ForEach-Object {
$ghcVersion = $_
+ $ghcShortVersion = ([version]$ghcVersion).ToString(3)
@{
ghcVersion = $ghcVersion
- binGhcPath = Join-Path $chocoPackagesPath "ghc.$ghcVersion\tools\ghc-$ghcVersion\bin\ghc.exe"
+ ghcShortVersion = $ghcShortVersion
+ binGhcPath = Join-Path $chocoPackagesPath "ghc.$ghcVersion\tools\ghc-$ghcShortVersion\bin\ghc.exe"
}
}
@@ -17,11 +23,11 @@ Describe "Haskell" {
}
It "GHC is installed" -TestCases $ghcTestCases {
- "$binGhcPath --version" | Should -MatchCommandOutput $ghcVersion
+ "$binGhcPath --version" | Should -MatchCommandOutput $ghcShortVersion
}
- It "GHC is the default version and should be the latest installed" -TestCases @{defaultGhcVersion = $defaultGhcVersion} {
- "ghc --version" | Should -MatchCommandOutput $defaultGhcVersion
+ It "GHC is the default version and should be the latest installed" -TestCases $ghcDefaultCases {
+ "ghc --version" | Should -MatchCommandOutput $defaultGhcShortVersion
}
It "Cabal is installed" {
diff --git a/images/win/scripts/Tests/Tools.Tests.ps1 b/images/win/scripts/Tests/Tools.Tests.ps1
index f4938bbb..cbb0609a 100644
--- a/images/win/scripts/Tests/Tools.Tests.ps1
+++ b/images/win/scripts/Tests/Tools.Tests.ps1
@@ -41,6 +41,15 @@ Describe "CMake" {
}
}
+Describe "CodeQLBundle" {
+ It "CodeQLBundle" {
+ $CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "codeql" | Join-Path -ChildPath "*"
+ $CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Select-Object -First 1 -Expand FullName
+ $CodeQLPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql.exe"
+ "$CodeQLPath version" | Should -ReturnZeroExitCode
+ }
+}
+
Describe "R" {
It "Rscript" {
"Rscript --version" | Should -ReturnZeroExitCode
diff --git a/images/win/toolsets/toolset-2016.json b/images/win/toolsets/toolset-2016.json
index c764e080..fef0a3fc 100644
--- a/images/win/toolsets/toolset-2016.json
+++ b/images/win/toolsets/toolset-2016.json
@@ -10,7 +10,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
],
"default": "3.7.*"
},
@@ -24,7 +25,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
]
},
{
@@ -121,17 +123,14 @@
"3.8.0",
"4.3.0",
"4.4.0",
- "4.6.0"
+ "4.6.0",
+ "4.7.0"
]
}
],
"android": {
- "platform_list": [
- "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-19"
- ],
- "build_tools": [
- "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "22.0.1", "21.1.2", "20.0.0", "19.1.0"
- ],
+ "platform_min_version": "19",
+ "build_tools_min_version": "19.1.0",
"extra_list": [
"android;m2repository",
"google;m2repository",
@@ -230,5 +229,14 @@
],
"vsix": [
]
+ },
+ "docker": {
+ "images": [
+ "mcr.microsoft.com/windows/servercore:ltsc2016",
+ "mcr.microsoft.com/windows/nanoserver:10.0.14393.953",
+ "mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2016",
+ "mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016",
+ "microsoft/aspnetcore-build:1.0-2.0"
+ ]
}
}
diff --git a/images/win/toolsets/toolset-2019.json b/images/win/toolsets/toolset-2019.json
index 7184dc03..c76c9701 100644
--- a/images/win/toolsets/toolset-2019.json
+++ b/images/win/toolsets/toolset-2019.json
@@ -10,7 +10,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
],
"default": "3.7.*"
},
@@ -24,7 +25,8 @@
"3.5.*",
"3.6.*",
"3.7.*",
- "3.8.*"
+ "3.8.*",
+ "3.9.*"
]
},
{
@@ -130,17 +132,14 @@
"3.8.0",
"4.3.0",
"4.4.0",
- "4.6.0"
+ "4.6.0",
+ "4.7.0"
]
}
],
"android": {
- "platform_list": [
- "android-30", "android-29", "android-28", "android-27", "android-26", "android-25", "android-24", "android-23", "android-22", "android-21", "android-19"
- ],
- "build_tools": [
- "30.0.2", "30.0.1", "30.0.0", "29.0.3", "29.0.2", "29.0.1", "29.0.0", "28.0.3", "28.0.2", "28.0.1", "28.0.0", "27.0.3", "27.0.2", "27.0.1", "27.0.0", "26.0.3", "26.0.2", "26.0.1", "26.0.0", "25.0.3", "25.0.2", "25.0.1", "25.0.0", "24.0.3", "24.0.2", "24.0.1", "24.0.0", "23.0.3", "23.0.2", "23.0.1", "22.0.1", "21.1.2", "20.0.0", "19.1.0"
- ],
+ "platform_min_version": "19",
+ "build_tools_min_version": "19.1.0",
"extra_list": [
"android;m2repository",
"google;m2repository",
@@ -282,5 +281,14 @@
"id": "VSInstallerProjects"
}
]
+ },
+ "docker": {
+ "images": [
+ "mcr.microsoft.com/windows/servercore:ltsc2019",
+ "mcr.microsoft.com/windows/nanoserver:1809",
+ "mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019",
+ "mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019",
+ "microsoft/aspnetcore-build:1.0-2.0"
+ ]
}
}
diff --git a/images/win/Windows2016-Azure.json b/images/win/windows2016.json
similarity index 91%
rename from images/win/Windows2016-Azure.json
rename to images/win/windows2016.json
index 6aa1423c..3c4b6566 100644
--- a/images/win/Windows2016-Azure.json
+++ b/images/win/windows2016.json
@@ -15,7 +15,6 @@
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
"vm_size": "Standard_DS4_v2",
"run_scan_antivirus": "false",
-
"root_folder": "C:",
"toolset_json_path": "{{env `TEMP`}}\\toolset.json",
"image_folder": "C:\\image",
@@ -30,7 +29,11 @@
"github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}",
"announcements": "{{env `ANNOUNCEMENTS`}}"
},
- "sensitive-variables": ["install_password", "client_secret", "github_feed_token"],
+ "sensitive-variables": [
+ "install_password",
+ "client_secret",
+ "github_feed_token"
+ ],
"builders": [
{
"name": "vhd",
@@ -65,7 +68,7 @@
"provisioners": [
{
"type": "powershell",
- "inline":[
+ "inline": [
"New-Item -Path {{user `image_folder`}} -ItemType Directory -Force"
]
},
@@ -79,6 +82,11 @@
"source": "{{ template_dir }}/scripts/SoftwareReport",
"destination": "{{user `image_folder`}}"
},
+ {
+ "type": "file",
+ "source": "{{ template_dir }}/post-generation",
+ "destination": "C:/"
+ },
{
"type": "file",
"source": "{{ template_dir }}/scripts/Tests",
@@ -97,7 +105,7 @@
{
"type": "windows-shell",
"inline": [
- "net user {{user `install_user`}} {{user `install_password`}} /add /passwordchg:no /passwordreq:yes /active:yes /Y" ,
+ "net user {{user `install_user`}} {{user `install_password`}} /add /passwordchg:no /passwordreq:yes /active:yes /Y",
"net localgroup Administrators {{user `install_user`}} /add",
"winrm set winrm/config/service/auth @{Basic=\"true\"}",
"winrm get winrm/config/service/auth"
@@ -116,7 +124,7 @@
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}",
"PSMODULES_ROOT_FOLDER={{user `psmodules_root_folder`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-PowerShellModules.ps1",
"{{ template_dir }}/scripts/Installers/Initialize-VM.ps1",
"{{ template_dir }}/scripts/Installers/Install-WebPlatformInstaller.ps1"
@@ -125,7 +133,7 @@
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Update-DotnetTLS.ps1",
"{{ template_dir }}/scripts/Installers/Install-ContainersFeature.ps1"
]
@@ -137,8 +145,8 @@
{
"type": "powershell",
"inline": [
- "setx ImageVersion {{user `image_version` }} /m",
- "setx ImageOS {{user `image_os` }} /m"
+ "setx ImageVersion {{user `image_version` }} /m",
+ "setx ImageOS {{user `image_os` }} /m"
]
},
{
@@ -147,7 +155,7 @@
"IMAGE_VERSION={{user `image_version`}}",
"IMAGEDATA_FILE={{user `imagedata_file`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Update-ImageData.ps1",
"{{ template_dir }}/scripts/Installers/Install-Docker.ps1",
"{{ template_dir }}/scripts/Installers/Install-PowershellCore.ps1"
@@ -157,22 +165,17 @@
"type": "windows-restart",
"restart_timeout": "30m"
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Update-DockerImages.ps1"
- ]
- },
{
"type": "powershell",
"valid_exit_codes": [
0,
3010
],
- "environment_vars":[
+ "environment_vars": [
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}"
],
- "scripts":[
+ "scripts": [
+ "{{ template_dir }}/scripts/Installers/Update-DockerImages.ps1",
"{{ template_dir }}/scripts/Installers/Install-VS.ps1",
"{{ template_dir }}/scripts/Installers/Install-NET48.ps1",
"{{ template_dir }}/scripts/Installers/Windows2016/Install-SSDT.ps1"
@@ -182,10 +185,10 @@
},
{
"type": "powershell",
- "environment_vars":[
+ "environment_vars": [
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-Nuget.ps1",
"{{ template_dir }}/scripts/Installers/Install-Wix.ps1",
"{{ template_dir }}/scripts/Installers/Install-WDK.ps1",
@@ -194,7 +197,7 @@
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-ServiceFabricSDK.ps1"
],
"execution_policy": "remotesigned"
@@ -205,10 +208,11 @@
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-AzureCli.ps1",
"{{ template_dir }}/scripts/Installers/Install-AzureDevOpsCli.ps1",
"{{ template_dir }}/scripts/Installers/Install-AzCopy.ps1",
+ "{{ template_dir }}/scripts/Installers/Install-AzureDevSpacesCli.ps1",
"{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1",
"{{ template_dir }}/scripts/Installers/Install-Bazel.ps1",
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1",
@@ -221,12 +225,12 @@
},
{
"type": "powershell",
- "environment_vars":[
+ "environment_vars": [
"GITHUB_FEED_TOKEN={{ user `github_feed_token` }}",
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}",
"ROOT_FOLDER={{user `root_folder`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1",
"{{ template_dir }}/scripts/Installers/Install-PyPy.ps1",
"{{ template_dir }}/scripts/Installers/Install-Toolset.ps1",
@@ -237,7 +241,7 @@
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-Sbt.ps1",
"{{ template_dir }}/scripts/Installers/Install-OpenSSL.ps1",
"{{ template_dir }}/scripts/Installers/Install-Perl.ps1",
@@ -256,7 +260,7 @@
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Enable-DeveloperMode.ps1"
],
"elevated_user": "{{user `install_user`}}",
@@ -264,21 +268,23 @@
},
{
"type": "windows-shell",
- "inline": ["wmic product where \"name like '%%microsoft azure powershell%%'\" call uninstall /nointeractive"]
+ "inline": [
+ "wmic product where \"name like '%%microsoft azure powershell%%'\" call uninstall /nointeractive"
+ ]
},
{
"type": "powershell",
- "environment_vars":[
+ "environment_vars": [
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}",
"PSMODULES_ROOT_FOLDER={{user `psmodules_root_folder`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1"
]
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-VSWhere.ps1",
"{{ template_dir }}/scripts/Installers/Install-WinAppDriver.ps1",
"{{ template_dir }}/scripts/Installers/Install-Cmake.ps1",
@@ -290,18 +296,17 @@
"{{ template_dir }}/scripts/Installers/Install-DotnetSDK.ps1"
]
},
-
{
"type": "powershell",
"elevated_user": "SYSTEM",
"elevated_password": "",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-Msys2.ps1"
]
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-Mingw64.ps1",
"{{ template_dir }}/scripts/Installers/Install-TypeScript.ps1",
"{{ template_dir }}/scripts/Installers/Install-Haskell.ps1",
@@ -319,12 +324,13 @@
"{{ template_dir }}/scripts/Installers/Install-KubernetesCli.ps1",
"{{ template_dir }}/scripts/Installers/Install-Kind.ps1",
"{{ template_dir }}/scripts/Installers/Install-MongoDB.ps1",
- "{{ template_dir }}/scripts/Installers/Install-GoogleCloudSDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-GoogleCloudSDK.ps1",
+ "{{ template_dir }}/scripts/Installers/Install-CodeQLBundle.ps1"
]
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-WindowsUpdates.ps1",
"{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1"
],
@@ -337,10 +343,10 @@
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Tests/RunAll-Tests.ps1"
],
- "environment_vars":[
+ "environment_vars": [
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}",
"PSMODULES_ROOT_FOLDER={{user `psmodules_root_folder`}}",
"ROOT_FOLDER={{user `root_folder`}}"
@@ -351,7 +357,7 @@
"inline": [
"pwsh -File '{{user `image_folder`}}\\SoftwareReport\\SoftwareReport.Generator.ps1'"
],
- "environment_vars":[
+ "environment_vars": [
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}",
"ANNOUNCEMENTS={{user `announcements`}}"
]
@@ -364,7 +370,7 @@
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Finalize-VM.ps1"
]
},
@@ -374,16 +380,16 @@
},
{
"type": "powershell",
- "environment_vars":[
+ "environment_vars": [
"RUN_SCAN_ANTIVIRUS={{user `run_scan_antivirus`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Run-Antivirus.ps1"
]
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1",
"{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1"
]
diff --git a/images/win/Windows2019-Azure.json b/images/win/windows2019.json
similarity index 91%
rename from images/win/Windows2019-Azure.json
rename to images/win/windows2019.json
index 515caba9..6609b5b3 100644
--- a/images/win/Windows2019-Azure.json
+++ b/images/win/windows2019.json
@@ -15,7 +15,6 @@
"private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}",
"vm_size": "Standard_D4_v2",
"run_scan_antivirus": "false",
-
"root_folder": "C:",
"toolset_json_path": "{{env `TEMP`}}\\toolset.json",
"image_folder": "C:\\image",
@@ -30,7 +29,11 @@
"github_feed_token": "{{env `GITHUB_FEED_TOKEN`}}",
"announcements": "{{env `ANNOUNCEMENTS`}}"
},
- "sensitive-variables": ["install_password", "client_secret", "github_feed_token"],
+ "sensitive-variables": [
+ "install_password",
+ "client_secret",
+ "github_feed_token"
+ ],
"builders": [
{
"name": "vhd",
@@ -65,7 +68,7 @@
"provisioners": [
{
"type": "powershell",
- "inline":[
+ "inline": [
"New-Item -Path {{user `image_folder`}} -ItemType Directory -Force"
]
},
@@ -79,6 +82,11 @@
"source": "{{ template_dir }}/scripts/SoftwareReport",
"destination": "{{user `image_folder`}}"
},
+ {
+ "type": "file",
+ "source": "{{ template_dir }}/post-generation",
+ "destination": "C:/"
+ },
{
"type": "file",
"source": "{{ template_dir }}/scripts/Tests",
@@ -97,7 +105,7 @@
{
"type": "windows-shell",
"inline": [
- "net user {{user `install_user`}} {{user `install_password`}} /add /passwordchg:no /passwordreq:yes /active:yes /Y" ,
+ "net user {{user `install_user`}} {{user `install_password`}} /add /passwordchg:no /passwordreq:yes /active:yes /Y",
"net localgroup Administrators {{user `install_user`}} /add",
"winrm set winrm/config/service/auth @{Basic=\"true\"}",
"winrm get winrm/config/service/auth"
@@ -116,7 +124,7 @@
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}",
"PSMODULES_ROOT_FOLDER={{user `psmodules_root_folder`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-PowerShellModules.ps1",
"{{ template_dir }}/scripts/Installers/Initialize-VM.ps1",
"{{ template_dir }}/scripts/Installers/Install-WebPlatformInstaller.ps1"
@@ -127,13 +135,13 @@
"type": "powershell",
"elevated_user": "SYSTEM",
"elevated_password": "",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Windows2019/Install-WSL.ps1"
]
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Update-DotnetTLS.ps1",
"{{ template_dir }}/scripts/Installers/Install-ContainersFeature.ps1"
]
@@ -141,8 +149,8 @@
{
"type": "powershell",
"inline": [
- "setx ImageVersion {{user `image_version` }} /m",
- "setx ImageOS {{user `image_os` }} /m"
+ "setx ImageVersion {{user `image_version` }} /m",
+ "setx ImageOS {{user `image_os` }} /m"
]
},
{
@@ -155,7 +163,7 @@
"IMAGE_VERSION={{user `image_version`}}",
"IMAGEDATA_FILE={{user `imagedata_file`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Update-ImageData.ps1",
"{{ template_dir }}/scripts/Installers/Install-Docker.ps1",
"{{ template_dir }}/scripts/Installers/Install-PowershellCore.ps1"
@@ -165,22 +173,17 @@
"type": "windows-restart",
"restart_timeout": "10m"
},
- {
- "type": "powershell",
- "scripts":[
- "{{ template_dir }}/scripts/Installers/Update-DockerImages.ps1"
- ]
- },
{
"type": "powershell",
"valid_exit_codes": [
0,
3010
],
- "environment_vars":[
+ "environment_vars": [
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}"
],
- "scripts":[
+ "scripts": [
+ "{{ template_dir }}/scripts/Installers/Update-DockerImages.ps1",
"{{ template_dir }}/scripts/Installers/Install-VS.ps1",
"{{ template_dir }}/scripts/Installers/Install-NET48.ps1"
],
@@ -189,10 +192,10 @@
},
{
"type": "powershell",
- "environment_vars":[
+ "environment_vars": [
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-Nuget.ps1",
"{{ template_dir }}/scripts/Installers/Install-Wix.ps1",
"{{ template_dir }}/scripts/Installers/Install-WDK.ps1",
@@ -200,6 +203,7 @@
"{{ template_dir }}/scripts/Installers/Install-AzureCli.ps1",
"{{ template_dir }}/scripts/Installers/Install-AzureDevOpsCli.ps1",
"{{ template_dir }}/scripts/Installers/Install-AzCopy.ps1",
+ "{{ template_dir }}/scripts/Installers/Install-AzureDevSpacesCli.ps1",
"{{ template_dir }}/scripts/Installers/Install-NodeLts.ps1",
"{{ template_dir }}/scripts/Installers/Install-7zip.ps1",
"{{ template_dir }}/scripts/Installers/Install-Packer.ps1",
@@ -209,7 +213,7 @@
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-ServiceFabricSDK.ps1"
],
"execution_policy": "remotesigned"
@@ -220,38 +224,39 @@
},
{
"type": "powershell",
- "environment_vars":[
+ "environment_vars": [
"GITHUB_FEED_TOKEN={{ user `github_feed_token` }}",
"ROOT_FOLDER={{user `root_folder`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Download-ToolCache.ps1"
]
},
{
"type": "windows-shell",
- "inline": ["wmic product where \"name like '%%microsoft azure powershell%%'\" call uninstall /nointeractive"]
+ "inline": [
+ "wmic product where \"name like '%%microsoft azure powershell%%'\" call uninstall /nointeractive"
+ ]
},
{
"type": "powershell",
- "environment_vars":[
+ "environment_vars": [
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}",
"ROOT_FOLDER={{user `root_folder`}}",
"PSMODULES_ROOT_FOLDER={{user `psmodules_root_folder`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-PyPy.ps1",
"{{ template_dir }}/scripts/Installers/Install-Toolset.ps1",
"{{ template_dir }}/scripts/Installers/Configure-Toolset.ps1",
"{{ template_dir }}/scripts/Installers/Install-YAMLLint.ps1",
"{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1",
"{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1"
-
]
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-OpenSSL.ps1",
"{{ template_dir }}/scripts/Installers/Install-Perl.ps1",
"{{ template_dir }}/scripts/Installers/Install-Git.ps1",
@@ -270,7 +275,7 @@
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Enable-DeveloperMode.ps1"
],
"elevated_user": "{{user `install_user`}}",
@@ -280,13 +285,13 @@
"type": "powershell",
"elevated_user": "SYSTEM",
"elevated_password": "",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-Msys2.ps1"
]
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-VSWhere.ps1",
"{{ template_dir }}/scripts/Installers/Install-WinAppDriver.ps1",
"{{ template_dir }}/scripts/Installers/Install-Cmake.ps1",
@@ -317,12 +322,13 @@
"{{ template_dir }}/scripts/Installers/Install-AliyunCli.ps1",
"{{ template_dir }}/scripts/Installers/Install-RootCA.ps1",
"{{ template_dir }}/scripts/Installers/Install-MongoDB.ps1",
- "{{ template_dir }}/scripts/Installers/Install-GoogleCloudSDK.ps1"
+ "{{ template_dir }}/scripts/Installers/Install-GoogleCloudSDK.ps1",
+ "{{ template_dir }}/scripts/Installers/Install-CodeQLBundle.ps1"
]
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Install-WindowsUpdates.ps1",
"{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1"
],
@@ -335,10 +341,10 @@
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Tests/RunAll-Tests.ps1"
],
- "environment_vars":[
+ "environment_vars": [
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}",
"PSMODULES_ROOT_FOLDER={{user `psmodules_root_folder`}}",
"ROOT_FOLDER={{user `root_folder`}}"
@@ -349,7 +355,7 @@
"inline": [
"pwsh -File '{{user `image_folder`}}\\SoftwareReport\\SoftwareReport.Generator.ps1'"
],
- "environment_vars":[
+ "environment_vars": [
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}",
"ANNOUNCEMENTS={{user `announcements`}}"
]
@@ -362,7 +368,7 @@
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Finalize-VM.ps1"
]
},
@@ -372,28 +378,28 @@
},
{
"type": "powershell",
- "environment_vars":[
+ "environment_vars": [
"RUN_SCAN_ANTIVIRUS={{user `run_scan_antivirus`}}"
],
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Run-Antivirus.ps1"
]
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1"
]
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1"
]
},
{
"type": "powershell",
- "scripts":[
+ "scripts": [
"{{ template_dir }}/scripts/Installers/Run-NGen.ps1"
]
},