From 6b13fc34bcd10f93305a741aecf0c34e55ef31e6 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Tue, 29 Sep 2020 13:49:41 +0300 Subject: [PATCH 1/6] use dynamic lists for platforms and build-tools --- .../scripts/Installers/Update-AndroidSDK.ps1 | 24 ++++++++++++++----- .../SoftwareReport.Android.psm1 | 5 ++++ images/win/scripts/Tests/Android.Tests.ps1 | 15 ++++++++---- images/win/toolsets/toolset-2016.json | 8 ++----- images/win/toolsets/toolset-2019.json | 8 ++----- 5 files changed, 37 insertions(+), 23 deletions(-) diff --git a/images/win/scripts/Installers/Update-AndroidSDK.ps1 b/images/win/scripts/Installers/Update-AndroidSDK.ps1 index b5b9a67f..f64d50e3 100644 --- a/images/win/scripts/Installers/Update-AndroidSDK.ps1 +++ b/images/win/scripts/Installers/Update-AndroidSDK.ps1 @@ -3,6 +3,7 @@ ## Desc: Install and update Android SDK and tools ################################################################################ +$ErrorActionPreference = "Stop" # 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" @@ -42,15 +43,26 @@ $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 = & $sdkManager --list --verbose 2>&1 + +# platforms +[int]$platformMinVersion = $androidToolset.platform_min_version +$platformList = $androidPackages | Where-Object { "$_".StartsWith("platforms;") } | + Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique + +# build-tools +[version]$buildToolsMinVersion = $androidToolset.build_tools_min_version +$buildToolsList = $androidPackages | Where-Object { "$_".StartsWith("build-tools;") } | + Where-Object { [version]$_.Split(";")[1] -ge $buildToolsMinVersion } | Sort-Object { [version]$_.Split(";")[1] } -Unique 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 ` diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1 index f85423c2..dd59f77f 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1 @@ -31,6 +31,11 @@ function Get-AndroidInstalledPackages { return $androidInstalledPackages } +function Get-AndroidPackages { + $androidSDKManagerPath = Get-AndroidSDKManagerPath + $androidPackages = & $androidSDKManagerPath --list --verbose + return $androidPackages +} function Build-AndroidTable { $packageInfo = Get-AndroidInstalledPackages diff --git a/images/win/scripts/Tests/Android.Tests.ps1 b/images/win/scripts/Tests/Android.Tests.ps1 index 8a1b6c0b..e90ad682 100644 --- a/images/win/scripts/Tests/Android.Tests.ps1 +++ b/images/win/scripts/Tests/Android.Tests.ps1 @@ -2,16 +2,21 @@ Import-Module (Join-Path $PSScriptRoot "..\SoftwareReport\SoftwareReport.Android Describe "Android SDK" { $androidToolset = (Get-ToolsetContent).android + $androidPackages = Get-AndroidPackages $androidInstalledPackages = Get-AndroidInstalledPackages $platformTestCases = @() - $platformList = $androidToolset.platform_list + [int]$platformMinVersion = $androidToolset.platform_min_version + $platformList = $androidPackages | Where-Object { "$_".StartsWith("platforms;") } | + Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique $platformList | ForEach-Object { $platformTestCases += @{ platformVersion = $_; installedPackages = $androidInstalledPackages } } $buildToolsTestCases = @() - $buildToolsList = $androidToolset.build_tools + [version]$buildToolsMinVersion = $androidToolset.build_tools_min_version + $buildToolsList = $androidPackages | Where-Object { "$_".StartsWith("build-tools;") } | + Where-Object { [version]$_.Split(";")[1] -ge $buildToolsMinVersion } | Sort-Object { [version]$_.Split(";")[1] } -Unique $buildToolsList | ForEach-Object { $buildToolsTestCases += @{ buildToolsVersion = $_; installedPackages = $androidInstalledPackages } } @@ -35,14 +40,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/toolsets/toolset-2016.json b/images/win/toolsets/toolset-2016.json index 856df752..ea1fa7d9 100644 --- a/images/win/toolsets/toolset-2016.json +++ b/images/win/toolsets/toolset-2016.json @@ -127,12 +127,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" - ], - "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", diff --git a/images/win/toolsets/toolset-2019.json b/images/win/toolsets/toolset-2019.json index 20f05bf8..64a0b018 100644 --- a/images/win/toolsets/toolset-2019.json +++ b/images/win/toolsets/toolset-2019.json @@ -136,12 +136,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" - ], - "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", From 2a76bb378f800766285a5a79d740bf55462a96af Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 30 Sep 2020 10:11:33 +0300 Subject: [PATCH 2/6] remove stderr 2>&1 --- images/win/scripts/Installers/Update-AndroidSDK.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Update-AndroidSDK.ps1 b/images/win/scripts/Installers/Update-AndroidSDK.ps1 index f64d50e3..e708c6db 100644 --- a/images/win/scripts/Installers/Update-AndroidSDK.ps1 +++ b/images/win/scripts/Installers/Update-AndroidSDK.ps1 @@ -44,7 +44,7 @@ $sdkManager = "$sdkRoot\tools\bin\sdkmanager.bat" & $sdkManager --sdk_root=$sdkRoot "platform-tools" # get packages info -$androidPackages = & $sdkManager --list --verbose 2>&1 +$androidPackages = & $sdkManager --list --verbose # platforms [int]$platformMinVersion = $androidToolset.platform_min_version From e2fd93b6996a0c4db2e038f0972cf2320565e61e Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 30 Sep 2020 14:56:59 +0300 Subject: [PATCH 3/6] remove download archive --- images/win/scripts/Installers/Update-AndroidSDK.ps1 | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/images/win/scripts/Installers/Update-AndroidSDK.ps1 b/images/win/scripts/Installers/Update-AndroidSDK.ps1 index e708c6db..a18f89ad 100644 --- a/images/win/scripts/Installers/Update-AndroidSDK.ps1 +++ b/images/win/scripts/Installers/Update-AndroidSDK.ps1 @@ -4,14 +4,6 @@ ################################################################################ $ErrorActionPreference = "Stop" -# 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. @@ -29,8 +21,7 @@ $sdk = Get-Item -Path .\android-sdk $base64Content = "UEsDBBQAAAAAAKJeN06amkPzKgAAACoAAAAhAAAAbGljZW5zZXMvYW5kcm9pZC1nb29nbGV0di1saWNlbnNlDQpmYzk0NmU4ZjIzMWYzZTMxNTliZjBiN2M2NTVjOTI0Y2IyZTM4MzMwUEsDBBQAAAAIAKBrN05E+YSqQwAAAFQAAAAcAAAAbGljZW5zZXMvYW5kcm9pZC1zZGstbGljZW5zZQXByREAIQgEwP9WmYsjhxgOKJN/CNs9vmdOQ2zdRw2dxQnWjqQ/3oIgXQM9vqUiwkiX8ljWea4ZlCF3xTo1pz6w+wdQSwMEFAAAAAAAxV43TpECY7AqAAAAKgAAACQAAABsaWNlbnNlcy9hbmRyb2lkLXNkay1wcmV2aWV3LWxpY2Vuc2UNCjUwNDY2N2Y0YzBkZTdhZjFhMDZkZTlmNGIxNzI3Yjg0MzUxZjI5MTBQSwMEFAAAAAAAzF43TpOr0CgqAAAAKgAAABsAAABsaWNlbnNlcy9nb29nbGUtZ2RrLWxpY2Vuc2UNCjMzYjZhMmI2NDYwN2YxMWI3NTlmMzIwZWY5ZGZmNGFlNWM0N2Q5N2FQSwMEFAAAAAAAz143TqxN4xEqAAAAKgAAACQAAABsaWNlbnNlcy9pbnRlbC1hbmRyb2lkLWV4dHJhLWxpY2Vuc2UNCmQ5NzVmNzUxNjk4YTc3YjY2MmYxMjU0ZGRiZWVkMzkwMWU5NzZmNWFQSwMEFAAAAAAA0l43Tu2ee/8qAAAAKgAAACYAAABsaWNlbnNlcy9taXBzLWFuZHJvaWQtc3lzaW1hZ2UtbGljZW5zZQ0KNjNkNzAzZjU2OTJmZDg5MWQ1YWNhY2ZiZDhlMDlmNDBmYzk3NjEwNVBLAQIUABQAAAAAAKJeN06amkPzKgAAACoAAAAhAAAAAAAAAAEAIAAAAAAAAABsaWNlbnNlcy9hbmRyb2lkLWdvb2dsZXR2LWxpY2Vuc2VQSwECFAAUAAAACACgazdORPmEqkMAAABUAAAAHAAAAAAAAAABACAAAABpAAAAbGljZW5zZXMvYW5kcm9pZC1zZGstbGljZW5zZVBLAQIUABQAAAAAAMVeN06RAmOwKgAAACoAAAAkAAAAAAAAAAEAIAAAAOYAAABsaWNlbnNlcy9hbmRyb2lkLXNkay1wcmV2aWV3LWxpY2Vuc2VQSwECFAAUAAAAAADMXjdOk6vQKCoAAAAqAAAAGwAAAAAAAAABACAAAABSAQAAbGljZW5zZXMvZ29vZ2xlLWdkay1saWNlbnNlUEsBAhQAFAAAAAAAz143TqxN4xEqAAAAKgAAACQAAAAAAAAAAQAgAAAAtQEAAGxpY2Vuc2VzL2ludGVsLWFuZHJvaWQtZXh0cmEtbGljZW5zZVBLAQIUABQAAAAAANJeN07tnnv/KgAAACoAAAAmAAAAAAAAAAEAIAAAACECAABsaWNlbnNlcy9taXBzLWFuZHJvaWQtc3lzaW1hZ2UtbGljZW5zZVBLBQYAAAAABgAGANoBAACPAgAAAAA=" $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 - +Extract-7Zip -Path .\android-sdk-licenses.zip -DestinationPath 'C:\Program Files (x86)\Android\android-sdk' # run the updates. # keep newer versions in descending order From d66f67dbe1b68097daebdabaa7cbffe8ec252f48 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 30 Sep 2020 18:48:31 +0300 Subject: [PATCH 4/6] fix parsing --- images/win/scripts/Installers/Update-AndroidSDK.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/images/win/scripts/Installers/Update-AndroidSDK.ps1 b/images/win/scripts/Installers/Update-AndroidSDK.ps1 index a18f89ad..12f7964e 100644 --- a/images/win/scripts/Installers/Update-AndroidSDK.ps1 +++ b/images/win/scripts/Installers/Update-AndroidSDK.ps1 @@ -21,7 +21,7 @@ $ErrorActionPreference = "Stop" $base64Content = "UEsDBBQAAAAAAKJeN06amkPzKgAAACoAAAAhAAAAbGljZW5zZXMvYW5kcm9pZC1nb29nbGV0di1saWNlbnNlDQpmYzk0NmU4ZjIzMWYzZTMxNTliZjBiN2M2NTVjOTI0Y2IyZTM4MzMwUEsDBBQAAAAIAKBrN05E+YSqQwAAAFQAAAAcAAAAbGljZW5zZXMvYW5kcm9pZC1zZGstbGljZW5zZQXByREAIQgEwP9WmYsjhxgOKJN/CNs9vmdOQ2zdRw2dxQnWjqQ/3oIgXQM9vqUiwkiX8ljWea4ZlCF3xTo1pz6w+wdQSwMEFAAAAAAAxV43TpECY7AqAAAAKgAAACQAAABsaWNlbnNlcy9hbmRyb2lkLXNkay1wcmV2aWV3LWxpY2Vuc2UNCjUwNDY2N2Y0YzBkZTdhZjFhMDZkZTlmNGIxNzI3Yjg0MzUxZjI5MTBQSwMEFAAAAAAAzF43TpOr0CgqAAAAKgAAABsAAABsaWNlbnNlcy9nb29nbGUtZ2RrLWxpY2Vuc2UNCjMzYjZhMmI2NDYwN2YxMWI3NTlmMzIwZWY5ZGZmNGFlNWM0N2Q5N2FQSwMEFAAAAAAAz143TqxN4xEqAAAAKgAAACQAAABsaWNlbnNlcy9pbnRlbC1hbmRyb2lkLWV4dHJhLWxpY2Vuc2UNCmQ5NzVmNzUxNjk4YTc3YjY2MmYxMjU0ZGRiZWVkMzkwMWU5NzZmNWFQSwMEFAAAAAAA0l43Tu2ee/8qAAAAKgAAACYAAABsaWNlbnNlcy9taXBzLWFuZHJvaWQtc3lzaW1hZ2UtbGljZW5zZQ0KNjNkNzAzZjU2OTJmZDg5MWQ1YWNhY2ZiZDhlMDlmNDBmYzk3NjEwNVBLAQIUABQAAAAAAKJeN06amkPzKgAAACoAAAAhAAAAAAAAAAEAIAAAAAAAAABsaWNlbnNlcy9hbmRyb2lkLWdvb2dsZXR2LWxpY2Vuc2VQSwECFAAUAAAACACgazdORPmEqkMAAABUAAAAHAAAAAAAAAABACAAAABpAAAAbGljZW5zZXMvYW5kcm9pZC1zZGstbGljZW5zZVBLAQIUABQAAAAAAMVeN06RAmOwKgAAACoAAAAkAAAAAAAAAAEAIAAAAOYAAABsaWNlbnNlcy9hbmRyb2lkLXNkay1wcmV2aWV3LWxpY2Vuc2VQSwECFAAUAAAAAADMXjdOk6vQKCoAAAAqAAAAGwAAAAAAAAABACAAAABSAQAAbGljZW5zZXMvZ29vZ2xlLWdkay1saWNlbnNlUEsBAhQAFAAAAAAAz143TqxN4xEqAAAAKgAAACQAAAAAAAAAAQAgAAAAtQEAAGxpY2Vuc2VzL2ludGVsLWFuZHJvaWQtZXh0cmEtbGljZW5zZVBLAQIUABQAAAAAANJeN07tnnv/KgAAACoAAAAmAAAAAAAAAAEAIAAAACECAABsaWNlbnNlcy9taXBzLWFuZHJvaWQtc3lzaW1hZ2UtbGljZW5zZVBLBQYAAAAABgAGANoBAACPAgAAAAA=" $content = [System.Convert]::FromBase64String($base64Content) Set-Content -Path .\android-sdk-licenses.zip -Value $content -Encoding Byte -Extract-7Zip -Path .\android-sdk-licenses.zip -DestinationPath 'C:\Program Files (x86)\Android\android-sdk' +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 @@ -39,12 +39,12 @@ $androidPackages = & $sdkManager --list --verbose # platforms [int]$platformMinVersion = $androidToolset.platform_min_version -$platformList = $androidPackages | Where-Object { "$_".StartsWith("platforms;") } | +$platformList = $androidPackages.Trim() | Where-Object { "$_".StartsWith("platforms;") } | Foreach-Object { $_.Split()[0] } | Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique # build-tools [version]$buildToolsMinVersion = $androidToolset.build_tools_min_version -$buildToolsList = $androidPackages | Where-Object { "$_".StartsWith("build-tools;") } | +$buildToolsList = $androidPackages.Trim() | Where-Object { "$_".StartsWith("build-tools;") } | Foreach-Object { $_.Split()[0] } | Where-Object { [version]$_.Split(";")[1] -ge $buildToolsMinVersion } | Sort-Object { [version]$_.Split(";")[1] } -Unique Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager ` From c50e6e62b5e90f70febf08824407cea85a99bc02 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 30 Sep 2020 23:42:32 +0300 Subject: [PATCH 5/6] use helper functions --- .../scripts/ImageHelpers/ImageHelpers.psm1 | 3 ++ .../scripts/ImageHelpers/InstallHelpers.ps1 | 38 +++++++++++++++++++ .../scripts/Installers/Update-AndroidSDK.ps1 | 16 +++++--- .../SoftwareReport.Android.psm1 | 6 --- images/win/scripts/Tests/Android.Tests.ps1 | 16 +++++--- 5 files changed, 63 insertions(+), 16 deletions(-) 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..e62354f0 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]$Delimeter, + [int]$Index = 0 + ) + + $Type = $MinimumVersion.GetType() + $packagesByName = Get-AndroidPackagesByName -AndroidPackages $AndroidPackages -PrefixPackageName $PrefixPackageName + $packagesByVersion = $packagesByName | Where-Object { ($_.Split($Delimeter)[$Index] -as $Type) -ge $MinimumVersion } + return $packagesByVersion | Sort-Object { $_.Split($Delimeter)[$Index] -as $Type} -Unique +} diff --git a/images/win/scripts/Installers/Update-AndroidSDK.ps1 b/images/win/scripts/Installers/Update-AndroidSDK.ps1 index 12f7964e..983d25ce 100644 --- a/images/win/scripts/Installers/Update-AndroidSDK.ps1 +++ b/images/win/scripts/Installers/Update-AndroidSDK.ps1 @@ -35,17 +35,23 @@ $sdkManager = "$sdkRoot\tools\bin\sdkmanager.bat" & $sdkManager --sdk_root=$sdkRoot "platform-tools" # get packages info -$androidPackages = & $sdkManager --list --verbose +$androidPackages = Get-AndroidPackages -AndroidSDKManagerPath $sdkManager # platforms [int]$platformMinVersion = $androidToolset.platform_min_version -$platformList = $androidPackages.Trim() | Where-Object { "$_".StartsWith("platforms;") } | Foreach-Object { $_.Split()[0] } | - Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique +$platformList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages ` + -PrefixPackageName "platforms;" ` + -MinimumVersion $platformMinVersion ` + -Delimeter "-" ` + -Index 1 # build-tools [version]$buildToolsMinVersion = $androidToolset.build_tools_min_version -$buildToolsList = $androidPackages.Trim() | Where-Object { "$_".StartsWith("build-tools;") } | Foreach-Object { $_.Split()[0] } | - Where-Object { [version]$_.Split(";")[1] -ge $buildToolsMinVersion } | Sort-Object { [version]$_.Split(";")[1] } -Unique +$buildToolsList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages ` + -PrefixPackageName "build-tools;" ` + -MinimumVersion $buildToolsMinVersion ` + -Delimeter ";" ` + -Index 1 Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager ` -AndroidSDKRootPath $sdkRoot ` diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1 index dd59f77f..d3c9a174 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Android.psm1 @@ -31,12 +31,6 @@ function Get-AndroidInstalledPackages { return $androidInstalledPackages } -function Get-AndroidPackages { - $androidSDKManagerPath = Get-AndroidSDKManagerPath - $androidPackages = & $androidSDKManagerPath --list --verbose - return $androidPackages -} - function Build-AndroidTable { $packageInfo = Get-AndroidInstalledPackages return @( diff --git a/images/win/scripts/Tests/Android.Tests.ps1 b/images/win/scripts/Tests/Android.Tests.ps1 index e90ad682..16baeff4 100644 --- a/images/win/scripts/Tests/Android.Tests.ps1 +++ b/images/win/scripts/Tests/Android.Tests.ps1 @@ -2,21 +2,27 @@ Import-Module (Join-Path $PSScriptRoot "..\SoftwareReport\SoftwareReport.Android Describe "Android SDK" { $androidToolset = (Get-ToolsetContent).android - $androidPackages = Get-AndroidPackages + $androidPackages = Get-AndroidPackages -AndroidSDKManagerPath (Get-AndroidSDKManagerPath) $androidInstalledPackages = Get-AndroidInstalledPackages $platformTestCases = @() [int]$platformMinVersion = $androidToolset.platform_min_version - $platformList = $androidPackages | Where-Object { "$_".StartsWith("platforms;") } | - Where-Object { [int]$_.Split("-")[1] -ge $platformMinVersion } | Sort-Object { [int]$_.Split("-")[1] } -Unique + $platformList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages ` + -PrefixPackageName "platforms;" ` + -MinimumVersion $platformMinVersion ` + -Delimeter "-" ` + -Index 1 $platformList | ForEach-Object { $platformTestCases += @{ platformVersion = $_; installedPackages = $androidInstalledPackages } } $buildToolsTestCases = @() [version]$buildToolsMinVersion = $androidToolset.build_tools_min_version - $buildToolsList = $androidPackages | Where-Object { "$_".StartsWith("build-tools;") } | - Where-Object { [version]$_.Split(";")[1] -ge $buildToolsMinVersion } | Sort-Object { [version]$_.Split(";")[1] } -Unique + $buildToolsList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages ` + -PrefixPackageName "build-tools;" ` + -MinimumVersion $buildToolsMinVersion ` + -Delimeter ";" ` + -Index 1 $buildToolsList | ForEach-Object { $buildToolsTestCases += @{ buildToolsVersion = $_; installedPackages = $androidInstalledPackages } } From 5524108024ef201d9207965a73c062c0146a769c Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 30 Sep 2020 23:47:14 +0300 Subject: [PATCH 6/6] fix typo --- images/win/scripts/ImageHelpers/InstallHelpers.ps1 | 6 +++--- images/win/scripts/Installers/Update-AndroidSDK.ps1 | 4 ++-- images/win/scripts/Tests/Android.Tests.ps1 | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 index e62354f0..aed13b99 100644 --- a/images/win/scripts/ImageHelpers/InstallHelpers.ps1 +++ b/images/win/scripts/ImageHelpers/InstallHelpers.ps1 @@ -447,12 +447,12 @@ function Get-AndroidPackagesByVersion { [Parameter(Mandatory=$true)] [string]$PrefixPackageName, [object]$MinimumVersion, - [char]$Delimeter, + [char]$Delimiter, [int]$Index = 0 ) $Type = $MinimumVersion.GetType() $packagesByName = Get-AndroidPackagesByName -AndroidPackages $AndroidPackages -PrefixPackageName $PrefixPackageName - $packagesByVersion = $packagesByName | Where-Object { ($_.Split($Delimeter)[$Index] -as $Type) -ge $MinimumVersion } - return $packagesByVersion | Sort-Object { $_.Split($Delimeter)[$Index] -as $Type} -Unique + $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/Installers/Update-AndroidSDK.ps1 b/images/win/scripts/Installers/Update-AndroidSDK.ps1 index 983d25ce..c27a4c18 100644 --- a/images/win/scripts/Installers/Update-AndroidSDK.ps1 +++ b/images/win/scripts/Installers/Update-AndroidSDK.ps1 @@ -42,7 +42,7 @@ $androidPackages = Get-AndroidPackages -AndroidSDKManagerPath $sdkManager $platformList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages ` -PrefixPackageName "platforms;" ` -MinimumVersion $platformMinVersion ` - -Delimeter "-" ` + -Delimiter "-" ` -Index 1 # build-tools @@ -50,7 +50,7 @@ $platformList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages ` $buildToolsList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages ` -PrefixPackageName "build-tools;" ` -MinimumVersion $buildToolsMinVersion ` - -Delimeter ";" ` + -Delimiter ";" ` -Index 1 Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager ` diff --git a/images/win/scripts/Tests/Android.Tests.ps1 b/images/win/scripts/Tests/Android.Tests.ps1 index 16baeff4..d6c81db4 100644 --- a/images/win/scripts/Tests/Android.Tests.ps1 +++ b/images/win/scripts/Tests/Android.Tests.ps1 @@ -10,7 +10,7 @@ Describe "Android SDK" { $platformList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages ` -PrefixPackageName "platforms;" ` -MinimumVersion $platformMinVersion ` - -Delimeter "-" ` + -Delimiter "-" ` -Index 1 $platformList | ForEach-Object { $platformTestCases += @{ platformVersion = $_; installedPackages = $androidInstalledPackages } @@ -21,7 +21,7 @@ Describe "Android SDK" { $buildToolsList = Get-AndroidPackagesByVersion -AndroidPackages $androidPackages ` -PrefixPackageName "build-tools;" ` -MinimumVersion $buildToolsMinVersion ` - -Delimeter ";" ` + -Delimiter ";" ` -Index 1 $buildToolsList | ForEach-Object { $buildToolsTestCases += @{ buildToolsVersion = $_; installedPackages = $androidInstalledPackages }