use dynamic lists for platforms and build-tools

This commit is contained in:
Aleksandr Chebotov
2020-09-29 13:49:41 +03:00
parent 854d90d205
commit 6b13fc34bc
5 changed files with 37 additions and 23 deletions

View File

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

View File

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

View File

@@ -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 <platformVersion> is installed" -TestCases $platformTestCases {
"$installedPackages" | Should -Match "platforms;$platformVersion"
"$installedPackages" | Should -Match "$platformVersion"
}
It "Platform build tools <buildToolsVersion> is installed" -TestCases $buildToolsTestCases {
"$installedPackages" | Should -Match "build-tools;$buildToolsVersion"
"$installedPackages" | Should -Match "$buildToolsVersion"
}
if (Test-isWin19) {
if (Test-IsWin19) {
It "Extra package <extraPackage> is installed" -TestCases $extraPackagesTestCases {
"$installedPackages" | Should -Match "extras;$extraPackage"
}