mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-16 06:46:48 +00:00
Implement Pester tests for Android SDKs (#1221)
* Add Android SDKs tests * Fix path to android helpers * Fix path to sdkmanager * Remove extra and add-ons tests * Add verbose option to sdkmanager * Add additional tools test * Fix extra and addons tests * Fix extra and addons android packages * Fix image templates
This commit is contained in:
committed by
GitHub
parent
b47ba413c9
commit
58f3ee85cb
@@ -509,6 +509,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "powershell",
|
"type": "powershell",
|
||||||
|
"environment_vars":[
|
||||||
|
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}"
|
||||||
|
],
|
||||||
"scripts":[
|
"scripts":[
|
||||||
"{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1"
|
"{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -490,6 +490,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "powershell",
|
"type": "powershell",
|
||||||
|
"environment_vars":[
|
||||||
|
"TOOLSET_JSON_PATH={{user `toolset_json_path`}}"
|
||||||
|
],
|
||||||
"scripts":[
|
"scripts":[
|
||||||
"{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1"
|
"{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -33,4 +33,5 @@ Export-ModuleMember -Function @(
|
|||||||
'Get-WhichTool'
|
'Get-WhichTool'
|
||||||
'Get-EnvironmentVariable'
|
'Get-EnvironmentVariable'
|
||||||
'Invoke-PesterTests'
|
'Invoke-PesterTests'
|
||||||
|
'Install-AndroidSDKPackages'
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -463,3 +463,20 @@ function Extract-7Zip {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Install-AndroidSDKPackages {
|
||||||
|
Param
|
||||||
|
(
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[string]$AndroidSDKManagerPath,
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[string]$AndroidSDKRootPath,
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[string[]]$AndroidPackages,
|
||||||
|
[string] $PrefixPackageName
|
||||||
|
)
|
||||||
|
|
||||||
|
foreach ($package in $AndroidPackages) {
|
||||||
|
& $AndroidSDKManagerPath --sdk_root=$AndroidSDKRootPath "$PrefixPackageName$package"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -34,82 +34,49 @@ Expand-Archive -Path .\android-sdk-licenses.zip -DestinationPath 'C:\Program Fil
|
|||||||
# run the updates.
|
# run the updates.
|
||||||
# keep newer versions in descending order
|
# keep newer versions in descending order
|
||||||
|
|
||||||
$sdk_root = "C:\Program Files (x86)\Android\android-sdk"
|
# Get android content from toolset
|
||||||
|
$androidToolset = (Get-ToolsetContent).android
|
||||||
|
|
||||||
Push-Location -Path $sdk.FullName
|
$sdkRoot = "C:\Program Files (x86)\Android\android-sdk"
|
||||||
|
$sdkManager = "$sdkRoot\tools\bin\sdkmanager.bat"
|
||||||
|
|
||||||
& '.\tools\bin\sdkmanager.bat' --sdk_root=$sdk_root `
|
& $sdkManager --sdk_root=$sdkRoot "platform-tools"
|
||||||
"platform-tools" `
|
|
||||||
"platforms;android-30" `
|
|
||||||
"platforms;android-29" `
|
|
||||||
"platforms;android-28" `
|
|
||||||
"platforms;android-27" `
|
|
||||||
"platforms;android-26" `
|
|
||||||
"platforms;android-25" `
|
|
||||||
"platforms;android-24" `
|
|
||||||
"platforms;android-23" `
|
|
||||||
"platforms;android-22" `
|
|
||||||
"platforms;android-21" `
|
|
||||||
"platforms;android-19" `
|
|
||||||
"build-tools;30.0.0" `
|
|
||||||
"build-tools;29.0.3" `
|
|
||||||
"build-tools;29.0.2" `
|
|
||||||
"build-tools;29.0.1" `
|
|
||||||
"build-tools;29.0.0" `
|
|
||||||
"build-tools;28.0.3" `
|
|
||||||
"build-tools;28.0.2" `
|
|
||||||
"build-tools;28.0.1" `
|
|
||||||
"build-tools;28.0.0" `
|
|
||||||
"build-tools;27.0.3" `
|
|
||||||
"build-tools;27.0.2" `
|
|
||||||
"build-tools;27.0.1" `
|
|
||||||
"build-tools;27.0.0" `
|
|
||||||
"build-tools;26.0.3" `
|
|
||||||
"build-tools;26.0.2" `
|
|
||||||
"build-tools;26.0.1" `
|
|
||||||
"build-tools;26.0.0" `
|
|
||||||
"build-tools;25.0.3" `
|
|
||||||
"build-tools;25.0.2" `
|
|
||||||
"build-tools;25.0.1" `
|
|
||||||
"build-tools;25.0.0" `
|
|
||||||
"build-tools;24.0.3" `
|
|
||||||
"build-tools;24.0.2" `
|
|
||||||
"build-tools;24.0.1" `
|
|
||||||
"build-tools;24.0.0" `
|
|
||||||
"build-tools;23.0.3" `
|
|
||||||
"build-tools;23.0.2" `
|
|
||||||
"build-tools;23.0.1" `
|
|
||||||
"build-tools;22.0.1" `
|
|
||||||
"build-tools;21.1.2" `
|
|
||||||
"build-tools;20.0.0" `
|
|
||||||
"build-tools;19.1.0" `
|
|
||||||
"extras;android;m2repository" `
|
|
||||||
"extras;google;m2repository" `
|
|
||||||
"extras;google;google_play_services" `
|
|
||||||
"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2" `
|
|
||||||
"extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1" `
|
|
||||||
"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2" `
|
|
||||||
"extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1" `
|
|
||||||
"add-ons;addon-google_apis-google-24" `
|
|
||||||
"add-ons;addon-google_apis-google-23" `
|
|
||||||
"add-ons;addon-google_apis-google-22" `
|
|
||||||
"add-ons;addon-google_apis-google-21" `
|
|
||||||
"cmake;3.6.4111459" `
|
|
||||||
"cmake;3.10.2.4988404" `
|
|
||||||
"patcher;v4" `
|
|
||||||
"ndk-bundle"
|
|
||||||
|
|
||||||
# Android NDK root path.
|
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||||
$ndk_root = "C:\Program Files (x86)\Android\android-sdk\ndk-bundle"
|
-AndroidSDKRootPath $sdkRoot `
|
||||||
|
-AndroidPackages $androidToolset.platform_list `
|
||||||
|
-PrefixPackageName "platforms;"
|
||||||
|
|
||||||
if (Test-Path $ndk_root){
|
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||||
setx ANDROID_HOME $sdk_root /M
|
-AndroidSDKRootPath $sdkRoot `
|
||||||
setx ANDROID_NDK_HOME $ndk_root /M
|
-AndroidPackages $androidToolset.build_tools `
|
||||||
setx ANDROID_NDK_PATH $ndk_root /M
|
-PrefixPackageName "build-tools;"
|
||||||
} else {
|
|
||||||
Write-Host "NDK is not installed at path $ndk_root"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
Pop-Location
|
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||||
|
-AndroidSDKRootPath $sdkRoot `
|
||||||
|
-AndroidPackages $androidToolset.extra_list `
|
||||||
|
-PrefixPackageName "extras;"
|
||||||
|
|
||||||
|
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||||
|
-AndroidSDKRootPath $sdkRoot `
|
||||||
|
-AndroidPackages $androidToolset.addon_list `
|
||||||
|
-PrefixPackageName "add-ons;"
|
||||||
|
|
||||||
|
Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
|
||||||
|
-AndroidSDKRootPath $sdkRoot `
|
||||||
|
-AndroidPackages $androidToolset.additional_tools
|
||||||
|
|
||||||
|
# Android NDK root path.
|
||||||
|
$ndkRoot = "C:\Program Files (x86)\Android\android-sdk\ndk-bundle"
|
||||||
|
|
||||||
|
if (Test-Path $ndkRoot) {
|
||||||
|
setx ANDROID_HOME $sdkRoot /M
|
||||||
|
setx ANDROID_NDK_HOME $ndkRoot /M
|
||||||
|
setx ANDROID_NDK_PATH $ndkRoot /M
|
||||||
|
} else {
|
||||||
|
Write-Host "NDK is not installed at path $ndk_root"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Invoke-PesterTests -TestFile "Android"
|
||||||
|
|
||||||
|
|||||||
@@ -25,12 +25,12 @@ function Create-AndroidTableObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Get-AndroidSDKManagerPath {
|
function Get-AndroidSDKManagerPath {
|
||||||
return Join-Path $env:ANDROID_HOME "tools" "bin" "sdkmanager.bat"
|
return Join-Path $env:ANDROID_HOME "tools\bin\sdkmanager.bat"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-AndroidInstalledPackages {
|
function Get-AndroidInstalledPackages {
|
||||||
$androidSDKManagerPath = Get-AndroidSDKManagerPath
|
$androidSDKManagerPath = Get-AndroidSDKManagerPath
|
||||||
$androidSDKManagerList = & $androidSDKManagerPath --list --include_obsolete
|
$androidSDKManagerList = & $androidSDKManagerPath --list --include_obsolete --verbose
|
||||||
$androidInstalledPackages = @()
|
$androidInstalledPackages = @()
|
||||||
foreach($packageInfo in $androidSDKManagerList) {
|
foreach($packageInfo in $androidSDKManagerList) {
|
||||||
if($packageInfo -Match "Available Packages:") {
|
if($packageInfo -Match "Available Packages:") {
|
||||||
|
|||||||
58
images/win/scripts/Tests/Android.Tests.ps1
Normal file
58
images/win/scripts/Tests/Android.Tests.ps1
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
Import-Module (Join-Path $PSScriptRoot "..\SoftwareReport\SoftwareReport.Android.psm1") -DisableNameChecking
|
||||||
|
|
||||||
|
Describe "Android SDK" {
|
||||||
|
$androidToolset = (Get-ToolsetContent).android
|
||||||
|
$androidInstalledPackages = Get-AndroidInstalledPackages
|
||||||
|
|
||||||
|
$platformTestCases = @()
|
||||||
|
$platformList = $androidToolset.platform_list
|
||||||
|
$platformList | ForEach-Object {
|
||||||
|
$platformTestCases += @{ platformVersion = $_; installedPackages = $androidInstalledPackages }
|
||||||
|
}
|
||||||
|
|
||||||
|
$buildToolsTestCases = @()
|
||||||
|
$buildToolsList = $androidToolset.build_tools
|
||||||
|
$buildToolsList | ForEach-Object {
|
||||||
|
$buildToolsTestCases += @{ buildToolsVersion = $_; installedPackages = $androidInstalledPackages }
|
||||||
|
}
|
||||||
|
|
||||||
|
$extraPackagesTestCases = @()
|
||||||
|
$extraPackageList = $androidToolset.extra_list
|
||||||
|
$extraPackageList | ForEach-Object {
|
||||||
|
$extraPackagesTestCases += @{ extraPackage = $_; installedPackages = $androidInstalledPackages }
|
||||||
|
}
|
||||||
|
|
||||||
|
$addonsTestCases = @()
|
||||||
|
$addonsPackageList = $androidToolset.addon_list
|
||||||
|
$addonsPackageList | ForEach-Object {
|
||||||
|
$addonsTestCases += @{ addonPackage = $_; installedPackages = $androidInstalledPackages }
|
||||||
|
}
|
||||||
|
|
||||||
|
$additionalToolsTestCases = @()
|
||||||
|
$additionalToolsList = $androidToolset.additional_tools
|
||||||
|
$additionalToolsList | ForEach-Object {
|
||||||
|
$additionalToolsTestCases += @{ additionalToolVersion = $_; installedPackages = $androidInstalledPackages }
|
||||||
|
}
|
||||||
|
|
||||||
|
It "Platform version <platformVersion> is installed" -TestCases $platformTestCases {
|
||||||
|
"$installedPackages" | Should -Match "platforms;$platformVersion"
|
||||||
|
}
|
||||||
|
|
||||||
|
It "Platform build tools <buildToolsVersion> is installed" -TestCases $buildToolsTestCases {
|
||||||
|
"$installedPackages" | Should -Match "build-tools;$buildToolsVersion"
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Test-isWin19) {
|
||||||
|
It "Extra package <extraPackage> is installed" -TestCases $extraPackagesTestCases {
|
||||||
|
"$installedPackages" | Should -Match "extras;$extraPackage"
|
||||||
|
}
|
||||||
|
|
||||||
|
It "Addon package <addonPackage> is installed" -TestCases $addonsTestCases {
|
||||||
|
"$installedPackages" | Should -Match "add-ons;$addonPackage"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
It "Additional tool <additionalToolVersion> is installed" -TestCases $additionalToolsTestCases {
|
||||||
|
"$installedPackages" | Should -Match $additionalToolVersion
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -113,5 +113,34 @@
|
|||||||
"4.4.0"
|
"4.4.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.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"
|
||||||
|
],
|
||||||
|
"extra_list": [
|
||||||
|
"android;m2repository",
|
||||||
|
"google;m2repository",
|
||||||
|
"google;google_play_services",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout;1.0.2",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout;1.0.1"
|
||||||
|
],
|
||||||
|
"addon_list": [
|
||||||
|
"addon-google_apis-google-24",
|
||||||
|
"addon-google_apis-google-23",
|
||||||
|
"addon-google_apis-google-22",
|
||||||
|
"addon-google_apis-google-21"
|
||||||
|
],
|
||||||
|
"additional_tools": [
|
||||||
|
"cmake;3.6.4111459",
|
||||||
|
"cmake;3.10.2.4988404",
|
||||||
|
"patcher;v4",
|
||||||
|
"ndk-bundle"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -122,5 +122,34 @@
|
|||||||
"4.4.0"
|
"4.4.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.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"
|
||||||
|
],
|
||||||
|
"extra_list": [
|
||||||
|
"android;m2repository",
|
||||||
|
"google;m2repository",
|
||||||
|
"google;google_play_services",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout;1.0.2",
|
||||||
|
"m2repository;com;android;support;constraint;constraint-layout;1.0.1"
|
||||||
|
],
|
||||||
|
"addon_list": [
|
||||||
|
"addon-google_apis-google-24",
|
||||||
|
"addon-google_apis-google-23",
|
||||||
|
"addon-google_apis-google-22",
|
||||||
|
"addon-google_apis-google-21"
|
||||||
|
],
|
||||||
|
"additional_tools": [
|
||||||
|
"cmake;3.6.4111459",
|
||||||
|
"cmake;3.10.2.4988404",
|
||||||
|
"patcher;v4",
|
||||||
|
"ndk-bundle"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user